packages feed

amazonka-billingconductor (empty) → 2.0

raw patch · 150 files changed

+15246/−0 lines, 150 filesdep +amazonka-billingconductordep +amazonka-coredep +amazonka-test

Dependencies added: amazonka-billingconductor, amazonka-core, amazonka-test, base, bytestring, case-insensitive, 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,44 @@+# Amazon BillingConductor SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2021-07-30@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-billingconductor)+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 [Amazonka.BillingConductor](http://hackage.haskell.org/package/amazonka-billingconductor/docs/Amazonka-BillingConductor.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-billingconductor` 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.
+ amazonka-billingconductor.cabal view
@@ -0,0 +1,159 @@+cabal-version:      2.2+name:               amazonka-billingconductor+version:            2.0+synopsis:           Amazon BillingConductor SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2021-07-30@ of the AWS service descriptions, licensed under Apache 2.0.+  .+  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.+  .+  It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+  .+  Generated lenses can be found in "Amazonka.BillingConductor.Lens" and are+  suitable for use with a lens package such as <http://hackage.haskell.org/package/lens lens> or <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+  .+  See "Amazonka.BillingConductor" and the <https://aws.amazon.com/documentation/ AWS documentation> to get started.++source-repository head+  type:     git+  location: git://github.com/brendanhay/amazonka.git+  subdir:   amazonka-billingconductor++library+  default-language: Haskell2010+  hs-source-dirs:   src gen+  ghc-options:+    -Wall -fwarn-incomplete-uni-patterns+    -fwarn-incomplete-record-updates -funbox-strict-fields++  exposed-modules:+    Amazonka.BillingConductor+    Amazonka.BillingConductor.AssociateAccounts+    Amazonka.BillingConductor.AssociatePricingRules+    Amazonka.BillingConductor.BatchAssociateResourcesToCustomLineItem+    Amazonka.BillingConductor.BatchDisassociateResourcesFromCustomLineItem+    Amazonka.BillingConductor.CreateBillingGroup+    Amazonka.BillingConductor.CreateCustomLineItem+    Amazonka.BillingConductor.CreatePricingPlan+    Amazonka.BillingConductor.CreatePricingRule+    Amazonka.BillingConductor.DeleteBillingGroup+    Amazonka.BillingConductor.DeleteCustomLineItem+    Amazonka.BillingConductor.DeletePricingPlan+    Amazonka.BillingConductor.DeletePricingRule+    Amazonka.BillingConductor.DisassociateAccounts+    Amazonka.BillingConductor.DisassociatePricingRules+    Amazonka.BillingConductor.Lens+    Amazonka.BillingConductor.ListAccountAssociations+    Amazonka.BillingConductor.ListBillingGroupCostReports+    Amazonka.BillingConductor.ListBillingGroups+    Amazonka.BillingConductor.ListCustomLineItems+    Amazonka.BillingConductor.ListCustomLineItemVersions+    Amazonka.BillingConductor.ListPricingPlans+    Amazonka.BillingConductor.ListPricingPlansAssociatedWithPricingRule+    Amazonka.BillingConductor.ListPricingRules+    Amazonka.BillingConductor.ListPricingRulesAssociatedToPricingPlan+    Amazonka.BillingConductor.ListResourcesAssociatedToCustomLineItem+    Amazonka.BillingConductor.ListTagsForResource+    Amazonka.BillingConductor.TagResource+    Amazonka.BillingConductor.Types+    Amazonka.BillingConductor.Types.AccountAssociationsListElement+    Amazonka.BillingConductor.Types.AccountGrouping+    Amazonka.BillingConductor.Types.AssociateResourceError+    Amazonka.BillingConductor.Types.AssociateResourceErrorReason+    Amazonka.BillingConductor.Types.AssociateResourceResponseElement+    Amazonka.BillingConductor.Types.BillingGroupCostReportElement+    Amazonka.BillingConductor.Types.BillingGroupListElement+    Amazonka.BillingConductor.Types.BillingGroupStatus+    Amazonka.BillingConductor.Types.ComputationPreference+    Amazonka.BillingConductor.Types.CreateFreeTierConfig+    Amazonka.BillingConductor.Types.CreateTieringInput+    Amazonka.BillingConductor.Types.CurrencyCode+    Amazonka.BillingConductor.Types.CustomLineItemBillingPeriodRange+    Amazonka.BillingConductor.Types.CustomLineItemChargeDetails+    Amazonka.BillingConductor.Types.CustomLineItemFlatChargeDetails+    Amazonka.BillingConductor.Types.CustomLineItemListElement+    Amazonka.BillingConductor.Types.CustomLineItemPercentageChargeDetails+    Amazonka.BillingConductor.Types.CustomLineItemRelationship+    Amazonka.BillingConductor.Types.CustomLineItemType+    Amazonka.BillingConductor.Types.CustomLineItemVersionListElement+    Amazonka.BillingConductor.Types.DisassociateResourceResponseElement+    Amazonka.BillingConductor.Types.FreeTierConfig+    Amazonka.BillingConductor.Types.ListAccountAssociationsFilter+    Amazonka.BillingConductor.Types.ListBillingGroupCostReportsFilter+    Amazonka.BillingConductor.Types.ListBillingGroupsFilter+    Amazonka.BillingConductor.Types.ListCustomLineItemChargeDetails+    Amazonka.BillingConductor.Types.ListCustomLineItemFlatChargeDetails+    Amazonka.BillingConductor.Types.ListCustomLineItemPercentageChargeDetails+    Amazonka.BillingConductor.Types.ListCustomLineItemsFilter+    Amazonka.BillingConductor.Types.ListCustomLineItemVersionsBillingPeriodRangeFilter+    Amazonka.BillingConductor.Types.ListCustomLineItemVersionsFilter+    Amazonka.BillingConductor.Types.ListPricingPlansFilter+    Amazonka.BillingConductor.Types.ListPricingRulesFilter+    Amazonka.BillingConductor.Types.ListResourcesAssociatedToCustomLineItemFilter+    Amazonka.BillingConductor.Types.ListResourcesAssociatedToCustomLineItemResponseElement+    Amazonka.BillingConductor.Types.PricingPlanListElement+    Amazonka.BillingConductor.Types.PricingRuleListElement+    Amazonka.BillingConductor.Types.PricingRuleScope+    Amazonka.BillingConductor.Types.PricingRuleType+    Amazonka.BillingConductor.Types.Tiering+    Amazonka.BillingConductor.Types.UpdateCustomLineItemChargeDetails+    Amazonka.BillingConductor.Types.UpdateCustomLineItemFlatChargeDetails+    Amazonka.BillingConductor.Types.UpdateCustomLineItemPercentageChargeDetails+    Amazonka.BillingConductor.Types.UpdateFreeTierConfig+    Amazonka.BillingConductor.Types.UpdateTieringInput+    Amazonka.BillingConductor.UntagResource+    Amazonka.BillingConductor.UpdateBillingGroup+    Amazonka.BillingConductor.UpdateCustomLineItem+    Amazonka.BillingConductor.UpdatePricingPlan+    Amazonka.BillingConductor.UpdatePricingRule+    Amazonka.BillingConductor.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-billingconductor-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.Amazonka.BillingConductor+    Test.Amazonka.BillingConductor.Internal+    Test.Amazonka.Gen.BillingConductor++  build-depends:+    , amazonka-billingconductor+    , amazonka-core              >=2.0 && <2.1+    , amazonka-test              >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/AssociateAccounts.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/AssociateAccountsResponse.proto view
+ fixture/AssociatePricingRules.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/AssociatePricingRulesResponse.proto view
+ fixture/BatchAssociateResourcesToCustomLineItem.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/BatchAssociateResourcesToCustomLineItemResponse.proto view
+ fixture/BatchDisassociateResourcesFromCustomLineItem.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/BatchDisassociateResourcesFromCustomLineItemResponse.proto view
+ fixture/CreateBillingGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/CreateBillingGroupResponse.proto view
+ fixture/CreateCustomLineItem.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/CreateCustomLineItemResponse.proto view
+ fixture/CreatePricingPlan.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/CreatePricingPlanResponse.proto view
+ fixture/CreatePricingRule.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/CreatePricingRuleResponse.proto view
+ fixture/DeleteBillingGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/DeleteBillingGroupResponse.proto view
+ fixture/DeleteCustomLineItem.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/DeleteCustomLineItemResponse.proto view
+ fixture/DeletePricingPlan.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/DeletePricingPlanResponse.proto view
+ fixture/DeletePricingRule.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/DeletePricingRuleResponse.proto view
+ fixture/DisassociateAccounts.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/DisassociateAccountsResponse.proto view
+ fixture/DisassociatePricingRules.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/DisassociatePricingRulesResponse.proto view
+ fixture/ListAccountAssociations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/ListAccountAssociationsResponse.proto view
+ fixture/ListBillingGroupCostReports.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/ListBillingGroupCostReportsResponse.proto view
+ fixture/ListBillingGroups.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/ListBillingGroupsResponse.proto view
+ fixture/ListCustomLineItemVersions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/ListCustomLineItemVersionsResponse.proto view
+ fixture/ListCustomLineItems.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/ListCustomLineItemsResponse.proto view
+ fixture/ListPricingPlans.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/ListPricingPlansAssociatedWithPricingRule.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/ListPricingPlansAssociatedWithPricingRuleResponse.proto view
+ fixture/ListPricingPlansResponse.proto view
+ fixture/ListPricingRules.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/ListPricingRulesAssociatedToPricingPlan.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/ListPricingRulesAssociatedToPricingPlanResponse.proto view
+ fixture/ListPricingRulesResponse.proto view
+ fixture/ListResourcesAssociatedToCustomLineItem.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/ListResourcesAssociatedToCustomLineItemResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/ListTagsForResourceResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/UntagResourceResponse.proto view
+ fixture/UpdateBillingGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/UpdateBillingGroupResponse.proto view
+ fixture/UpdateCustomLineItem.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/UpdateCustomLineItemResponse.proto view
+ fixture/UpdatePricingPlan.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/UpdatePricingPlanResponse.proto view
+ fixture/UpdatePricingRule.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/billingconductor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  billingconductor.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/UpdatePricingRuleResponse.proto view
+ gen/Amazonka/BillingConductor.hs view
@@ -0,0 +1,492 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.BillingConductor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2021-07-30@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon Web Services Billing Conductor is a fully managed service that+-- you can use to customize a+-- <https://docs.aws.amazon.com/billingconductor/latest/userguide/understanding-eb.html#eb-other-definitions pro forma>+-- version of your billing data each month, to accurately show or+-- chargeback your end customers. Amazon Web Services Billing Conductor+-- doesn\'t change the way you\'re billed by Amazon Web Services each month+-- by design. Instead, it provides you with a mechanism to configure,+-- generate, and display rates to certain customers over a given billing+-- period. You can also analyze the difference between the rates you apply+-- to your accounting groupings relative to your actual rates from Amazon+-- Web Services. As a result of your Amazon Web Services Billing Conductor+-- configuration, the payer account can also see the custom rate applied on+-- the billing details page of the+-- <https://console.aws.amazon.com/billing Amazon Web Services Billing console>,+-- or configure a cost and usage report per billing group.+--+-- This documentation shows how you can configure Amazon Web Services+-- Billing Conductor using its API. For more information about using the+-- <https://console.aws.amazon.com/billingconductor/ Amazon Web Services Billing Conductor>+-- user interface, see the+-- <https://docs.aws.amazon.com/billingconductor/latest/userguide/what-is-billingconductor.html Amazon Web Services Billing Conductor User Guide>.+module Amazonka.BillingConductor+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceLimitExceededException+    _ServiceLimitExceededException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** AssociateAccounts+    AssociateAccounts (AssociateAccounts'),+    newAssociateAccounts,+    AssociateAccountsResponse (AssociateAccountsResponse'),+    newAssociateAccountsResponse,++    -- ** AssociatePricingRules+    AssociatePricingRules (AssociatePricingRules'),+    newAssociatePricingRules,+    AssociatePricingRulesResponse (AssociatePricingRulesResponse'),+    newAssociatePricingRulesResponse,++    -- ** BatchAssociateResourcesToCustomLineItem+    BatchAssociateResourcesToCustomLineItem (BatchAssociateResourcesToCustomLineItem'),+    newBatchAssociateResourcesToCustomLineItem,+    BatchAssociateResourcesToCustomLineItemResponse (BatchAssociateResourcesToCustomLineItemResponse'),+    newBatchAssociateResourcesToCustomLineItemResponse,++    -- ** BatchDisassociateResourcesFromCustomLineItem+    BatchDisassociateResourcesFromCustomLineItem (BatchDisassociateResourcesFromCustomLineItem'),+    newBatchDisassociateResourcesFromCustomLineItem,+    BatchDisassociateResourcesFromCustomLineItemResponse (BatchDisassociateResourcesFromCustomLineItemResponse'),+    newBatchDisassociateResourcesFromCustomLineItemResponse,++    -- ** CreateBillingGroup+    CreateBillingGroup (CreateBillingGroup'),+    newCreateBillingGroup,+    CreateBillingGroupResponse (CreateBillingGroupResponse'),+    newCreateBillingGroupResponse,++    -- ** CreateCustomLineItem+    CreateCustomLineItem (CreateCustomLineItem'),+    newCreateCustomLineItem,+    CreateCustomLineItemResponse (CreateCustomLineItemResponse'),+    newCreateCustomLineItemResponse,++    -- ** CreatePricingPlan+    CreatePricingPlan (CreatePricingPlan'),+    newCreatePricingPlan,+    CreatePricingPlanResponse (CreatePricingPlanResponse'),+    newCreatePricingPlanResponse,++    -- ** CreatePricingRule+    CreatePricingRule (CreatePricingRule'),+    newCreatePricingRule,+    CreatePricingRuleResponse (CreatePricingRuleResponse'),+    newCreatePricingRuleResponse,++    -- ** DeleteBillingGroup+    DeleteBillingGroup (DeleteBillingGroup'),+    newDeleteBillingGroup,+    DeleteBillingGroupResponse (DeleteBillingGroupResponse'),+    newDeleteBillingGroupResponse,++    -- ** DeleteCustomLineItem+    DeleteCustomLineItem (DeleteCustomLineItem'),+    newDeleteCustomLineItem,+    DeleteCustomLineItemResponse (DeleteCustomLineItemResponse'),+    newDeleteCustomLineItemResponse,++    -- ** DeletePricingPlan+    DeletePricingPlan (DeletePricingPlan'),+    newDeletePricingPlan,+    DeletePricingPlanResponse (DeletePricingPlanResponse'),+    newDeletePricingPlanResponse,++    -- ** DeletePricingRule+    DeletePricingRule (DeletePricingRule'),+    newDeletePricingRule,+    DeletePricingRuleResponse (DeletePricingRuleResponse'),+    newDeletePricingRuleResponse,++    -- ** DisassociateAccounts+    DisassociateAccounts (DisassociateAccounts'),+    newDisassociateAccounts,+    DisassociateAccountsResponse (DisassociateAccountsResponse'),+    newDisassociateAccountsResponse,++    -- ** DisassociatePricingRules+    DisassociatePricingRules (DisassociatePricingRules'),+    newDisassociatePricingRules,+    DisassociatePricingRulesResponse (DisassociatePricingRulesResponse'),+    newDisassociatePricingRulesResponse,++    -- ** ListAccountAssociations (Paginated)+    ListAccountAssociations (ListAccountAssociations'),+    newListAccountAssociations,+    ListAccountAssociationsResponse (ListAccountAssociationsResponse'),+    newListAccountAssociationsResponse,++    -- ** ListBillingGroupCostReports (Paginated)+    ListBillingGroupCostReports (ListBillingGroupCostReports'),+    newListBillingGroupCostReports,+    ListBillingGroupCostReportsResponse (ListBillingGroupCostReportsResponse'),+    newListBillingGroupCostReportsResponse,++    -- ** ListBillingGroups (Paginated)+    ListBillingGroups (ListBillingGroups'),+    newListBillingGroups,+    ListBillingGroupsResponse (ListBillingGroupsResponse'),+    newListBillingGroupsResponse,++    -- ** ListCustomLineItemVersions (Paginated)+    ListCustomLineItemVersions (ListCustomLineItemVersions'),+    newListCustomLineItemVersions,+    ListCustomLineItemVersionsResponse (ListCustomLineItemVersionsResponse'),+    newListCustomLineItemVersionsResponse,++    -- ** ListCustomLineItems (Paginated)+    ListCustomLineItems (ListCustomLineItems'),+    newListCustomLineItems,+    ListCustomLineItemsResponse (ListCustomLineItemsResponse'),+    newListCustomLineItemsResponse,++    -- ** ListPricingPlans (Paginated)+    ListPricingPlans (ListPricingPlans'),+    newListPricingPlans,+    ListPricingPlansResponse (ListPricingPlansResponse'),+    newListPricingPlansResponse,++    -- ** ListPricingPlansAssociatedWithPricingRule (Paginated)+    ListPricingPlansAssociatedWithPricingRule (ListPricingPlansAssociatedWithPricingRule'),+    newListPricingPlansAssociatedWithPricingRule,+    ListPricingPlansAssociatedWithPricingRuleResponse (ListPricingPlansAssociatedWithPricingRuleResponse'),+    newListPricingPlansAssociatedWithPricingRuleResponse,++    -- ** ListPricingRules (Paginated)+    ListPricingRules (ListPricingRules'),+    newListPricingRules,+    ListPricingRulesResponse (ListPricingRulesResponse'),+    newListPricingRulesResponse,++    -- ** ListPricingRulesAssociatedToPricingPlan (Paginated)+    ListPricingRulesAssociatedToPricingPlan (ListPricingRulesAssociatedToPricingPlan'),+    newListPricingRulesAssociatedToPricingPlan,+    ListPricingRulesAssociatedToPricingPlanResponse (ListPricingRulesAssociatedToPricingPlanResponse'),+    newListPricingRulesAssociatedToPricingPlanResponse,++    -- ** ListResourcesAssociatedToCustomLineItem (Paginated)+    ListResourcesAssociatedToCustomLineItem (ListResourcesAssociatedToCustomLineItem'),+    newListResourcesAssociatedToCustomLineItem,+    ListResourcesAssociatedToCustomLineItemResponse (ListResourcesAssociatedToCustomLineItemResponse'),+    newListResourcesAssociatedToCustomLineItemResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateBillingGroup+    UpdateBillingGroup (UpdateBillingGroup'),+    newUpdateBillingGroup,+    UpdateBillingGroupResponse (UpdateBillingGroupResponse'),+    newUpdateBillingGroupResponse,++    -- ** UpdateCustomLineItem+    UpdateCustomLineItem (UpdateCustomLineItem'),+    newUpdateCustomLineItem,+    UpdateCustomLineItemResponse (UpdateCustomLineItemResponse'),+    newUpdateCustomLineItemResponse,++    -- ** UpdatePricingPlan+    UpdatePricingPlan (UpdatePricingPlan'),+    newUpdatePricingPlan,+    UpdatePricingPlanResponse (UpdatePricingPlanResponse'),+    newUpdatePricingPlanResponse,++    -- ** UpdatePricingRule+    UpdatePricingRule (UpdatePricingRule'),+    newUpdatePricingRule,+    UpdatePricingRuleResponse (UpdatePricingRuleResponse'),+    newUpdatePricingRuleResponse,++    -- * Types++    -- ** AssociateResourceErrorReason+    AssociateResourceErrorReason (..),++    -- ** BillingGroupStatus+    BillingGroupStatus (..),++    -- ** CurrencyCode+    CurrencyCode (..),++    -- ** CustomLineItemRelationship+    CustomLineItemRelationship (..),++    -- ** CustomLineItemType+    CustomLineItemType (..),++    -- ** PricingRuleScope+    PricingRuleScope (..),++    -- ** PricingRuleType+    PricingRuleType (..),++    -- ** AccountAssociationsListElement+    AccountAssociationsListElement (AccountAssociationsListElement'),+    newAccountAssociationsListElement,++    -- ** AccountGrouping+    AccountGrouping (AccountGrouping'),+    newAccountGrouping,++    -- ** AssociateResourceError+    AssociateResourceError (AssociateResourceError'),+    newAssociateResourceError,++    -- ** AssociateResourceResponseElement+    AssociateResourceResponseElement (AssociateResourceResponseElement'),+    newAssociateResourceResponseElement,++    -- ** BillingGroupCostReportElement+    BillingGroupCostReportElement (BillingGroupCostReportElement'),+    newBillingGroupCostReportElement,++    -- ** BillingGroupListElement+    BillingGroupListElement (BillingGroupListElement'),+    newBillingGroupListElement,++    -- ** ComputationPreference+    ComputationPreference (ComputationPreference'),+    newComputationPreference,++    -- ** CreateFreeTierConfig+    CreateFreeTierConfig (CreateFreeTierConfig'),+    newCreateFreeTierConfig,++    -- ** CreateTieringInput+    CreateTieringInput (CreateTieringInput'),+    newCreateTieringInput,++    -- ** CustomLineItemBillingPeriodRange+    CustomLineItemBillingPeriodRange (CustomLineItemBillingPeriodRange'),+    newCustomLineItemBillingPeriodRange,++    -- ** CustomLineItemChargeDetails+    CustomLineItemChargeDetails (CustomLineItemChargeDetails'),+    newCustomLineItemChargeDetails,++    -- ** CustomLineItemFlatChargeDetails+    CustomLineItemFlatChargeDetails (CustomLineItemFlatChargeDetails'),+    newCustomLineItemFlatChargeDetails,++    -- ** CustomLineItemListElement+    CustomLineItemListElement (CustomLineItemListElement'),+    newCustomLineItemListElement,++    -- ** CustomLineItemPercentageChargeDetails+    CustomLineItemPercentageChargeDetails (CustomLineItemPercentageChargeDetails'),+    newCustomLineItemPercentageChargeDetails,++    -- ** CustomLineItemVersionListElement+    CustomLineItemVersionListElement (CustomLineItemVersionListElement'),+    newCustomLineItemVersionListElement,++    -- ** DisassociateResourceResponseElement+    DisassociateResourceResponseElement (DisassociateResourceResponseElement'),+    newDisassociateResourceResponseElement,++    -- ** FreeTierConfig+    FreeTierConfig (FreeTierConfig'),+    newFreeTierConfig,++    -- ** ListAccountAssociationsFilter+    ListAccountAssociationsFilter (ListAccountAssociationsFilter'),+    newListAccountAssociationsFilter,++    -- ** ListBillingGroupCostReportsFilter+    ListBillingGroupCostReportsFilter (ListBillingGroupCostReportsFilter'),+    newListBillingGroupCostReportsFilter,++    -- ** ListBillingGroupsFilter+    ListBillingGroupsFilter (ListBillingGroupsFilter'),+    newListBillingGroupsFilter,++    -- ** ListCustomLineItemChargeDetails+    ListCustomLineItemChargeDetails (ListCustomLineItemChargeDetails'),+    newListCustomLineItemChargeDetails,++    -- ** ListCustomLineItemFlatChargeDetails+    ListCustomLineItemFlatChargeDetails (ListCustomLineItemFlatChargeDetails'),+    newListCustomLineItemFlatChargeDetails,++    -- ** ListCustomLineItemPercentageChargeDetails+    ListCustomLineItemPercentageChargeDetails (ListCustomLineItemPercentageChargeDetails'),+    newListCustomLineItemPercentageChargeDetails,++    -- ** ListCustomLineItemVersionsBillingPeriodRangeFilter+    ListCustomLineItemVersionsBillingPeriodRangeFilter (ListCustomLineItemVersionsBillingPeriodRangeFilter'),+    newListCustomLineItemVersionsBillingPeriodRangeFilter,++    -- ** ListCustomLineItemVersionsFilter+    ListCustomLineItemVersionsFilter (ListCustomLineItemVersionsFilter'),+    newListCustomLineItemVersionsFilter,++    -- ** ListCustomLineItemsFilter+    ListCustomLineItemsFilter (ListCustomLineItemsFilter'),+    newListCustomLineItemsFilter,++    -- ** ListPricingPlansFilter+    ListPricingPlansFilter (ListPricingPlansFilter'),+    newListPricingPlansFilter,++    -- ** ListPricingRulesFilter+    ListPricingRulesFilter (ListPricingRulesFilter'),+    newListPricingRulesFilter,++    -- ** ListResourcesAssociatedToCustomLineItemFilter+    ListResourcesAssociatedToCustomLineItemFilter (ListResourcesAssociatedToCustomLineItemFilter'),+    newListResourcesAssociatedToCustomLineItemFilter,++    -- ** ListResourcesAssociatedToCustomLineItemResponseElement+    ListResourcesAssociatedToCustomLineItemResponseElement (ListResourcesAssociatedToCustomLineItemResponseElement'),+    newListResourcesAssociatedToCustomLineItemResponseElement,++    -- ** PricingPlanListElement+    PricingPlanListElement (PricingPlanListElement'),+    newPricingPlanListElement,++    -- ** PricingRuleListElement+    PricingRuleListElement (PricingRuleListElement'),+    newPricingRuleListElement,++    -- ** Tiering+    Tiering (Tiering'),+    newTiering,++    -- ** UpdateCustomLineItemChargeDetails+    UpdateCustomLineItemChargeDetails (UpdateCustomLineItemChargeDetails'),+    newUpdateCustomLineItemChargeDetails,++    -- ** UpdateCustomLineItemFlatChargeDetails+    UpdateCustomLineItemFlatChargeDetails (UpdateCustomLineItemFlatChargeDetails'),+    newUpdateCustomLineItemFlatChargeDetails,++    -- ** UpdateCustomLineItemPercentageChargeDetails+    UpdateCustomLineItemPercentageChargeDetails (UpdateCustomLineItemPercentageChargeDetails'),+    newUpdateCustomLineItemPercentageChargeDetails,++    -- ** UpdateFreeTierConfig+    UpdateFreeTierConfig (UpdateFreeTierConfig'),+    newUpdateFreeTierConfig,++    -- ** UpdateTieringInput+    UpdateTieringInput (UpdateTieringInput'),+    newUpdateTieringInput,+  )+where++import Amazonka.BillingConductor.AssociateAccounts+import Amazonka.BillingConductor.AssociatePricingRules+import Amazonka.BillingConductor.BatchAssociateResourcesToCustomLineItem+import Amazonka.BillingConductor.BatchDisassociateResourcesFromCustomLineItem+import Amazonka.BillingConductor.CreateBillingGroup+import Amazonka.BillingConductor.CreateCustomLineItem+import Amazonka.BillingConductor.CreatePricingPlan+import Amazonka.BillingConductor.CreatePricingRule+import Amazonka.BillingConductor.DeleteBillingGroup+import Amazonka.BillingConductor.DeleteCustomLineItem+import Amazonka.BillingConductor.DeletePricingPlan+import Amazonka.BillingConductor.DeletePricingRule+import Amazonka.BillingConductor.DisassociateAccounts+import Amazonka.BillingConductor.DisassociatePricingRules+import Amazonka.BillingConductor.Lens+import Amazonka.BillingConductor.ListAccountAssociations+import Amazonka.BillingConductor.ListBillingGroupCostReports+import Amazonka.BillingConductor.ListBillingGroups+import Amazonka.BillingConductor.ListCustomLineItemVersions+import Amazonka.BillingConductor.ListCustomLineItems+import Amazonka.BillingConductor.ListPricingPlans+import Amazonka.BillingConductor.ListPricingPlansAssociatedWithPricingRule+import Amazonka.BillingConductor.ListPricingRules+import Amazonka.BillingConductor.ListPricingRulesAssociatedToPricingPlan+import Amazonka.BillingConductor.ListResourcesAssociatedToCustomLineItem+import Amazonka.BillingConductor.ListTagsForResource+import Amazonka.BillingConductor.TagResource+import Amazonka.BillingConductor.Types+import Amazonka.BillingConductor.UntagResource+import Amazonka.BillingConductor.UpdateBillingGroup+import Amazonka.BillingConductor.UpdateCustomLineItem+import Amazonka.BillingConductor.UpdatePricingPlan+import Amazonka.BillingConductor.UpdatePricingRule+import Amazonka.BillingConductor.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 'BillingConductor'.++-- $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/Amazonka/BillingConductor/AssociateAccounts.hs view
@@ -0,0 +1,193 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.AssociateAccounts+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Connects an array of account IDs in a consolidated billing family to a+-- predefined billing group. The account IDs must be a part of the+-- consolidated billing family during the current month, and not already+-- associated with another billing group. The maximum number of accounts+-- that can be associated in one call is 30.+module Amazonka.BillingConductor.AssociateAccounts+  ( -- * Creating a Request+    AssociateAccounts (..),+    newAssociateAccounts,++    -- * Request Lenses+    associateAccounts_arn,+    associateAccounts_accountIds,++    -- * Destructuring the Response+    AssociateAccountsResponse (..),+    newAssociateAccountsResponse,++    -- * Response Lenses+    associateAccountsResponse_arn,+    associateAccountsResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAssociateAccounts' smart constructor.+data AssociateAccounts = AssociateAccounts'+  { -- | The Amazon Resource Name (ARN) of the billing group that associates the+    -- array of account IDs.+    arn :: Prelude.Text,+    -- | The associating array of account IDs.+    accountIds :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateAccounts' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'associateAccounts_arn' - The Amazon Resource Name (ARN) of the billing group that associates the+-- array of account IDs.+--+-- 'accountIds', 'associateAccounts_accountIds' - The associating array of account IDs.+newAssociateAccounts ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'accountIds'+  Prelude.NonEmpty Prelude.Text ->+  AssociateAccounts+newAssociateAccounts pArn_ pAccountIds_ =+  AssociateAccounts'+    { arn = pArn_,+      accountIds = Lens.coerced Lens.# pAccountIds_+    }++-- | The Amazon Resource Name (ARN) of the billing group that associates the+-- array of account IDs.+associateAccounts_arn :: Lens.Lens' AssociateAccounts Prelude.Text+associateAccounts_arn = Lens.lens (\AssociateAccounts' {arn} -> arn) (\s@AssociateAccounts' {} a -> s {arn = a} :: AssociateAccounts)++-- | The associating array of account IDs.+associateAccounts_accountIds :: Lens.Lens' AssociateAccounts (Prelude.NonEmpty Prelude.Text)+associateAccounts_accountIds = Lens.lens (\AssociateAccounts' {accountIds} -> accountIds) (\s@AssociateAccounts' {} a -> s {accountIds = a} :: AssociateAccounts) Prelude.. Lens.coerced++instance Core.AWSRequest AssociateAccounts where+  type+    AWSResponse AssociateAccounts =+      AssociateAccountsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AssociateAccountsResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AssociateAccounts where+  hashWithSalt _salt AssociateAccounts' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` accountIds++instance Prelude.NFData AssociateAccounts where+  rnf AssociateAccounts' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf accountIds++instance Data.ToHeaders AssociateAccounts where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AssociateAccounts where+  toJSON AssociateAccounts' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Arn" Data..= arn),+            Prelude.Just ("AccountIds" Data..= accountIds)+          ]+      )++instance Data.ToPath AssociateAccounts where+  toPath = Prelude.const "/associate-accounts"++instance Data.ToQuery AssociateAccounts where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAssociateAccountsResponse' smart constructor.+data AssociateAccountsResponse = AssociateAccountsResponse'+  { -- | The Amazon Resource Name (ARN) of the billing group that associates the+    -- array of account IDs.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateAccountsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'associateAccountsResponse_arn' - The Amazon Resource Name (ARN) of the billing group that associates the+-- array of account IDs.+--+-- 'httpStatus', 'associateAccountsResponse_httpStatus' - The response's http status code.+newAssociateAccountsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AssociateAccountsResponse+newAssociateAccountsResponse pHttpStatus_ =+  AssociateAccountsResponse'+    { arn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the billing group that associates the+-- array of account IDs.+associateAccountsResponse_arn :: Lens.Lens' AssociateAccountsResponse (Prelude.Maybe Prelude.Text)+associateAccountsResponse_arn = Lens.lens (\AssociateAccountsResponse' {arn} -> arn) (\s@AssociateAccountsResponse' {} a -> s {arn = a} :: AssociateAccountsResponse)++-- | The response's http status code.+associateAccountsResponse_httpStatus :: Lens.Lens' AssociateAccountsResponse Prelude.Int+associateAccountsResponse_httpStatus = Lens.lens (\AssociateAccountsResponse' {httpStatus} -> httpStatus) (\s@AssociateAccountsResponse' {} a -> s {httpStatus = a} :: AssociateAccountsResponse)++instance Prelude.NFData AssociateAccountsResponse where+  rnf AssociateAccountsResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/AssociatePricingRules.hs view
@@ -0,0 +1,188 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.AssociatePricingRules+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Connects an array of @PricingRuleArns@ to a defined @PricingPlan@. The+-- maximum number @PricingRuleArn@ that can be associated in one call is+-- 30.+module Amazonka.BillingConductor.AssociatePricingRules+  ( -- * Creating a Request+    AssociatePricingRules (..),+    newAssociatePricingRules,++    -- * Request Lenses+    associatePricingRules_arn,+    associatePricingRules_pricingRuleArns,++    -- * Destructuring the Response+    AssociatePricingRulesResponse (..),+    newAssociatePricingRulesResponse,++    -- * Response Lenses+    associatePricingRulesResponse_arn,+    associatePricingRulesResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAssociatePricingRules' smart constructor.+data AssociatePricingRules = AssociatePricingRules'+  { -- | The @PricingPlanArn@ that the @PricingRuleArns@ are associated with.+    arn :: Prelude.Text,+    -- | The @PricingRuleArns@ that are associated with the Pricing Plan.+    pricingRuleArns :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociatePricingRules' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'associatePricingRules_arn' - The @PricingPlanArn@ that the @PricingRuleArns@ are associated with.+--+-- 'pricingRuleArns', 'associatePricingRules_pricingRuleArns' - The @PricingRuleArns@ that are associated with the Pricing Plan.+newAssociatePricingRules ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'pricingRuleArns'+  Prelude.NonEmpty Prelude.Text ->+  AssociatePricingRules+newAssociatePricingRules pArn_ pPricingRuleArns_ =+  AssociatePricingRules'+    { arn = pArn_,+      pricingRuleArns =+        Lens.coerced Lens.# pPricingRuleArns_+    }++-- | The @PricingPlanArn@ that the @PricingRuleArns@ are associated with.+associatePricingRules_arn :: Lens.Lens' AssociatePricingRules Prelude.Text+associatePricingRules_arn = Lens.lens (\AssociatePricingRules' {arn} -> arn) (\s@AssociatePricingRules' {} a -> s {arn = a} :: AssociatePricingRules)++-- | The @PricingRuleArns@ that are associated with the Pricing Plan.+associatePricingRules_pricingRuleArns :: Lens.Lens' AssociatePricingRules (Prelude.NonEmpty Prelude.Text)+associatePricingRules_pricingRuleArns = Lens.lens (\AssociatePricingRules' {pricingRuleArns} -> pricingRuleArns) (\s@AssociatePricingRules' {} a -> s {pricingRuleArns = a} :: AssociatePricingRules) Prelude.. Lens.coerced++instance Core.AWSRequest AssociatePricingRules where+  type+    AWSResponse AssociatePricingRules =+      AssociatePricingRulesResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AssociatePricingRulesResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AssociatePricingRules where+  hashWithSalt _salt AssociatePricingRules' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` pricingRuleArns++instance Prelude.NFData AssociatePricingRules where+  rnf AssociatePricingRules' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf pricingRuleArns++instance Data.ToHeaders AssociatePricingRules where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AssociatePricingRules where+  toJSON AssociatePricingRules' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Arn" Data..= arn),+            Prelude.Just+              ("PricingRuleArns" Data..= pricingRuleArns)+          ]+      )++instance Data.ToPath AssociatePricingRules where+  toPath = Prelude.const "/associate-pricing-rules"++instance Data.ToQuery AssociatePricingRules where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAssociatePricingRulesResponse' smart constructor.+data AssociatePricingRulesResponse = AssociatePricingRulesResponse'+  { -- | The @PricingPlanArn@ that the @PricingRuleArns@ are associated with.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociatePricingRulesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'associatePricingRulesResponse_arn' - The @PricingPlanArn@ that the @PricingRuleArns@ are associated with.+--+-- 'httpStatus', 'associatePricingRulesResponse_httpStatus' - The response's http status code.+newAssociatePricingRulesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AssociatePricingRulesResponse+newAssociatePricingRulesResponse pHttpStatus_ =+  AssociatePricingRulesResponse'+    { arn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The @PricingPlanArn@ that the @PricingRuleArns@ are associated with.+associatePricingRulesResponse_arn :: Lens.Lens' AssociatePricingRulesResponse (Prelude.Maybe Prelude.Text)+associatePricingRulesResponse_arn = Lens.lens (\AssociatePricingRulesResponse' {arn} -> arn) (\s@AssociatePricingRulesResponse' {} a -> s {arn = a} :: AssociatePricingRulesResponse)++-- | The response's http status code.+associatePricingRulesResponse_httpStatus :: Lens.Lens' AssociatePricingRulesResponse Prelude.Int+associatePricingRulesResponse_httpStatus = Lens.lens (\AssociatePricingRulesResponse' {httpStatus} -> httpStatus) (\s@AssociatePricingRulesResponse' {} a -> s {httpStatus = a} :: AssociatePricingRulesResponse)++instance Prelude.NFData AssociatePricingRulesResponse where+  rnf AssociatePricingRulesResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/BatchAssociateResourcesToCustomLineItem.hs view
@@ -0,0 +1,258 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.BatchAssociateResourcesToCustomLineItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Associates a batch of resources to a percentage custom line item.+module Amazonka.BillingConductor.BatchAssociateResourcesToCustomLineItem+  ( -- * Creating a Request+    BatchAssociateResourcesToCustomLineItem (..),+    newBatchAssociateResourcesToCustomLineItem,++    -- * Request Lenses+    batchAssociateResourcesToCustomLineItem_billingPeriodRange,+    batchAssociateResourcesToCustomLineItem_targetArn,+    batchAssociateResourcesToCustomLineItem_resourceArns,++    -- * Destructuring the Response+    BatchAssociateResourcesToCustomLineItemResponse (..),+    newBatchAssociateResourcesToCustomLineItemResponse,++    -- * Response Lenses+    batchAssociateResourcesToCustomLineItemResponse_failedAssociatedResources,+    batchAssociateResourcesToCustomLineItemResponse_successfullyAssociatedResources,+    batchAssociateResourcesToCustomLineItemResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchAssociateResourcesToCustomLineItem' smart constructor.+data BatchAssociateResourcesToCustomLineItem = BatchAssociateResourcesToCustomLineItem'+  { billingPeriodRange :: Prelude.Maybe CustomLineItemBillingPeriodRange,+    -- | A percentage custom line item ARN to associate the resources to.+    targetArn :: Prelude.Text,+    -- | A list containing the ARNs of the resources to be associated.+    resourceArns :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchAssociateResourcesToCustomLineItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriodRange', 'batchAssociateResourcesToCustomLineItem_billingPeriodRange' - Undocumented member.+--+-- 'targetArn', 'batchAssociateResourcesToCustomLineItem_targetArn' - A percentage custom line item ARN to associate the resources to.+--+-- 'resourceArns', 'batchAssociateResourcesToCustomLineItem_resourceArns' - A list containing the ARNs of the resources to be associated.+newBatchAssociateResourcesToCustomLineItem ::+  -- | 'targetArn'+  Prelude.Text ->+  -- | 'resourceArns'+  Prelude.NonEmpty Prelude.Text ->+  BatchAssociateResourcesToCustomLineItem+newBatchAssociateResourcesToCustomLineItem+  pTargetArn_+  pResourceArns_ =+    BatchAssociateResourcesToCustomLineItem'+      { billingPeriodRange =+          Prelude.Nothing,+        targetArn = pTargetArn_,+        resourceArns =+          Lens.coerced+            Lens.# pResourceArns_+      }++-- | Undocumented member.+batchAssociateResourcesToCustomLineItem_billingPeriodRange :: Lens.Lens' BatchAssociateResourcesToCustomLineItem (Prelude.Maybe CustomLineItemBillingPeriodRange)+batchAssociateResourcesToCustomLineItem_billingPeriodRange = Lens.lens (\BatchAssociateResourcesToCustomLineItem' {billingPeriodRange} -> billingPeriodRange) (\s@BatchAssociateResourcesToCustomLineItem' {} a -> s {billingPeriodRange = a} :: BatchAssociateResourcesToCustomLineItem)++-- | A percentage custom line item ARN to associate the resources to.+batchAssociateResourcesToCustomLineItem_targetArn :: Lens.Lens' BatchAssociateResourcesToCustomLineItem Prelude.Text+batchAssociateResourcesToCustomLineItem_targetArn = Lens.lens (\BatchAssociateResourcesToCustomLineItem' {targetArn} -> targetArn) (\s@BatchAssociateResourcesToCustomLineItem' {} a -> s {targetArn = a} :: BatchAssociateResourcesToCustomLineItem)++-- | A list containing the ARNs of the resources to be associated.+batchAssociateResourcesToCustomLineItem_resourceArns :: Lens.Lens' BatchAssociateResourcesToCustomLineItem (Prelude.NonEmpty Prelude.Text)+batchAssociateResourcesToCustomLineItem_resourceArns = Lens.lens (\BatchAssociateResourcesToCustomLineItem' {resourceArns} -> resourceArns) (\s@BatchAssociateResourcesToCustomLineItem' {} a -> s {resourceArns = a} :: BatchAssociateResourcesToCustomLineItem) Prelude.. Lens.coerced++instance+  Core.AWSRequest+    BatchAssociateResourcesToCustomLineItem+  where+  type+    AWSResponse+      BatchAssociateResourcesToCustomLineItem =+      BatchAssociateResourcesToCustomLineItemResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchAssociateResourcesToCustomLineItemResponse'+            Prelude.<$> ( x+                            Data..?> "FailedAssociatedResources"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "SuccessfullyAssociatedResources"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    BatchAssociateResourcesToCustomLineItem+  where+  hashWithSalt+    _salt+    BatchAssociateResourcesToCustomLineItem' {..} =+      _salt+        `Prelude.hashWithSalt` billingPeriodRange+        `Prelude.hashWithSalt` targetArn+        `Prelude.hashWithSalt` resourceArns++instance+  Prelude.NFData+    BatchAssociateResourcesToCustomLineItem+  where+  rnf BatchAssociateResourcesToCustomLineItem' {..} =+    Prelude.rnf billingPeriodRange+      `Prelude.seq` Prelude.rnf targetArn+      `Prelude.seq` Prelude.rnf resourceArns++instance+  Data.ToHeaders+    BatchAssociateResourcesToCustomLineItem+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    BatchAssociateResourcesToCustomLineItem+  where+  toJSON BatchAssociateResourcesToCustomLineItem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingPeriodRange" Data..=)+              Prelude.<$> billingPeriodRange,+            Prelude.Just ("TargetArn" Data..= targetArn),+            Prelude.Just ("ResourceArns" Data..= resourceArns)+          ]+      )++instance+  Data.ToPath+    BatchAssociateResourcesToCustomLineItem+  where+  toPath =+    Prelude.const+      "/batch-associate-resources-to-custom-line-item"++instance+  Data.ToQuery+    BatchAssociateResourcesToCustomLineItem+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchAssociateResourcesToCustomLineItemResponse' smart constructor.+data BatchAssociateResourcesToCustomLineItemResponse = BatchAssociateResourcesToCustomLineItemResponse'+  { -- | A list of @AssociateResourceResponseElement@ for each resource that+    -- failed association to a percentage custom line item.+    failedAssociatedResources :: Prelude.Maybe [AssociateResourceResponseElement],+    -- | A list of @AssociateResourceResponseElement@ for each resource that\'s+    -- been associated to a percentage custom line item successfully.+    successfullyAssociatedResources :: Prelude.Maybe [AssociateResourceResponseElement],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchAssociateResourcesToCustomLineItemResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failedAssociatedResources', 'batchAssociateResourcesToCustomLineItemResponse_failedAssociatedResources' - A list of @AssociateResourceResponseElement@ for each resource that+-- failed association to a percentage custom line item.+--+-- 'successfullyAssociatedResources', 'batchAssociateResourcesToCustomLineItemResponse_successfullyAssociatedResources' - A list of @AssociateResourceResponseElement@ for each resource that\'s+-- been associated to a percentage custom line item successfully.+--+-- 'httpStatus', 'batchAssociateResourcesToCustomLineItemResponse_httpStatus' - The response's http status code.+newBatchAssociateResourcesToCustomLineItemResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchAssociateResourcesToCustomLineItemResponse+newBatchAssociateResourcesToCustomLineItemResponse+  pHttpStatus_ =+    BatchAssociateResourcesToCustomLineItemResponse'+      { failedAssociatedResources =+          Prelude.Nothing,+        successfullyAssociatedResources =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | A list of @AssociateResourceResponseElement@ for each resource that+-- failed association to a percentage custom line item.+batchAssociateResourcesToCustomLineItemResponse_failedAssociatedResources :: Lens.Lens' BatchAssociateResourcesToCustomLineItemResponse (Prelude.Maybe [AssociateResourceResponseElement])+batchAssociateResourcesToCustomLineItemResponse_failedAssociatedResources = Lens.lens (\BatchAssociateResourcesToCustomLineItemResponse' {failedAssociatedResources} -> failedAssociatedResources) (\s@BatchAssociateResourcesToCustomLineItemResponse' {} a -> s {failedAssociatedResources = a} :: BatchAssociateResourcesToCustomLineItemResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of @AssociateResourceResponseElement@ for each resource that\'s+-- been associated to a percentage custom line item successfully.+batchAssociateResourcesToCustomLineItemResponse_successfullyAssociatedResources :: Lens.Lens' BatchAssociateResourcesToCustomLineItemResponse (Prelude.Maybe [AssociateResourceResponseElement])+batchAssociateResourcesToCustomLineItemResponse_successfullyAssociatedResources = Lens.lens (\BatchAssociateResourcesToCustomLineItemResponse' {successfullyAssociatedResources} -> successfullyAssociatedResources) (\s@BatchAssociateResourcesToCustomLineItemResponse' {} a -> s {successfullyAssociatedResources = a} :: BatchAssociateResourcesToCustomLineItemResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchAssociateResourcesToCustomLineItemResponse_httpStatus :: Lens.Lens' BatchAssociateResourcesToCustomLineItemResponse Prelude.Int+batchAssociateResourcesToCustomLineItemResponse_httpStatus = Lens.lens (\BatchAssociateResourcesToCustomLineItemResponse' {httpStatus} -> httpStatus) (\s@BatchAssociateResourcesToCustomLineItemResponse' {} a -> s {httpStatus = a} :: BatchAssociateResourcesToCustomLineItemResponse)++instance+  Prelude.NFData+    BatchAssociateResourcesToCustomLineItemResponse+  where+  rnf+    BatchAssociateResourcesToCustomLineItemResponse' {..} =+      Prelude.rnf failedAssociatedResources+        `Prelude.seq` Prelude.rnf successfullyAssociatedResources+        `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/BatchDisassociateResourcesFromCustomLineItem.hs view
@@ -0,0 +1,263 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.BatchDisassociateResourcesFromCustomLineItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disassociates a batch of resources from a percentage custom line item.+module Amazonka.BillingConductor.BatchDisassociateResourcesFromCustomLineItem+  ( -- * Creating a Request+    BatchDisassociateResourcesFromCustomLineItem (..),+    newBatchDisassociateResourcesFromCustomLineItem,++    -- * Request Lenses+    batchDisassociateResourcesFromCustomLineItem_billingPeriodRange,+    batchDisassociateResourcesFromCustomLineItem_targetArn,+    batchDisassociateResourcesFromCustomLineItem_resourceArns,++    -- * Destructuring the Response+    BatchDisassociateResourcesFromCustomLineItemResponse (..),+    newBatchDisassociateResourcesFromCustomLineItemResponse,++    -- * Response Lenses+    batchDisassociateResourcesFromCustomLineItemResponse_failedDisassociatedResources,+    batchDisassociateResourcesFromCustomLineItemResponse_successfullyDisassociatedResources,+    batchDisassociateResourcesFromCustomLineItemResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchDisassociateResourcesFromCustomLineItem' smart constructor.+data BatchDisassociateResourcesFromCustomLineItem = BatchDisassociateResourcesFromCustomLineItem'+  { billingPeriodRange :: Prelude.Maybe CustomLineItemBillingPeriodRange,+    -- | A percentage custom line item ARN to disassociate the resources from.+    targetArn :: Prelude.Text,+    -- | A list containing the ARNs of resources to be disassociated.+    resourceArns :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDisassociateResourcesFromCustomLineItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriodRange', 'batchDisassociateResourcesFromCustomLineItem_billingPeriodRange' - Undocumented member.+--+-- 'targetArn', 'batchDisassociateResourcesFromCustomLineItem_targetArn' - A percentage custom line item ARN to disassociate the resources from.+--+-- 'resourceArns', 'batchDisassociateResourcesFromCustomLineItem_resourceArns' - A list containing the ARNs of resources to be disassociated.+newBatchDisassociateResourcesFromCustomLineItem ::+  -- | 'targetArn'+  Prelude.Text ->+  -- | 'resourceArns'+  Prelude.NonEmpty Prelude.Text ->+  BatchDisassociateResourcesFromCustomLineItem+newBatchDisassociateResourcesFromCustomLineItem+  pTargetArn_+  pResourceArns_ =+    BatchDisassociateResourcesFromCustomLineItem'+      { billingPeriodRange =+          Prelude.Nothing,+        targetArn = pTargetArn_,+        resourceArns =+          Lens.coerced+            Lens.# pResourceArns_+      }++-- | Undocumented member.+batchDisassociateResourcesFromCustomLineItem_billingPeriodRange :: Lens.Lens' BatchDisassociateResourcesFromCustomLineItem (Prelude.Maybe CustomLineItemBillingPeriodRange)+batchDisassociateResourcesFromCustomLineItem_billingPeriodRange = Lens.lens (\BatchDisassociateResourcesFromCustomLineItem' {billingPeriodRange} -> billingPeriodRange) (\s@BatchDisassociateResourcesFromCustomLineItem' {} a -> s {billingPeriodRange = a} :: BatchDisassociateResourcesFromCustomLineItem)++-- | A percentage custom line item ARN to disassociate the resources from.+batchDisassociateResourcesFromCustomLineItem_targetArn :: Lens.Lens' BatchDisassociateResourcesFromCustomLineItem Prelude.Text+batchDisassociateResourcesFromCustomLineItem_targetArn = Lens.lens (\BatchDisassociateResourcesFromCustomLineItem' {targetArn} -> targetArn) (\s@BatchDisassociateResourcesFromCustomLineItem' {} a -> s {targetArn = a} :: BatchDisassociateResourcesFromCustomLineItem)++-- | A list containing the ARNs of resources to be disassociated.+batchDisassociateResourcesFromCustomLineItem_resourceArns :: Lens.Lens' BatchDisassociateResourcesFromCustomLineItem (Prelude.NonEmpty Prelude.Text)+batchDisassociateResourcesFromCustomLineItem_resourceArns = Lens.lens (\BatchDisassociateResourcesFromCustomLineItem' {resourceArns} -> resourceArns) (\s@BatchDisassociateResourcesFromCustomLineItem' {} a -> s {resourceArns = a} :: BatchDisassociateResourcesFromCustomLineItem) Prelude.. Lens.coerced++instance+  Core.AWSRequest+    BatchDisassociateResourcesFromCustomLineItem+  where+  type+    AWSResponse+      BatchDisassociateResourcesFromCustomLineItem =+      BatchDisassociateResourcesFromCustomLineItemResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchDisassociateResourcesFromCustomLineItemResponse'+            Prelude.<$> ( x+                            Data..?> "FailedDisassociatedResources"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "SuccessfullyDisassociatedResources"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    BatchDisassociateResourcesFromCustomLineItem+  where+  hashWithSalt+    _salt+    BatchDisassociateResourcesFromCustomLineItem' {..} =+      _salt+        `Prelude.hashWithSalt` billingPeriodRange+        `Prelude.hashWithSalt` targetArn+        `Prelude.hashWithSalt` resourceArns++instance+  Prelude.NFData+    BatchDisassociateResourcesFromCustomLineItem+  where+  rnf BatchDisassociateResourcesFromCustomLineItem' {..} =+    Prelude.rnf billingPeriodRange+      `Prelude.seq` Prelude.rnf targetArn+      `Prelude.seq` Prelude.rnf resourceArns++instance+  Data.ToHeaders+    BatchDisassociateResourcesFromCustomLineItem+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    BatchDisassociateResourcesFromCustomLineItem+  where+  toJSON+    BatchDisassociateResourcesFromCustomLineItem' {..} =+      Data.object+        ( Prelude.catMaybes+            [ ("BillingPeriodRange" Data..=)+                Prelude.<$> billingPeriodRange,+              Prelude.Just ("TargetArn" Data..= targetArn),+              Prelude.Just ("ResourceArns" Data..= resourceArns)+            ]+        )++instance+  Data.ToPath+    BatchDisassociateResourcesFromCustomLineItem+  where+  toPath =+    Prelude.const+      "/batch-disassociate-resources-from-custom-line-item"++instance+  Data.ToQuery+    BatchDisassociateResourcesFromCustomLineItem+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchDisassociateResourcesFromCustomLineItemResponse' smart constructor.+data BatchDisassociateResourcesFromCustomLineItemResponse = BatchDisassociateResourcesFromCustomLineItemResponse'+  { -- | A list of @DisassociateResourceResponseElement@ for each resource that+    -- failed disassociation from a percentage custom line item.+    failedDisassociatedResources :: Prelude.Maybe [DisassociateResourceResponseElement],+    -- | A list of @DisassociateResourceResponseElement@ for each resource+    -- that\'s been disassociated from a percentage custom line item+    -- successfully.+    successfullyDisassociatedResources :: Prelude.Maybe [DisassociateResourceResponseElement],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDisassociateResourcesFromCustomLineItemResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failedDisassociatedResources', 'batchDisassociateResourcesFromCustomLineItemResponse_failedDisassociatedResources' - A list of @DisassociateResourceResponseElement@ for each resource that+-- failed disassociation from a percentage custom line item.+--+-- 'successfullyDisassociatedResources', 'batchDisassociateResourcesFromCustomLineItemResponse_successfullyDisassociatedResources' - A list of @DisassociateResourceResponseElement@ for each resource+-- that\'s been disassociated from a percentage custom line item+-- successfully.+--+-- 'httpStatus', 'batchDisassociateResourcesFromCustomLineItemResponse_httpStatus' - The response's http status code.+newBatchDisassociateResourcesFromCustomLineItemResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchDisassociateResourcesFromCustomLineItemResponse+newBatchDisassociateResourcesFromCustomLineItemResponse+  pHttpStatus_ =+    BatchDisassociateResourcesFromCustomLineItemResponse'+      { failedDisassociatedResources =+          Prelude.Nothing,+        successfullyDisassociatedResources =+          Prelude.Nothing,+        httpStatus =+          pHttpStatus_+      }++-- | A list of @DisassociateResourceResponseElement@ for each resource that+-- failed disassociation from a percentage custom line item.+batchDisassociateResourcesFromCustomLineItemResponse_failedDisassociatedResources :: Lens.Lens' BatchDisassociateResourcesFromCustomLineItemResponse (Prelude.Maybe [DisassociateResourceResponseElement])+batchDisassociateResourcesFromCustomLineItemResponse_failedDisassociatedResources = Lens.lens (\BatchDisassociateResourcesFromCustomLineItemResponse' {failedDisassociatedResources} -> failedDisassociatedResources) (\s@BatchDisassociateResourcesFromCustomLineItemResponse' {} a -> s {failedDisassociatedResources = a} :: BatchDisassociateResourcesFromCustomLineItemResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DisassociateResourceResponseElement@ for each resource+-- that\'s been disassociated from a percentage custom line item+-- successfully.+batchDisassociateResourcesFromCustomLineItemResponse_successfullyDisassociatedResources :: Lens.Lens' BatchDisassociateResourcesFromCustomLineItemResponse (Prelude.Maybe [DisassociateResourceResponseElement])+batchDisassociateResourcesFromCustomLineItemResponse_successfullyDisassociatedResources = Lens.lens (\BatchDisassociateResourcesFromCustomLineItemResponse' {successfullyDisassociatedResources} -> successfullyDisassociatedResources) (\s@BatchDisassociateResourcesFromCustomLineItemResponse' {} a -> s {successfullyDisassociatedResources = a} :: BatchDisassociateResourcesFromCustomLineItemResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchDisassociateResourcesFromCustomLineItemResponse_httpStatus :: Lens.Lens' BatchDisassociateResourcesFromCustomLineItemResponse Prelude.Int+batchDisassociateResourcesFromCustomLineItemResponse_httpStatus = Lens.lens (\BatchDisassociateResourcesFromCustomLineItemResponse' {httpStatus} -> httpStatus) (\s@BatchDisassociateResourcesFromCustomLineItemResponse' {} a -> s {httpStatus = a} :: BatchDisassociateResourcesFromCustomLineItemResponse)++instance+  Prelude.NFData+    BatchDisassociateResourcesFromCustomLineItemResponse+  where+  rnf+    BatchDisassociateResourcesFromCustomLineItemResponse' {..} =+      Prelude.rnf failedDisassociatedResources+        `Prelude.seq` Prelude.rnf successfullyDisassociatedResources+        `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/CreateBillingGroup.hs view
@@ -0,0 +1,268 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.CreateBillingGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a billing group that resembles a consolidated billing family+-- that Amazon Web Services charges, based off of the predefined pricing+-- plan computation.+module Amazonka.BillingConductor.CreateBillingGroup+  ( -- * Creating a Request+    CreateBillingGroup (..),+    newCreateBillingGroup,++    -- * Request Lenses+    createBillingGroup_clientToken,+    createBillingGroup_description,+    createBillingGroup_primaryAccountId,+    createBillingGroup_tags,+    createBillingGroup_name,+    createBillingGroup_accountGrouping,+    createBillingGroup_computationPreference,++    -- * Destructuring the Response+    CreateBillingGroupResponse (..),+    newCreateBillingGroupResponse,++    -- * Response Lenses+    createBillingGroupResponse_arn,+    createBillingGroupResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateBillingGroup' smart constructor.+data CreateBillingGroup = CreateBillingGroup'+  { -- | The token that is needed to support idempotency. Idempotency isn\'t+    -- currently supported, but will be implemented in a future update.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The description of the billing group.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The account ID that serves as the main account in a billing group.+    primaryAccountId :: Prelude.Maybe Prelude.Text,+    -- | A map that contains tag keys and tag values that are attached to a+    -- billing group. This feature isn\'t available during the beta.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The billing group name. The names must be unique.+    name :: Data.Sensitive Prelude.Text,+    -- | The set of accounts that will be under the billing group. The set of+    -- accounts resemble the linked accounts in a consolidated family.+    accountGrouping :: AccountGrouping,+    -- | The preferences and settings that will be used to compute the Amazon Web+    -- Services charges for a billing group.+    computationPreference :: ComputationPreference+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBillingGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createBillingGroup_clientToken' - The token that is needed to support idempotency. Idempotency isn\'t+-- currently supported, but will be implemented in a future update.+--+-- 'description', 'createBillingGroup_description' - The description of the billing group.+--+-- 'primaryAccountId', 'createBillingGroup_primaryAccountId' - The account ID that serves as the main account in a billing group.+--+-- 'tags', 'createBillingGroup_tags' - A map that contains tag keys and tag values that are attached to a+-- billing group. This feature isn\'t available during the beta.+--+-- 'name', 'createBillingGroup_name' - The billing group name. The names must be unique.+--+-- 'accountGrouping', 'createBillingGroup_accountGrouping' - The set of accounts that will be under the billing group. The set of+-- accounts resemble the linked accounts in a consolidated family.+--+-- 'computationPreference', 'createBillingGroup_computationPreference' - The preferences and settings that will be used to compute the Amazon Web+-- Services charges for a billing group.+newCreateBillingGroup ::+  -- | 'name'+  Prelude.Text ->+  -- | 'accountGrouping'+  AccountGrouping ->+  -- | 'computationPreference'+  ComputationPreference ->+  CreateBillingGroup+newCreateBillingGroup+  pName_+  pAccountGrouping_+  pComputationPreference_ =+    CreateBillingGroup'+      { clientToken = Prelude.Nothing,+        description = Prelude.Nothing,+        primaryAccountId = Prelude.Nothing,+        tags = Prelude.Nothing,+        name = Data._Sensitive Lens.# pName_,+        accountGrouping = pAccountGrouping_,+        computationPreference = pComputationPreference_+      }++-- | The token that is needed to support idempotency. Idempotency isn\'t+-- currently supported, but will be implemented in a future update.+createBillingGroup_clientToken :: Lens.Lens' CreateBillingGroup (Prelude.Maybe Prelude.Text)+createBillingGroup_clientToken = Lens.lens (\CreateBillingGroup' {clientToken} -> clientToken) (\s@CreateBillingGroup' {} a -> s {clientToken = a} :: CreateBillingGroup)++-- | The description of the billing group.+createBillingGroup_description :: Lens.Lens' CreateBillingGroup (Prelude.Maybe Prelude.Text)+createBillingGroup_description = Lens.lens (\CreateBillingGroup' {description} -> description) (\s@CreateBillingGroup' {} a -> s {description = a} :: CreateBillingGroup) Prelude.. Lens.mapping Data._Sensitive++-- | The account ID that serves as the main account in a billing group.+createBillingGroup_primaryAccountId :: Lens.Lens' CreateBillingGroup (Prelude.Maybe Prelude.Text)+createBillingGroup_primaryAccountId = Lens.lens (\CreateBillingGroup' {primaryAccountId} -> primaryAccountId) (\s@CreateBillingGroup' {} a -> s {primaryAccountId = a} :: CreateBillingGroup)++-- | A map that contains tag keys and tag values that are attached to a+-- billing group. This feature isn\'t available during the beta.+createBillingGroup_tags :: Lens.Lens' CreateBillingGroup (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createBillingGroup_tags = Lens.lens (\CreateBillingGroup' {tags} -> tags) (\s@CreateBillingGroup' {} a -> s {tags = a} :: CreateBillingGroup) Prelude.. Lens.mapping Lens.coerced++-- | The billing group name. The names must be unique.+createBillingGroup_name :: Lens.Lens' CreateBillingGroup Prelude.Text+createBillingGroup_name = Lens.lens (\CreateBillingGroup' {name} -> name) (\s@CreateBillingGroup' {} a -> s {name = a} :: CreateBillingGroup) Prelude.. Data._Sensitive++-- | The set of accounts that will be under the billing group. The set of+-- accounts resemble the linked accounts in a consolidated family.+createBillingGroup_accountGrouping :: Lens.Lens' CreateBillingGroup AccountGrouping+createBillingGroup_accountGrouping = Lens.lens (\CreateBillingGroup' {accountGrouping} -> accountGrouping) (\s@CreateBillingGroup' {} a -> s {accountGrouping = a} :: CreateBillingGroup)++-- | The preferences and settings that will be used to compute the Amazon Web+-- Services charges for a billing group.+createBillingGroup_computationPreference :: Lens.Lens' CreateBillingGroup ComputationPreference+createBillingGroup_computationPreference = Lens.lens (\CreateBillingGroup' {computationPreference} -> computationPreference) (\s@CreateBillingGroup' {} a -> s {computationPreference = a} :: CreateBillingGroup)++instance Core.AWSRequest CreateBillingGroup where+  type+    AWSResponse CreateBillingGroup =+      CreateBillingGroupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateBillingGroupResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateBillingGroup where+  hashWithSalt _salt CreateBillingGroup' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` primaryAccountId+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` accountGrouping+      `Prelude.hashWithSalt` computationPreference++instance Prelude.NFData CreateBillingGroup where+  rnf CreateBillingGroup' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf primaryAccountId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf accountGrouping+      `Prelude.seq` Prelude.rnf computationPreference++instance Data.ToHeaders CreateBillingGroup where+  toHeaders CreateBillingGroup' {..} =+    Prelude.mconcat+      [ "X-Amzn-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON CreateBillingGroup where+  toJSON CreateBillingGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("PrimaryAccountId" Data..=)+              Prelude.<$> primaryAccountId,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just+              ("AccountGrouping" Data..= accountGrouping),+            Prelude.Just+              ( "ComputationPreference"+                  Data..= computationPreference+              )+          ]+      )++instance Data.ToPath CreateBillingGroup where+  toPath = Prelude.const "/create-billing-group"++instance Data.ToQuery CreateBillingGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateBillingGroupResponse' smart constructor.+data CreateBillingGroupResponse = CreateBillingGroupResponse'+  { -- | The Amazon Resource Name (ARN) of the created billing group.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBillingGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createBillingGroupResponse_arn' - The Amazon Resource Name (ARN) of the created billing group.+--+-- 'httpStatus', 'createBillingGroupResponse_httpStatus' - The response's http status code.+newCreateBillingGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateBillingGroupResponse+newCreateBillingGroupResponse pHttpStatus_ =+  CreateBillingGroupResponse'+    { arn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the created billing group.+createBillingGroupResponse_arn :: Lens.Lens' CreateBillingGroupResponse (Prelude.Maybe Prelude.Text)+createBillingGroupResponse_arn = Lens.lens (\CreateBillingGroupResponse' {arn} -> arn) (\s@CreateBillingGroupResponse' {} a -> s {arn = a} :: CreateBillingGroupResponse)++-- | The response's http status code.+createBillingGroupResponse_httpStatus :: Lens.Lens' CreateBillingGroupResponse Prelude.Int+createBillingGroupResponse_httpStatus = Lens.lens (\CreateBillingGroupResponse' {httpStatus} -> httpStatus) (\s@CreateBillingGroupResponse' {} a -> s {httpStatus = a} :: CreateBillingGroupResponse)++instance Prelude.NFData CreateBillingGroupResponse where+  rnf CreateBillingGroupResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/CreateCustomLineItem.hs view
@@ -0,0 +1,275 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.CreateCustomLineItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a custom line item that can be used to create a one-time fixed+-- charge that can be applied to a single billing group for the current or+-- previous billing period. The one-time fixed charge is either a fee or+-- discount.+module Amazonka.BillingConductor.CreateCustomLineItem+  ( -- * Creating a Request+    CreateCustomLineItem (..),+    newCreateCustomLineItem,++    -- * Request Lenses+    createCustomLineItem_billingPeriodRange,+    createCustomLineItem_clientToken,+    createCustomLineItem_tags,+    createCustomLineItem_name,+    createCustomLineItem_description,+    createCustomLineItem_billingGroupArn,+    createCustomLineItem_chargeDetails,++    -- * Destructuring the Response+    CreateCustomLineItemResponse (..),+    newCreateCustomLineItemResponse,++    -- * Response Lenses+    createCustomLineItemResponse_arn,+    createCustomLineItemResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateCustomLineItem' smart constructor.+data CreateCustomLineItem = CreateCustomLineItem'+  { -- | A time range for which the custom line item is effective.+    billingPeriodRange :: Prelude.Maybe CustomLineItemBillingPeriodRange,+    -- | The token that is needed to support idempotency. Idempotency isn\'t+    -- currently supported, but will be implemented in a future update.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A map that contains tag keys and tag values that are attached to a+    -- custom line item.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the custom line item.+    name :: Data.Sensitive Prelude.Text,+    -- | The description of the custom line item. This is shown on the Bills page+    -- in association with the charge value.+    description :: Data.Sensitive Prelude.Text,+    -- | The Amazon Resource Name (ARN) that references the billing group where+    -- the custom line item applies to.+    billingGroupArn :: Prelude.Text,+    -- | A @CustomLineItemChargeDetails@ that describes the charge details for a+    -- custom line item.+    chargeDetails :: CustomLineItemChargeDetails+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCustomLineItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriodRange', 'createCustomLineItem_billingPeriodRange' - A time range for which the custom line item is effective.+--+-- 'clientToken', 'createCustomLineItem_clientToken' - The token that is needed to support idempotency. Idempotency isn\'t+-- currently supported, but will be implemented in a future update.+--+-- 'tags', 'createCustomLineItem_tags' - A map that contains tag keys and tag values that are attached to a+-- custom line item.+--+-- 'name', 'createCustomLineItem_name' - The name of the custom line item.+--+-- 'description', 'createCustomLineItem_description' - The description of the custom line item. This is shown on the Bills page+-- in association with the charge value.+--+-- 'billingGroupArn', 'createCustomLineItem_billingGroupArn' - The Amazon Resource Name (ARN) that references the billing group where+-- the custom line item applies to.+--+-- 'chargeDetails', 'createCustomLineItem_chargeDetails' - A @CustomLineItemChargeDetails@ that describes the charge details for a+-- custom line item.+newCreateCustomLineItem ::+  -- | 'name'+  Prelude.Text ->+  -- | 'description'+  Prelude.Text ->+  -- | 'billingGroupArn'+  Prelude.Text ->+  -- | 'chargeDetails'+  CustomLineItemChargeDetails ->+  CreateCustomLineItem+newCreateCustomLineItem+  pName_+  pDescription_+  pBillingGroupArn_+  pChargeDetails_ =+    CreateCustomLineItem'+      { billingPeriodRange =+          Prelude.Nothing,+        clientToken = Prelude.Nothing,+        tags = Prelude.Nothing,+        name = Data._Sensitive Lens.# pName_,+        description = Data._Sensitive Lens.# pDescription_,+        billingGroupArn = pBillingGroupArn_,+        chargeDetails = pChargeDetails_+      }++-- | A time range for which the custom line item is effective.+createCustomLineItem_billingPeriodRange :: Lens.Lens' CreateCustomLineItem (Prelude.Maybe CustomLineItemBillingPeriodRange)+createCustomLineItem_billingPeriodRange = Lens.lens (\CreateCustomLineItem' {billingPeriodRange} -> billingPeriodRange) (\s@CreateCustomLineItem' {} a -> s {billingPeriodRange = a} :: CreateCustomLineItem)++-- | The token that is needed to support idempotency. Idempotency isn\'t+-- currently supported, but will be implemented in a future update.+createCustomLineItem_clientToken :: Lens.Lens' CreateCustomLineItem (Prelude.Maybe Prelude.Text)+createCustomLineItem_clientToken = Lens.lens (\CreateCustomLineItem' {clientToken} -> clientToken) (\s@CreateCustomLineItem' {} a -> s {clientToken = a} :: CreateCustomLineItem)++-- | A map that contains tag keys and tag values that are attached to a+-- custom line item.+createCustomLineItem_tags :: Lens.Lens' CreateCustomLineItem (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createCustomLineItem_tags = Lens.lens (\CreateCustomLineItem' {tags} -> tags) (\s@CreateCustomLineItem' {} a -> s {tags = a} :: CreateCustomLineItem) Prelude.. Lens.mapping Lens.coerced++-- | The name of the custom line item.+createCustomLineItem_name :: Lens.Lens' CreateCustomLineItem Prelude.Text+createCustomLineItem_name = Lens.lens (\CreateCustomLineItem' {name} -> name) (\s@CreateCustomLineItem' {} a -> s {name = a} :: CreateCustomLineItem) Prelude.. Data._Sensitive++-- | The description of the custom line item. This is shown on the Bills page+-- in association with the charge value.+createCustomLineItem_description :: Lens.Lens' CreateCustomLineItem Prelude.Text+createCustomLineItem_description = Lens.lens (\CreateCustomLineItem' {description} -> description) (\s@CreateCustomLineItem' {} a -> s {description = a} :: CreateCustomLineItem) Prelude.. Data._Sensitive++-- | The Amazon Resource Name (ARN) that references the billing group where+-- the custom line item applies to.+createCustomLineItem_billingGroupArn :: Lens.Lens' CreateCustomLineItem Prelude.Text+createCustomLineItem_billingGroupArn = Lens.lens (\CreateCustomLineItem' {billingGroupArn} -> billingGroupArn) (\s@CreateCustomLineItem' {} a -> s {billingGroupArn = a} :: CreateCustomLineItem)++-- | A @CustomLineItemChargeDetails@ that describes the charge details for a+-- custom line item.+createCustomLineItem_chargeDetails :: Lens.Lens' CreateCustomLineItem CustomLineItemChargeDetails+createCustomLineItem_chargeDetails = Lens.lens (\CreateCustomLineItem' {chargeDetails} -> chargeDetails) (\s@CreateCustomLineItem' {} a -> s {chargeDetails = a} :: CreateCustomLineItem)++instance Core.AWSRequest CreateCustomLineItem where+  type+    AWSResponse CreateCustomLineItem =+      CreateCustomLineItemResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateCustomLineItemResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateCustomLineItem where+  hashWithSalt _salt CreateCustomLineItem' {..} =+    _salt+      `Prelude.hashWithSalt` billingPeriodRange+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` billingGroupArn+      `Prelude.hashWithSalt` chargeDetails++instance Prelude.NFData CreateCustomLineItem where+  rnf CreateCustomLineItem' {..} =+    Prelude.rnf billingPeriodRange+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf billingGroupArn+      `Prelude.seq` Prelude.rnf chargeDetails++instance Data.ToHeaders CreateCustomLineItem where+  toHeaders CreateCustomLineItem' {..} =+    Prelude.mconcat+      [ "X-Amzn-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON CreateCustomLineItem where+  toJSON CreateCustomLineItem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingPeriodRange" Data..=)+              Prelude.<$> billingPeriodRange,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("Description" Data..= description),+            Prelude.Just+              ("BillingGroupArn" Data..= billingGroupArn),+            Prelude.Just+              ("ChargeDetails" Data..= chargeDetails)+          ]+      )++instance Data.ToPath CreateCustomLineItem where+  toPath = Prelude.const "/create-custom-line-item"++instance Data.ToQuery CreateCustomLineItem where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateCustomLineItemResponse' smart constructor.+data CreateCustomLineItemResponse = CreateCustomLineItemResponse'+  { -- | The Amazon Resource Name (ARN) of the created custom line item.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCustomLineItemResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createCustomLineItemResponse_arn' - The Amazon Resource Name (ARN) of the created custom line item.+--+-- 'httpStatus', 'createCustomLineItemResponse_httpStatus' - The response's http status code.+newCreateCustomLineItemResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateCustomLineItemResponse+newCreateCustomLineItemResponse pHttpStatus_ =+  CreateCustomLineItemResponse'+    { arn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the created custom line item.+createCustomLineItemResponse_arn :: Lens.Lens' CreateCustomLineItemResponse (Prelude.Maybe Prelude.Text)+createCustomLineItemResponse_arn = Lens.lens (\CreateCustomLineItemResponse' {arn} -> arn) (\s@CreateCustomLineItemResponse' {} a -> s {arn = a} :: CreateCustomLineItemResponse)++-- | The response's http status code.+createCustomLineItemResponse_httpStatus :: Lens.Lens' CreateCustomLineItemResponse Prelude.Int+createCustomLineItemResponse_httpStatus = Lens.lens (\CreateCustomLineItemResponse' {httpStatus} -> httpStatus) (\s@CreateCustomLineItemResponse' {} a -> s {httpStatus = a} :: CreateCustomLineItemResponse)++instance Prelude.NFData CreateCustomLineItemResponse where+  rnf CreateCustomLineItemResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/CreatePricingPlan.hs view
@@ -0,0 +1,230 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.CreatePricingPlan+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a pricing plan that is used for computing Amazon Web Services+-- charges for billing groups.+module Amazonka.BillingConductor.CreatePricingPlan+  ( -- * Creating a Request+    CreatePricingPlan (..),+    newCreatePricingPlan,++    -- * Request Lenses+    createPricingPlan_clientToken,+    createPricingPlan_description,+    createPricingPlan_pricingRuleArns,+    createPricingPlan_tags,+    createPricingPlan_name,++    -- * Destructuring the Response+    CreatePricingPlanResponse (..),+    newCreatePricingPlanResponse,++    -- * Response Lenses+    createPricingPlanResponse_arn,+    createPricingPlanResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreatePricingPlan' smart constructor.+data CreatePricingPlan = CreatePricingPlan'+  { -- | The token that is needed to support idempotency. Idempotency isn\'t+    -- currently supported, but will be implemented in a future update.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The description of the pricing plan.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A list of Amazon Resource Names (ARNs) that define the pricing plan+    -- parameters.+    pricingRuleArns :: Prelude.Maybe [Prelude.Text],+    -- | A map that contains tag keys and tag values that are attached to a+    -- pricing plan.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the pricing plan. The names must be unique to each pricing+    -- plan.+    name :: Data.Sensitive Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreatePricingPlan' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createPricingPlan_clientToken' - The token that is needed to support idempotency. Idempotency isn\'t+-- currently supported, but will be implemented in a future update.+--+-- 'description', 'createPricingPlan_description' - The description of the pricing plan.+--+-- 'pricingRuleArns', 'createPricingPlan_pricingRuleArns' - A list of Amazon Resource Names (ARNs) that define the pricing plan+-- parameters.+--+-- 'tags', 'createPricingPlan_tags' - A map that contains tag keys and tag values that are attached to a+-- pricing plan.+--+-- 'name', 'createPricingPlan_name' - The name of the pricing plan. The names must be unique to each pricing+-- plan.+newCreatePricingPlan ::+  -- | 'name'+  Prelude.Text ->+  CreatePricingPlan+newCreatePricingPlan pName_ =+  CreatePricingPlan'+    { clientToken = Prelude.Nothing,+      description = Prelude.Nothing,+      pricingRuleArns = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = Data._Sensitive Lens.# pName_+    }++-- | The token that is needed to support idempotency. Idempotency isn\'t+-- currently supported, but will be implemented in a future update.+createPricingPlan_clientToken :: Lens.Lens' CreatePricingPlan (Prelude.Maybe Prelude.Text)+createPricingPlan_clientToken = Lens.lens (\CreatePricingPlan' {clientToken} -> clientToken) (\s@CreatePricingPlan' {} a -> s {clientToken = a} :: CreatePricingPlan)++-- | The description of the pricing plan.+createPricingPlan_description :: Lens.Lens' CreatePricingPlan (Prelude.Maybe Prelude.Text)+createPricingPlan_description = Lens.lens (\CreatePricingPlan' {description} -> description) (\s@CreatePricingPlan' {} a -> s {description = a} :: CreatePricingPlan) Prelude.. Lens.mapping Data._Sensitive++-- | A list of Amazon Resource Names (ARNs) that define the pricing plan+-- parameters.+createPricingPlan_pricingRuleArns :: Lens.Lens' CreatePricingPlan (Prelude.Maybe [Prelude.Text])+createPricingPlan_pricingRuleArns = Lens.lens (\CreatePricingPlan' {pricingRuleArns} -> pricingRuleArns) (\s@CreatePricingPlan' {} a -> s {pricingRuleArns = a} :: CreatePricingPlan) Prelude.. Lens.mapping Lens.coerced++-- | A map that contains tag keys and tag values that are attached to a+-- pricing plan.+createPricingPlan_tags :: Lens.Lens' CreatePricingPlan (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createPricingPlan_tags = Lens.lens (\CreatePricingPlan' {tags} -> tags) (\s@CreatePricingPlan' {} a -> s {tags = a} :: CreatePricingPlan) Prelude.. Lens.mapping Lens.coerced++-- | The name of the pricing plan. The names must be unique to each pricing+-- plan.+createPricingPlan_name :: Lens.Lens' CreatePricingPlan Prelude.Text+createPricingPlan_name = Lens.lens (\CreatePricingPlan' {name} -> name) (\s@CreatePricingPlan' {} a -> s {name = a} :: CreatePricingPlan) Prelude.. Data._Sensitive++instance Core.AWSRequest CreatePricingPlan where+  type+    AWSResponse CreatePricingPlan =+      CreatePricingPlanResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreatePricingPlanResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreatePricingPlan where+  hashWithSalt _salt CreatePricingPlan' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` pricingRuleArns+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreatePricingPlan where+  rnf CreatePricingPlan' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf pricingRuleArns+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreatePricingPlan where+  toHeaders CreatePricingPlan' {..} =+    Prelude.mconcat+      [ "X-Amzn-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON CreatePricingPlan where+  toJSON CreatePricingPlan' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("PricingRuleArns" Data..=)+              Prelude.<$> pricingRuleArns,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Name" Data..= name)+          ]+      )++instance Data.ToPath CreatePricingPlan where+  toPath = Prelude.const "/create-pricing-plan"++instance Data.ToQuery CreatePricingPlan where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreatePricingPlanResponse' smart constructor.+data CreatePricingPlanResponse = CreatePricingPlanResponse'+  { -- | The Amazon Resource Name (ARN) of the created pricing plan.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreatePricingPlanResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createPricingPlanResponse_arn' - The Amazon Resource Name (ARN) of the created pricing plan.+--+-- 'httpStatus', 'createPricingPlanResponse_httpStatus' - The response's http status code.+newCreatePricingPlanResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreatePricingPlanResponse+newCreatePricingPlanResponse pHttpStatus_ =+  CreatePricingPlanResponse'+    { arn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the created pricing plan.+createPricingPlanResponse_arn :: Lens.Lens' CreatePricingPlanResponse (Prelude.Maybe Prelude.Text)+createPricingPlanResponse_arn = Lens.lens (\CreatePricingPlanResponse' {arn} -> arn) (\s@CreatePricingPlanResponse' {} a -> s {arn = a} :: CreatePricingPlanResponse)++-- | The response's http status code.+createPricingPlanResponse_httpStatus :: Lens.Lens' CreatePricingPlanResponse Prelude.Int+createPricingPlanResponse_httpStatus = Lens.lens (\CreatePricingPlanResponse' {httpStatus} -> httpStatus) (\s@CreatePricingPlanResponse' {} a -> s {httpStatus = a} :: CreatePricingPlanResponse)++instance Prelude.NFData CreatePricingPlanResponse where+  rnf CreatePricingPlanResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/CreatePricingRule.hs view
@@ -0,0 +1,305 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.CreatePricingRule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a pricing rule can be associated to a pricing plan, or a set of+-- pricing plans.+module Amazonka.BillingConductor.CreatePricingRule+  ( -- * Creating a Request+    CreatePricingRule (..),+    newCreatePricingRule,++    -- * Request Lenses+    createPricingRule_billingEntity,+    createPricingRule_clientToken,+    createPricingRule_description,+    createPricingRule_modifierPercentage,+    createPricingRule_service,+    createPricingRule_tags,+    createPricingRule_tiering,+    createPricingRule_name,+    createPricingRule_scope,+    createPricingRule_type,++    -- * Destructuring the Response+    CreatePricingRuleResponse (..),+    newCreatePricingRuleResponse,++    -- * Response Lenses+    createPricingRuleResponse_arn,+    createPricingRuleResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreatePricingRule' smart constructor.+data CreatePricingRule = CreatePricingRule'+  { -- | The seller of services provided by Amazon Web Services, their+    -- affiliates, or third-party providers selling services via Amazon Web+    -- Services Marketplace.+    billingEntity :: Prelude.Maybe Prelude.Text,+    -- | The token that\'s needed to support idempotency. Idempotency isn\'t+    -- currently supported, but will be implemented in a future update.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The pricing rule description.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A percentage modifier that\'s applied on the public pricing rates.+    modifierPercentage :: Prelude.Maybe Prelude.Double,+    -- | If the @Scope@ attribute is set to @SERVICE@, the attribute indicates+    -- which service the @PricingRule@ is applicable for.+    service :: Prelude.Maybe Prelude.Text,+    -- | A map that contains tag keys and tag values that are attached to a+    -- pricing rule.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The set of tiering configurations for the pricing rule.+    tiering :: Prelude.Maybe CreateTieringInput,+    -- | The pricing rule name. The names must be unique to each pricing rule.+    name :: Data.Sensitive Prelude.Text,+    -- | The scope of pricing rule that indicates if it\'s globally applicable,+    -- or it\'s service-specific.+    scope :: PricingRuleScope,+    -- | The type of pricing rule.+    type' :: PricingRuleType+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreatePricingRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingEntity', 'createPricingRule_billingEntity' - The seller of services provided by Amazon Web Services, their+-- affiliates, or third-party providers selling services via Amazon Web+-- Services Marketplace.+--+-- 'clientToken', 'createPricingRule_clientToken' - The token that\'s needed to support idempotency. Idempotency isn\'t+-- currently supported, but will be implemented in a future update.+--+-- 'description', 'createPricingRule_description' - The pricing rule description.+--+-- 'modifierPercentage', 'createPricingRule_modifierPercentage' - A percentage modifier that\'s applied on the public pricing rates.+--+-- 'service', 'createPricingRule_service' - If the @Scope@ attribute is set to @SERVICE@, the attribute indicates+-- which service the @PricingRule@ is applicable for.+--+-- 'tags', 'createPricingRule_tags' - A map that contains tag keys and tag values that are attached to a+-- pricing rule.+--+-- 'tiering', 'createPricingRule_tiering' - The set of tiering configurations for the pricing rule.+--+-- 'name', 'createPricingRule_name' - The pricing rule name. The names must be unique to each pricing rule.+--+-- 'scope', 'createPricingRule_scope' - The scope of pricing rule that indicates if it\'s globally applicable,+-- or it\'s service-specific.+--+-- 'type'', 'createPricingRule_type' - The type of pricing rule.+newCreatePricingRule ::+  -- | 'name'+  Prelude.Text ->+  -- | 'scope'+  PricingRuleScope ->+  -- | 'type''+  PricingRuleType ->+  CreatePricingRule+newCreatePricingRule pName_ pScope_ pType_ =+  CreatePricingRule'+    { billingEntity = Prelude.Nothing,+      clientToken = Prelude.Nothing,+      description = Prelude.Nothing,+      modifierPercentage = Prelude.Nothing,+      service = Prelude.Nothing,+      tags = Prelude.Nothing,+      tiering = Prelude.Nothing,+      name = Data._Sensitive Lens.# pName_,+      scope = pScope_,+      type' = pType_+    }++-- | The seller of services provided by Amazon Web Services, their+-- affiliates, or third-party providers selling services via Amazon Web+-- Services Marketplace.+createPricingRule_billingEntity :: Lens.Lens' CreatePricingRule (Prelude.Maybe Prelude.Text)+createPricingRule_billingEntity = Lens.lens (\CreatePricingRule' {billingEntity} -> billingEntity) (\s@CreatePricingRule' {} a -> s {billingEntity = a} :: CreatePricingRule)++-- | The token that\'s needed to support idempotency. Idempotency isn\'t+-- currently supported, but will be implemented in a future update.+createPricingRule_clientToken :: Lens.Lens' CreatePricingRule (Prelude.Maybe Prelude.Text)+createPricingRule_clientToken = Lens.lens (\CreatePricingRule' {clientToken} -> clientToken) (\s@CreatePricingRule' {} a -> s {clientToken = a} :: CreatePricingRule)++-- | The pricing rule description.+createPricingRule_description :: Lens.Lens' CreatePricingRule (Prelude.Maybe Prelude.Text)+createPricingRule_description = Lens.lens (\CreatePricingRule' {description} -> description) (\s@CreatePricingRule' {} a -> s {description = a} :: CreatePricingRule) Prelude.. Lens.mapping Data._Sensitive++-- | A percentage modifier that\'s applied on the public pricing rates.+createPricingRule_modifierPercentage :: Lens.Lens' CreatePricingRule (Prelude.Maybe Prelude.Double)+createPricingRule_modifierPercentage = Lens.lens (\CreatePricingRule' {modifierPercentage} -> modifierPercentage) (\s@CreatePricingRule' {} a -> s {modifierPercentage = a} :: CreatePricingRule)++-- | If the @Scope@ attribute is set to @SERVICE@, the attribute indicates+-- which service the @PricingRule@ is applicable for.+createPricingRule_service :: Lens.Lens' CreatePricingRule (Prelude.Maybe Prelude.Text)+createPricingRule_service = Lens.lens (\CreatePricingRule' {service} -> service) (\s@CreatePricingRule' {} a -> s {service = a} :: CreatePricingRule)++-- | A map that contains tag keys and tag values that are attached to a+-- pricing rule.+createPricingRule_tags :: Lens.Lens' CreatePricingRule (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createPricingRule_tags = Lens.lens (\CreatePricingRule' {tags} -> tags) (\s@CreatePricingRule' {} a -> s {tags = a} :: CreatePricingRule) Prelude.. Lens.mapping Lens.coerced++-- | The set of tiering configurations for the pricing rule.+createPricingRule_tiering :: Lens.Lens' CreatePricingRule (Prelude.Maybe CreateTieringInput)+createPricingRule_tiering = Lens.lens (\CreatePricingRule' {tiering} -> tiering) (\s@CreatePricingRule' {} a -> s {tiering = a} :: CreatePricingRule)++-- | The pricing rule name. The names must be unique to each pricing rule.+createPricingRule_name :: Lens.Lens' CreatePricingRule Prelude.Text+createPricingRule_name = Lens.lens (\CreatePricingRule' {name} -> name) (\s@CreatePricingRule' {} a -> s {name = a} :: CreatePricingRule) Prelude.. Data._Sensitive++-- | The scope of pricing rule that indicates if it\'s globally applicable,+-- or it\'s service-specific.+createPricingRule_scope :: Lens.Lens' CreatePricingRule PricingRuleScope+createPricingRule_scope = Lens.lens (\CreatePricingRule' {scope} -> scope) (\s@CreatePricingRule' {} a -> s {scope = a} :: CreatePricingRule)++-- | The type of pricing rule.+createPricingRule_type :: Lens.Lens' CreatePricingRule PricingRuleType+createPricingRule_type = Lens.lens (\CreatePricingRule' {type'} -> type') (\s@CreatePricingRule' {} a -> s {type' = a} :: CreatePricingRule)++instance Core.AWSRequest CreatePricingRule where+  type+    AWSResponse CreatePricingRule =+      CreatePricingRuleResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreatePricingRuleResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreatePricingRule where+  hashWithSalt _salt CreatePricingRule' {..} =+    _salt+      `Prelude.hashWithSalt` billingEntity+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` modifierPercentage+      `Prelude.hashWithSalt` service+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` tiering+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` scope+      `Prelude.hashWithSalt` type'++instance Prelude.NFData CreatePricingRule where+  rnf CreatePricingRule' {..} =+    Prelude.rnf billingEntity+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf modifierPercentage+      `Prelude.seq` Prelude.rnf service+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf tiering+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf scope+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders CreatePricingRule where+  toHeaders CreatePricingRule' {..} =+    Prelude.mconcat+      [ "X-Amzn-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON CreatePricingRule where+  toJSON CreatePricingRule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingEntity" Data..=) Prelude.<$> billingEntity,+            ("Description" Data..=) Prelude.<$> description,+            ("ModifierPercentage" Data..=)+              Prelude.<$> modifierPercentage,+            ("Service" Data..=) Prelude.<$> service,+            ("Tags" Data..=) Prelude.<$> tags,+            ("Tiering" Data..=) Prelude.<$> tiering,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("Scope" Data..= scope),+            Prelude.Just ("Type" Data..= type')+          ]+      )++instance Data.ToPath CreatePricingRule where+  toPath = Prelude.const "/create-pricing-rule"++instance Data.ToQuery CreatePricingRule where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreatePricingRuleResponse' smart constructor.+data CreatePricingRuleResponse = CreatePricingRuleResponse'+  { -- | The Amazon Resource Name (ARN) of the created pricing rule.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreatePricingRuleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createPricingRuleResponse_arn' - The Amazon Resource Name (ARN) of the created pricing rule.+--+-- 'httpStatus', 'createPricingRuleResponse_httpStatus' - The response's http status code.+newCreatePricingRuleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreatePricingRuleResponse+newCreatePricingRuleResponse pHttpStatus_ =+  CreatePricingRuleResponse'+    { arn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the created pricing rule.+createPricingRuleResponse_arn :: Lens.Lens' CreatePricingRuleResponse (Prelude.Maybe Prelude.Text)+createPricingRuleResponse_arn = Lens.lens (\CreatePricingRuleResponse' {arn} -> arn) (\s@CreatePricingRuleResponse' {} a -> s {arn = a} :: CreatePricingRuleResponse)++-- | The response's http status code.+createPricingRuleResponse_httpStatus :: Lens.Lens' CreatePricingRuleResponse Prelude.Int+createPricingRuleResponse_httpStatus = Lens.lens (\CreatePricingRuleResponse' {httpStatus} -> httpStatus) (\s@CreatePricingRuleResponse' {} a -> s {httpStatus = a} :: CreatePricingRuleResponse)++instance Prelude.NFData CreatePricingRuleResponse where+  rnf CreatePricingRuleResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/DeleteBillingGroup.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.DeleteBillingGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a billing group.+module Amazonka.BillingConductor.DeleteBillingGroup+  ( -- * Creating a Request+    DeleteBillingGroup (..),+    newDeleteBillingGroup,++    -- * Request Lenses+    deleteBillingGroup_arn,++    -- * Destructuring the Response+    DeleteBillingGroupResponse (..),+    newDeleteBillingGroupResponse,++    -- * Response Lenses+    deleteBillingGroupResponse_arn,+    deleteBillingGroupResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteBillingGroup' smart constructor.+data DeleteBillingGroup = DeleteBillingGroup'+  { -- | The Amazon Resource Name (ARN) of the billing group that you\'re+    -- deleting.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBillingGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'deleteBillingGroup_arn' - The Amazon Resource Name (ARN) of the billing group that you\'re+-- deleting.+newDeleteBillingGroup ::+  -- | 'arn'+  Prelude.Text ->+  DeleteBillingGroup+newDeleteBillingGroup pArn_ =+  DeleteBillingGroup' {arn = pArn_}++-- | The Amazon Resource Name (ARN) of the billing group that you\'re+-- deleting.+deleteBillingGroup_arn :: Lens.Lens' DeleteBillingGroup Prelude.Text+deleteBillingGroup_arn = Lens.lens (\DeleteBillingGroup' {arn} -> arn) (\s@DeleteBillingGroup' {} a -> s {arn = a} :: DeleteBillingGroup)++instance Core.AWSRequest DeleteBillingGroup where+  type+    AWSResponse DeleteBillingGroup =+      DeleteBillingGroupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteBillingGroupResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteBillingGroup where+  hashWithSalt _salt DeleteBillingGroup' {..} =+    _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData DeleteBillingGroup where+  rnf DeleteBillingGroup' {..} = Prelude.rnf arn++instance Data.ToHeaders DeleteBillingGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteBillingGroup where+  toJSON DeleteBillingGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Arn" Data..= arn)]+      )++instance Data.ToPath DeleteBillingGroup where+  toPath = Prelude.const "/delete-billing-group"++instance Data.ToQuery DeleteBillingGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteBillingGroupResponse' smart constructor.+data DeleteBillingGroupResponse = DeleteBillingGroupResponse'+  { -- | The Amazon Resource Name (ARN) of the deleted billing group.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBillingGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'deleteBillingGroupResponse_arn' - The Amazon Resource Name (ARN) of the deleted billing group.+--+-- 'httpStatus', 'deleteBillingGroupResponse_httpStatus' - The response's http status code.+newDeleteBillingGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteBillingGroupResponse+newDeleteBillingGroupResponse pHttpStatus_ =+  DeleteBillingGroupResponse'+    { arn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the deleted billing group.+deleteBillingGroupResponse_arn :: Lens.Lens' DeleteBillingGroupResponse (Prelude.Maybe Prelude.Text)+deleteBillingGroupResponse_arn = Lens.lens (\DeleteBillingGroupResponse' {arn} -> arn) (\s@DeleteBillingGroupResponse' {} a -> s {arn = a} :: DeleteBillingGroupResponse)++-- | The response's http status code.+deleteBillingGroupResponse_httpStatus :: Lens.Lens' DeleteBillingGroupResponse Prelude.Int+deleteBillingGroupResponse_httpStatus = Lens.lens (\DeleteBillingGroupResponse' {httpStatus} -> httpStatus) (\s@DeleteBillingGroupResponse' {} a -> s {httpStatus = a} :: DeleteBillingGroupResponse)++instance Prelude.NFData DeleteBillingGroupResponse where+  rnf DeleteBillingGroupResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/DeleteCustomLineItem.hs view
@@ -0,0 +1,184 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.DeleteCustomLineItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the custom line item identified by the given ARN in the current,+-- or previous billing period.+module Amazonka.BillingConductor.DeleteCustomLineItem+  ( -- * Creating a Request+    DeleteCustomLineItem (..),+    newDeleteCustomLineItem,++    -- * Request Lenses+    deleteCustomLineItem_billingPeriodRange,+    deleteCustomLineItem_arn,++    -- * Destructuring the Response+    DeleteCustomLineItemResponse (..),+    newDeleteCustomLineItemResponse,++    -- * Response Lenses+    deleteCustomLineItemResponse_arn,+    deleteCustomLineItemResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteCustomLineItem' smart constructor.+data DeleteCustomLineItem = DeleteCustomLineItem'+  { billingPeriodRange :: Prelude.Maybe CustomLineItemBillingPeriodRange,+    -- | The ARN of the custom line item to be deleted.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCustomLineItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriodRange', 'deleteCustomLineItem_billingPeriodRange' - Undocumented member.+--+-- 'arn', 'deleteCustomLineItem_arn' - The ARN of the custom line item to be deleted.+newDeleteCustomLineItem ::+  -- | 'arn'+  Prelude.Text ->+  DeleteCustomLineItem+newDeleteCustomLineItem pArn_ =+  DeleteCustomLineItem'+    { billingPeriodRange =+        Prelude.Nothing,+      arn = pArn_+    }++-- | Undocumented member.+deleteCustomLineItem_billingPeriodRange :: Lens.Lens' DeleteCustomLineItem (Prelude.Maybe CustomLineItemBillingPeriodRange)+deleteCustomLineItem_billingPeriodRange = Lens.lens (\DeleteCustomLineItem' {billingPeriodRange} -> billingPeriodRange) (\s@DeleteCustomLineItem' {} a -> s {billingPeriodRange = a} :: DeleteCustomLineItem)++-- | The ARN of the custom line item to be deleted.+deleteCustomLineItem_arn :: Lens.Lens' DeleteCustomLineItem Prelude.Text+deleteCustomLineItem_arn = Lens.lens (\DeleteCustomLineItem' {arn} -> arn) (\s@DeleteCustomLineItem' {} a -> s {arn = a} :: DeleteCustomLineItem)++instance Core.AWSRequest DeleteCustomLineItem where+  type+    AWSResponse DeleteCustomLineItem =+      DeleteCustomLineItemResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteCustomLineItemResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteCustomLineItem where+  hashWithSalt _salt DeleteCustomLineItem' {..} =+    _salt+      `Prelude.hashWithSalt` billingPeriodRange+      `Prelude.hashWithSalt` arn++instance Prelude.NFData DeleteCustomLineItem where+  rnf DeleteCustomLineItem' {..} =+    Prelude.rnf billingPeriodRange+      `Prelude.seq` Prelude.rnf arn++instance Data.ToHeaders DeleteCustomLineItem where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteCustomLineItem where+  toJSON DeleteCustomLineItem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingPeriodRange" Data..=)+              Prelude.<$> billingPeriodRange,+            Prelude.Just ("Arn" Data..= arn)+          ]+      )++instance Data.ToPath DeleteCustomLineItem where+  toPath = Prelude.const "/delete-custom-line-item"++instance Data.ToQuery DeleteCustomLineItem where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteCustomLineItemResponse' smart constructor.+data DeleteCustomLineItemResponse = DeleteCustomLineItemResponse'+  { -- | Then ARN of the deleted custom line item.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCustomLineItemResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'deleteCustomLineItemResponse_arn' - Then ARN of the deleted custom line item.+--+-- 'httpStatus', 'deleteCustomLineItemResponse_httpStatus' - The response's http status code.+newDeleteCustomLineItemResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteCustomLineItemResponse+newDeleteCustomLineItemResponse pHttpStatus_ =+  DeleteCustomLineItemResponse'+    { arn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Then ARN of the deleted custom line item.+deleteCustomLineItemResponse_arn :: Lens.Lens' DeleteCustomLineItemResponse (Prelude.Maybe Prelude.Text)+deleteCustomLineItemResponse_arn = Lens.lens (\DeleteCustomLineItemResponse' {arn} -> arn) (\s@DeleteCustomLineItemResponse' {} a -> s {arn = a} :: DeleteCustomLineItemResponse)++-- | The response's http status code.+deleteCustomLineItemResponse_httpStatus :: Lens.Lens' DeleteCustomLineItemResponse Prelude.Int+deleteCustomLineItemResponse_httpStatus = Lens.lens (\DeleteCustomLineItemResponse' {httpStatus} -> httpStatus) (\s@DeleteCustomLineItemResponse' {} a -> s {httpStatus = a} :: DeleteCustomLineItemResponse)++instance Prelude.NFData DeleteCustomLineItemResponse where+  rnf DeleteCustomLineItemResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/DeletePricingPlan.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.DeletePricingPlan+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a pricing plan. The pricing plan must not be associated with any+-- billing groups to delete successfully.+module Amazonka.BillingConductor.DeletePricingPlan+  ( -- * Creating a Request+    DeletePricingPlan (..),+    newDeletePricingPlan,++    -- * Request Lenses+    deletePricingPlan_arn,++    -- * Destructuring the Response+    DeletePricingPlanResponse (..),+    newDeletePricingPlanResponse,++    -- * Response Lenses+    deletePricingPlanResponse_arn,+    deletePricingPlanResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeletePricingPlan' smart constructor.+data DeletePricingPlan = DeletePricingPlan'+  { -- | The Amazon Resource Name (ARN) of the pricing plan that you\'re+    -- deleting.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePricingPlan' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'deletePricingPlan_arn' - The Amazon Resource Name (ARN) of the pricing plan that you\'re+-- deleting.+newDeletePricingPlan ::+  -- | 'arn'+  Prelude.Text ->+  DeletePricingPlan+newDeletePricingPlan pArn_ =+  DeletePricingPlan' {arn = pArn_}++-- | The Amazon Resource Name (ARN) of the pricing plan that you\'re+-- deleting.+deletePricingPlan_arn :: Lens.Lens' DeletePricingPlan Prelude.Text+deletePricingPlan_arn = Lens.lens (\DeletePricingPlan' {arn} -> arn) (\s@DeletePricingPlan' {} a -> s {arn = a} :: DeletePricingPlan)++instance Core.AWSRequest DeletePricingPlan where+  type+    AWSResponse DeletePricingPlan =+      DeletePricingPlanResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeletePricingPlanResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeletePricingPlan where+  hashWithSalt _salt DeletePricingPlan' {..} =+    _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData DeletePricingPlan where+  rnf DeletePricingPlan' {..} = Prelude.rnf arn++instance Data.ToHeaders DeletePricingPlan where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeletePricingPlan where+  toJSON DeletePricingPlan' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Arn" Data..= arn)]+      )++instance Data.ToPath DeletePricingPlan where+  toPath = Prelude.const "/delete-pricing-plan"++instance Data.ToQuery DeletePricingPlan where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeletePricingPlanResponse' smart constructor.+data DeletePricingPlanResponse = DeletePricingPlanResponse'+  { -- | The Amazon Resource Name (ARN) of the deleted pricing plan.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePricingPlanResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'deletePricingPlanResponse_arn' - The Amazon Resource Name (ARN) of the deleted pricing plan.+--+-- 'httpStatus', 'deletePricingPlanResponse_httpStatus' - The response's http status code.+newDeletePricingPlanResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeletePricingPlanResponse+newDeletePricingPlanResponse pHttpStatus_ =+  DeletePricingPlanResponse'+    { arn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the deleted pricing plan.+deletePricingPlanResponse_arn :: Lens.Lens' DeletePricingPlanResponse (Prelude.Maybe Prelude.Text)+deletePricingPlanResponse_arn = Lens.lens (\DeletePricingPlanResponse' {arn} -> arn) (\s@DeletePricingPlanResponse' {} a -> s {arn = a} :: DeletePricingPlanResponse)++-- | The response's http status code.+deletePricingPlanResponse_httpStatus :: Lens.Lens' DeletePricingPlanResponse Prelude.Int+deletePricingPlanResponse_httpStatus = Lens.lens (\DeletePricingPlanResponse' {httpStatus} -> httpStatus) (\s@DeletePricingPlanResponse' {} a -> s {httpStatus = a} :: DeletePricingPlanResponse)++instance Prelude.NFData DeletePricingPlanResponse where+  rnf DeletePricingPlanResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/DeletePricingRule.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.DeletePricingRule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the pricing rule that\'s identified by the input Amazon Resource+-- Name (ARN).+module Amazonka.BillingConductor.DeletePricingRule+  ( -- * Creating a Request+    DeletePricingRule (..),+    newDeletePricingRule,++    -- * Request Lenses+    deletePricingRule_arn,++    -- * Destructuring the Response+    DeletePricingRuleResponse (..),+    newDeletePricingRuleResponse,++    -- * Response Lenses+    deletePricingRuleResponse_arn,+    deletePricingRuleResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeletePricingRule' smart constructor.+data DeletePricingRule = DeletePricingRule'+  { -- | The Amazon Resource Name (ARN) of the pricing rule that you are+    -- deleting.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePricingRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'deletePricingRule_arn' - The Amazon Resource Name (ARN) of the pricing rule that you are+-- deleting.+newDeletePricingRule ::+  -- | 'arn'+  Prelude.Text ->+  DeletePricingRule+newDeletePricingRule pArn_ =+  DeletePricingRule' {arn = pArn_}++-- | The Amazon Resource Name (ARN) of the pricing rule that you are+-- deleting.+deletePricingRule_arn :: Lens.Lens' DeletePricingRule Prelude.Text+deletePricingRule_arn = Lens.lens (\DeletePricingRule' {arn} -> arn) (\s@DeletePricingRule' {} a -> s {arn = a} :: DeletePricingRule)++instance Core.AWSRequest DeletePricingRule where+  type+    AWSResponse DeletePricingRule =+      DeletePricingRuleResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeletePricingRuleResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeletePricingRule where+  hashWithSalt _salt DeletePricingRule' {..} =+    _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData DeletePricingRule where+  rnf DeletePricingRule' {..} = Prelude.rnf arn++instance Data.ToHeaders DeletePricingRule where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeletePricingRule where+  toJSON DeletePricingRule' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Arn" Data..= arn)]+      )++instance Data.ToPath DeletePricingRule where+  toPath = Prelude.const "/delete-pricing-rule"++instance Data.ToQuery DeletePricingRule where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeletePricingRuleResponse' smart constructor.+data DeletePricingRuleResponse = DeletePricingRuleResponse'+  { -- | The Amazon Resource Name (ARN) of the deleted pricing rule.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePricingRuleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'deletePricingRuleResponse_arn' - The Amazon Resource Name (ARN) of the deleted pricing rule.+--+-- 'httpStatus', 'deletePricingRuleResponse_httpStatus' - The response's http status code.+newDeletePricingRuleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeletePricingRuleResponse+newDeletePricingRuleResponse pHttpStatus_ =+  DeletePricingRuleResponse'+    { arn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the deleted pricing rule.+deletePricingRuleResponse_arn :: Lens.Lens' DeletePricingRuleResponse (Prelude.Maybe Prelude.Text)+deletePricingRuleResponse_arn = Lens.lens (\DeletePricingRuleResponse' {arn} -> arn) (\s@DeletePricingRuleResponse' {} a -> s {arn = a} :: DeletePricingRuleResponse)++-- | The response's http status code.+deletePricingRuleResponse_httpStatus :: Lens.Lens' DeletePricingRuleResponse Prelude.Int+deletePricingRuleResponse_httpStatus = Lens.lens (\DeletePricingRuleResponse' {httpStatus} -> httpStatus) (\s@DeletePricingRuleResponse' {} a -> s {httpStatus = a} :: DeletePricingRuleResponse)++instance Prelude.NFData DeletePricingRuleResponse where+  rnf DeletePricingRuleResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/DisassociateAccounts.hs view
@@ -0,0 +1,190 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.DisassociateAccounts+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes the specified list of account IDs from the given billing group.+module Amazonka.BillingConductor.DisassociateAccounts+  ( -- * Creating a Request+    DisassociateAccounts (..),+    newDisassociateAccounts,++    -- * Request Lenses+    disassociateAccounts_arn,+    disassociateAccounts_accountIds,++    -- * Destructuring the Response+    DisassociateAccountsResponse (..),+    newDisassociateAccountsResponse,++    -- * Response Lenses+    disassociateAccountsResponse_arn,+    disassociateAccountsResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociateAccounts' smart constructor.+data DisassociateAccounts = DisassociateAccounts'+  { -- | The Amazon Resource Name (ARN) of the billing group that the array of+    -- account IDs will disassociate from.+    arn :: Prelude.Text,+    -- | The array of account IDs to disassociate.+    accountIds :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateAccounts' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'disassociateAccounts_arn' - The Amazon Resource Name (ARN) of the billing group that the array of+-- account IDs will disassociate from.+--+-- 'accountIds', 'disassociateAccounts_accountIds' - The array of account IDs to disassociate.+newDisassociateAccounts ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'accountIds'+  Prelude.NonEmpty Prelude.Text ->+  DisassociateAccounts+newDisassociateAccounts pArn_ pAccountIds_ =+  DisassociateAccounts'+    { arn = pArn_,+      accountIds = Lens.coerced Lens.# pAccountIds_+    }++-- | The Amazon Resource Name (ARN) of the billing group that the array of+-- account IDs will disassociate from.+disassociateAccounts_arn :: Lens.Lens' DisassociateAccounts Prelude.Text+disassociateAccounts_arn = Lens.lens (\DisassociateAccounts' {arn} -> arn) (\s@DisassociateAccounts' {} a -> s {arn = a} :: DisassociateAccounts)++-- | The array of account IDs to disassociate.+disassociateAccounts_accountIds :: Lens.Lens' DisassociateAccounts (Prelude.NonEmpty Prelude.Text)+disassociateAccounts_accountIds = Lens.lens (\DisassociateAccounts' {accountIds} -> accountIds) (\s@DisassociateAccounts' {} a -> s {accountIds = a} :: DisassociateAccounts) Prelude.. Lens.coerced++instance Core.AWSRequest DisassociateAccounts where+  type+    AWSResponse DisassociateAccounts =+      DisassociateAccountsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DisassociateAccountsResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DisassociateAccounts where+  hashWithSalt _salt DisassociateAccounts' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` accountIds++instance Prelude.NFData DisassociateAccounts where+  rnf DisassociateAccounts' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf accountIds++instance Data.ToHeaders DisassociateAccounts where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DisassociateAccounts where+  toJSON DisassociateAccounts' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Arn" Data..= arn),+            Prelude.Just ("AccountIds" Data..= accountIds)+          ]+      )++instance Data.ToPath DisassociateAccounts where+  toPath = Prelude.const "/disassociate-accounts"++instance Data.ToQuery DisassociateAccounts where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisassociateAccountsResponse' smart constructor.+data DisassociateAccountsResponse = DisassociateAccountsResponse'+  { -- | The Amazon Resource Name (ARN) of the billing group that the array of+    -- account IDs is disassociated from.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateAccountsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'disassociateAccountsResponse_arn' - The Amazon Resource Name (ARN) of the billing group that the array of+-- account IDs is disassociated from.+--+-- 'httpStatus', 'disassociateAccountsResponse_httpStatus' - The response's http status code.+newDisassociateAccountsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DisassociateAccountsResponse+newDisassociateAccountsResponse pHttpStatus_ =+  DisassociateAccountsResponse'+    { arn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the billing group that the array of+-- account IDs is disassociated from.+disassociateAccountsResponse_arn :: Lens.Lens' DisassociateAccountsResponse (Prelude.Maybe Prelude.Text)+disassociateAccountsResponse_arn = Lens.lens (\DisassociateAccountsResponse' {arn} -> arn) (\s@DisassociateAccountsResponse' {} a -> s {arn = a} :: DisassociateAccountsResponse)++-- | The response's http status code.+disassociateAccountsResponse_httpStatus :: Lens.Lens' DisassociateAccountsResponse Prelude.Int+disassociateAccountsResponse_httpStatus = Lens.lens (\DisassociateAccountsResponse' {httpStatus} -> httpStatus) (\s@DisassociateAccountsResponse' {} a -> s {httpStatus = a} :: DisassociateAccountsResponse)++instance Prelude.NFData DisassociateAccountsResponse where+  rnf DisassociateAccountsResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/DisassociatePricingRules.hs view
@@ -0,0 +1,198 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.DisassociatePricingRules+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disassociates a list of pricing rules from a pricing plan.+module Amazonka.BillingConductor.DisassociatePricingRules+  ( -- * Creating a Request+    DisassociatePricingRules (..),+    newDisassociatePricingRules,++    -- * Request Lenses+    disassociatePricingRules_arn,+    disassociatePricingRules_pricingRuleArns,++    -- * Destructuring the Response+    DisassociatePricingRulesResponse (..),+    newDisassociatePricingRulesResponse,++    -- * Response Lenses+    disassociatePricingRulesResponse_arn,+    disassociatePricingRulesResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociatePricingRules' smart constructor.+data DisassociatePricingRules = DisassociatePricingRules'+  { -- | The pricing plan Amazon Resource Name (ARN) to disassociate pricing+    -- rules from.+    arn :: Prelude.Text,+    -- | A list containing the Amazon Resource Name (ARN) of the pricing rules+    -- that will be disassociated.+    pricingRuleArns :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociatePricingRules' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'disassociatePricingRules_arn' - The pricing plan Amazon Resource Name (ARN) to disassociate pricing+-- rules from.+--+-- 'pricingRuleArns', 'disassociatePricingRules_pricingRuleArns' - A list containing the Amazon Resource Name (ARN) of the pricing rules+-- that will be disassociated.+newDisassociatePricingRules ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'pricingRuleArns'+  Prelude.NonEmpty Prelude.Text ->+  DisassociatePricingRules+newDisassociatePricingRules pArn_ pPricingRuleArns_ =+  DisassociatePricingRules'+    { arn = pArn_,+      pricingRuleArns =+        Lens.coerced Lens.# pPricingRuleArns_+    }++-- | The pricing plan Amazon Resource Name (ARN) to disassociate pricing+-- rules from.+disassociatePricingRules_arn :: Lens.Lens' DisassociatePricingRules Prelude.Text+disassociatePricingRules_arn = Lens.lens (\DisassociatePricingRules' {arn} -> arn) (\s@DisassociatePricingRules' {} a -> s {arn = a} :: DisassociatePricingRules)++-- | A list containing the Amazon Resource Name (ARN) of the pricing rules+-- that will be disassociated.+disassociatePricingRules_pricingRuleArns :: Lens.Lens' DisassociatePricingRules (Prelude.NonEmpty Prelude.Text)+disassociatePricingRules_pricingRuleArns = Lens.lens (\DisassociatePricingRules' {pricingRuleArns} -> pricingRuleArns) (\s@DisassociatePricingRules' {} a -> s {pricingRuleArns = a} :: DisassociatePricingRules) Prelude.. Lens.coerced++instance Core.AWSRequest DisassociatePricingRules where+  type+    AWSResponse DisassociatePricingRules =+      DisassociatePricingRulesResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DisassociatePricingRulesResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DisassociatePricingRules where+  hashWithSalt _salt DisassociatePricingRules' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` pricingRuleArns++instance Prelude.NFData DisassociatePricingRules where+  rnf DisassociatePricingRules' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf pricingRuleArns++instance Data.ToHeaders DisassociatePricingRules where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DisassociatePricingRules where+  toJSON DisassociatePricingRules' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Arn" Data..= arn),+            Prelude.Just+              ("PricingRuleArns" Data..= pricingRuleArns)+          ]+      )++instance Data.ToPath DisassociatePricingRules where+  toPath = Prelude.const "/disassociate-pricing-rules"++instance Data.ToQuery DisassociatePricingRules where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisassociatePricingRulesResponse' smart constructor.+data DisassociatePricingRulesResponse = DisassociatePricingRulesResponse'+  { -- | The Amazon Resource Name (ARN) of the pricing plan that the pricing+    -- rules successfully disassociated from.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociatePricingRulesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'disassociatePricingRulesResponse_arn' - The Amazon Resource Name (ARN) of the pricing plan that the pricing+-- rules successfully disassociated from.+--+-- 'httpStatus', 'disassociatePricingRulesResponse_httpStatus' - The response's http status code.+newDisassociatePricingRulesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DisassociatePricingRulesResponse+newDisassociatePricingRulesResponse pHttpStatus_ =+  DisassociatePricingRulesResponse'+    { arn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the pricing plan that the pricing+-- rules successfully disassociated from.+disassociatePricingRulesResponse_arn :: Lens.Lens' DisassociatePricingRulesResponse (Prelude.Maybe Prelude.Text)+disassociatePricingRulesResponse_arn = Lens.lens (\DisassociatePricingRulesResponse' {arn} -> arn) (\s@DisassociatePricingRulesResponse' {} a -> s {arn = a} :: DisassociatePricingRulesResponse)++-- | The response's http status code.+disassociatePricingRulesResponse_httpStatus :: Lens.Lens' DisassociatePricingRulesResponse Prelude.Int+disassociatePricingRulesResponse_httpStatus = Lens.lens (\DisassociatePricingRulesResponse' {httpStatus} -> httpStatus) (\s@DisassociatePricingRulesResponse' {} a -> s {httpStatus = a} :: DisassociatePricingRulesResponse)++instance+  Prelude.NFData+    DisassociatePricingRulesResponse+  where+  rnf DisassociatePricingRulesResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/Lens.hs view
@@ -0,0 +1,553 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Lens+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Lens+  ( -- * Operations++    -- ** AssociateAccounts+    associateAccounts_arn,+    associateAccounts_accountIds,+    associateAccountsResponse_arn,+    associateAccountsResponse_httpStatus,++    -- ** AssociatePricingRules+    associatePricingRules_arn,+    associatePricingRules_pricingRuleArns,+    associatePricingRulesResponse_arn,+    associatePricingRulesResponse_httpStatus,++    -- ** BatchAssociateResourcesToCustomLineItem+    batchAssociateResourcesToCustomLineItem_billingPeriodRange,+    batchAssociateResourcesToCustomLineItem_targetArn,+    batchAssociateResourcesToCustomLineItem_resourceArns,+    batchAssociateResourcesToCustomLineItemResponse_failedAssociatedResources,+    batchAssociateResourcesToCustomLineItemResponse_successfullyAssociatedResources,+    batchAssociateResourcesToCustomLineItemResponse_httpStatus,++    -- ** BatchDisassociateResourcesFromCustomLineItem+    batchDisassociateResourcesFromCustomLineItem_billingPeriodRange,+    batchDisassociateResourcesFromCustomLineItem_targetArn,+    batchDisassociateResourcesFromCustomLineItem_resourceArns,+    batchDisassociateResourcesFromCustomLineItemResponse_failedDisassociatedResources,+    batchDisassociateResourcesFromCustomLineItemResponse_successfullyDisassociatedResources,+    batchDisassociateResourcesFromCustomLineItemResponse_httpStatus,++    -- ** CreateBillingGroup+    createBillingGroup_clientToken,+    createBillingGroup_description,+    createBillingGroup_primaryAccountId,+    createBillingGroup_tags,+    createBillingGroup_name,+    createBillingGroup_accountGrouping,+    createBillingGroup_computationPreference,+    createBillingGroupResponse_arn,+    createBillingGroupResponse_httpStatus,++    -- ** CreateCustomLineItem+    createCustomLineItem_billingPeriodRange,+    createCustomLineItem_clientToken,+    createCustomLineItem_tags,+    createCustomLineItem_name,+    createCustomLineItem_description,+    createCustomLineItem_billingGroupArn,+    createCustomLineItem_chargeDetails,+    createCustomLineItemResponse_arn,+    createCustomLineItemResponse_httpStatus,++    -- ** CreatePricingPlan+    createPricingPlan_clientToken,+    createPricingPlan_description,+    createPricingPlan_pricingRuleArns,+    createPricingPlan_tags,+    createPricingPlan_name,+    createPricingPlanResponse_arn,+    createPricingPlanResponse_httpStatus,++    -- ** CreatePricingRule+    createPricingRule_billingEntity,+    createPricingRule_clientToken,+    createPricingRule_description,+    createPricingRule_modifierPercentage,+    createPricingRule_service,+    createPricingRule_tags,+    createPricingRule_tiering,+    createPricingRule_name,+    createPricingRule_scope,+    createPricingRule_type,+    createPricingRuleResponse_arn,+    createPricingRuleResponse_httpStatus,++    -- ** DeleteBillingGroup+    deleteBillingGroup_arn,+    deleteBillingGroupResponse_arn,+    deleteBillingGroupResponse_httpStatus,++    -- ** DeleteCustomLineItem+    deleteCustomLineItem_billingPeriodRange,+    deleteCustomLineItem_arn,+    deleteCustomLineItemResponse_arn,+    deleteCustomLineItemResponse_httpStatus,++    -- ** DeletePricingPlan+    deletePricingPlan_arn,+    deletePricingPlanResponse_arn,+    deletePricingPlanResponse_httpStatus,++    -- ** DeletePricingRule+    deletePricingRule_arn,+    deletePricingRuleResponse_arn,+    deletePricingRuleResponse_httpStatus,++    -- ** DisassociateAccounts+    disassociateAccounts_arn,+    disassociateAccounts_accountIds,+    disassociateAccountsResponse_arn,+    disassociateAccountsResponse_httpStatus,++    -- ** DisassociatePricingRules+    disassociatePricingRules_arn,+    disassociatePricingRules_pricingRuleArns,+    disassociatePricingRulesResponse_arn,+    disassociatePricingRulesResponse_httpStatus,++    -- ** ListAccountAssociations+    listAccountAssociations_billingPeriod,+    listAccountAssociations_filters,+    listAccountAssociations_nextToken,+    listAccountAssociationsResponse_linkedAccounts,+    listAccountAssociationsResponse_nextToken,+    listAccountAssociationsResponse_httpStatus,++    -- ** ListBillingGroupCostReports+    listBillingGroupCostReports_billingPeriod,+    listBillingGroupCostReports_filters,+    listBillingGroupCostReports_maxResults,+    listBillingGroupCostReports_nextToken,+    listBillingGroupCostReportsResponse_billingGroupCostReports,+    listBillingGroupCostReportsResponse_nextToken,+    listBillingGroupCostReportsResponse_httpStatus,++    -- ** ListBillingGroups+    listBillingGroups_billingPeriod,+    listBillingGroups_filters,+    listBillingGroups_maxResults,+    listBillingGroups_nextToken,+    listBillingGroupsResponse_billingGroups,+    listBillingGroupsResponse_nextToken,+    listBillingGroupsResponse_httpStatus,++    -- ** ListCustomLineItemVersions+    listCustomLineItemVersions_filters,+    listCustomLineItemVersions_maxResults,+    listCustomLineItemVersions_nextToken,+    listCustomLineItemVersions_arn,+    listCustomLineItemVersionsResponse_customLineItemVersions,+    listCustomLineItemVersionsResponse_nextToken,+    listCustomLineItemVersionsResponse_httpStatus,++    -- ** ListCustomLineItems+    listCustomLineItems_billingPeriod,+    listCustomLineItems_filters,+    listCustomLineItems_maxResults,+    listCustomLineItems_nextToken,+    listCustomLineItemsResponse_customLineItems,+    listCustomLineItemsResponse_nextToken,+    listCustomLineItemsResponse_httpStatus,++    -- ** ListPricingPlans+    listPricingPlans_billingPeriod,+    listPricingPlans_filters,+    listPricingPlans_maxResults,+    listPricingPlans_nextToken,+    listPricingPlansResponse_billingPeriod,+    listPricingPlansResponse_nextToken,+    listPricingPlansResponse_pricingPlans,+    listPricingPlansResponse_httpStatus,++    -- ** ListPricingPlansAssociatedWithPricingRule+    listPricingPlansAssociatedWithPricingRule_billingPeriod,+    listPricingPlansAssociatedWithPricingRule_maxResults,+    listPricingPlansAssociatedWithPricingRule_nextToken,+    listPricingPlansAssociatedWithPricingRule_pricingRuleArn,+    listPricingPlansAssociatedWithPricingRuleResponse_billingPeriod,+    listPricingPlansAssociatedWithPricingRuleResponse_nextToken,+    listPricingPlansAssociatedWithPricingRuleResponse_pricingPlanArns,+    listPricingPlansAssociatedWithPricingRuleResponse_pricingRuleArn,+    listPricingPlansAssociatedWithPricingRuleResponse_httpStatus,++    -- ** ListPricingRules+    listPricingRules_billingPeriod,+    listPricingRules_filters,+    listPricingRules_maxResults,+    listPricingRules_nextToken,+    listPricingRulesResponse_billingPeriod,+    listPricingRulesResponse_nextToken,+    listPricingRulesResponse_pricingRules,+    listPricingRulesResponse_httpStatus,++    -- ** ListPricingRulesAssociatedToPricingPlan+    listPricingRulesAssociatedToPricingPlan_billingPeriod,+    listPricingRulesAssociatedToPricingPlan_maxResults,+    listPricingRulesAssociatedToPricingPlan_nextToken,+    listPricingRulesAssociatedToPricingPlan_pricingPlanArn,+    listPricingRulesAssociatedToPricingPlanResponse_billingPeriod,+    listPricingRulesAssociatedToPricingPlanResponse_nextToken,+    listPricingRulesAssociatedToPricingPlanResponse_pricingPlanArn,+    listPricingRulesAssociatedToPricingPlanResponse_pricingRuleArns,+    listPricingRulesAssociatedToPricingPlanResponse_httpStatus,++    -- ** ListResourcesAssociatedToCustomLineItem+    listResourcesAssociatedToCustomLineItem_billingPeriod,+    listResourcesAssociatedToCustomLineItem_filters,+    listResourcesAssociatedToCustomLineItem_maxResults,+    listResourcesAssociatedToCustomLineItem_nextToken,+    listResourcesAssociatedToCustomLineItem_arn,+    listResourcesAssociatedToCustomLineItemResponse_arn,+    listResourcesAssociatedToCustomLineItemResponse_associatedResources,+    listResourcesAssociatedToCustomLineItemResponse_nextToken,+    listResourcesAssociatedToCustomLineItemResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateBillingGroup+    updateBillingGroup_computationPreference,+    updateBillingGroup_description,+    updateBillingGroup_name,+    updateBillingGroup_status,+    updateBillingGroup_arn,+    updateBillingGroupResponse_arn,+    updateBillingGroupResponse_description,+    updateBillingGroupResponse_lastModifiedTime,+    updateBillingGroupResponse_name,+    updateBillingGroupResponse_pricingPlanArn,+    updateBillingGroupResponse_primaryAccountId,+    updateBillingGroupResponse_size,+    updateBillingGroupResponse_status,+    updateBillingGroupResponse_statusReason,+    updateBillingGroupResponse_httpStatus,++    -- ** UpdateCustomLineItem+    updateCustomLineItem_billingPeriodRange,+    updateCustomLineItem_chargeDetails,+    updateCustomLineItem_description,+    updateCustomLineItem_name,+    updateCustomLineItem_arn,+    updateCustomLineItemResponse_arn,+    updateCustomLineItemResponse_associationSize,+    updateCustomLineItemResponse_billingGroupArn,+    updateCustomLineItemResponse_chargeDetails,+    updateCustomLineItemResponse_description,+    updateCustomLineItemResponse_lastModifiedTime,+    updateCustomLineItemResponse_name,+    updateCustomLineItemResponse_httpStatus,++    -- ** UpdatePricingPlan+    updatePricingPlan_description,+    updatePricingPlan_name,+    updatePricingPlan_arn,+    updatePricingPlanResponse_arn,+    updatePricingPlanResponse_description,+    updatePricingPlanResponse_lastModifiedTime,+    updatePricingPlanResponse_name,+    updatePricingPlanResponse_size,+    updatePricingPlanResponse_httpStatus,++    -- ** UpdatePricingRule+    updatePricingRule_description,+    updatePricingRule_modifierPercentage,+    updatePricingRule_name,+    updatePricingRule_tiering,+    updatePricingRule_type,+    updatePricingRule_arn,+    updatePricingRuleResponse_arn,+    updatePricingRuleResponse_associatedPricingPlanCount,+    updatePricingRuleResponse_billingEntity,+    updatePricingRuleResponse_description,+    updatePricingRuleResponse_lastModifiedTime,+    updatePricingRuleResponse_modifierPercentage,+    updatePricingRuleResponse_name,+    updatePricingRuleResponse_scope,+    updatePricingRuleResponse_service,+    updatePricingRuleResponse_tiering,+    updatePricingRuleResponse_type,+    updatePricingRuleResponse_httpStatus,++    -- * Types++    -- ** AccountAssociationsListElement+    accountAssociationsListElement_accountEmail,+    accountAssociationsListElement_accountId,+    accountAssociationsListElement_accountName,+    accountAssociationsListElement_billingGroupArn,++    -- ** AccountGrouping+    accountGrouping_linkedAccountIds,++    -- ** AssociateResourceError+    associateResourceError_message,+    associateResourceError_reason,++    -- ** AssociateResourceResponseElement+    associateResourceResponseElement_arn,+    associateResourceResponseElement_error,++    -- ** BillingGroupCostReportElement+    billingGroupCostReportElement_aWSCost,+    billingGroupCostReportElement_arn,+    billingGroupCostReportElement_currency,+    billingGroupCostReportElement_margin,+    billingGroupCostReportElement_marginPercentage,+    billingGroupCostReportElement_proformaCost,++    -- ** BillingGroupListElement+    billingGroupListElement_arn,+    billingGroupListElement_computationPreference,+    billingGroupListElement_creationTime,+    billingGroupListElement_description,+    billingGroupListElement_lastModifiedTime,+    billingGroupListElement_name,+    billingGroupListElement_primaryAccountId,+    billingGroupListElement_size,+    billingGroupListElement_status,+    billingGroupListElement_statusReason,++    -- ** ComputationPreference+    computationPreference_pricingPlanArn,++    -- ** CreateFreeTierConfig+    createFreeTierConfig_activated,++    -- ** CreateTieringInput+    createTieringInput_freeTier,++    -- ** CustomLineItemBillingPeriodRange+    customLineItemBillingPeriodRange_exclusiveEndBillingPeriod,+    customLineItemBillingPeriodRange_inclusiveStartBillingPeriod,++    -- ** CustomLineItemChargeDetails+    customLineItemChargeDetails_flat,+    customLineItemChargeDetails_percentage,+    customLineItemChargeDetails_type,++    -- ** CustomLineItemFlatChargeDetails+    customLineItemFlatChargeDetails_chargeValue,++    -- ** CustomLineItemListElement+    customLineItemListElement_arn,+    customLineItemListElement_associationSize,+    customLineItemListElement_billingGroupArn,+    customLineItemListElement_chargeDetails,+    customLineItemListElement_creationTime,+    customLineItemListElement_currencyCode,+    customLineItemListElement_description,+    customLineItemListElement_lastModifiedTime,+    customLineItemListElement_name,+    customLineItemListElement_productCode,++    -- ** CustomLineItemPercentageChargeDetails+    customLineItemPercentageChargeDetails_associatedValues,+    customLineItemPercentageChargeDetails_percentageValue,++    -- ** CustomLineItemVersionListElement+    customLineItemVersionListElement_associationSize,+    customLineItemVersionListElement_billingGroupArn,+    customLineItemVersionListElement_chargeDetails,+    customLineItemVersionListElement_creationTime,+    customLineItemVersionListElement_currencyCode,+    customLineItemVersionListElement_description,+    customLineItemVersionListElement_endBillingPeriod,+    customLineItemVersionListElement_lastModifiedTime,+    customLineItemVersionListElement_name,+    customLineItemVersionListElement_productCode,+    customLineItemVersionListElement_startBillingPeriod,++    -- ** DisassociateResourceResponseElement+    disassociateResourceResponseElement_arn,+    disassociateResourceResponseElement_error,++    -- ** FreeTierConfig+    freeTierConfig_activated,++    -- ** ListAccountAssociationsFilter+    listAccountAssociationsFilter_accountId,+    listAccountAssociationsFilter_association,++    -- ** ListBillingGroupCostReportsFilter+    listBillingGroupCostReportsFilter_billingGroupArns,++    -- ** ListBillingGroupsFilter+    listBillingGroupsFilter_arns,+    listBillingGroupsFilter_pricingPlan,++    -- ** ListCustomLineItemChargeDetails+    listCustomLineItemChargeDetails_flat,+    listCustomLineItemChargeDetails_percentage,+    listCustomLineItemChargeDetails_type,++    -- ** ListCustomLineItemFlatChargeDetails+    listCustomLineItemFlatChargeDetails_chargeValue,++    -- ** ListCustomLineItemPercentageChargeDetails+    listCustomLineItemPercentageChargeDetails_percentageValue,++    -- ** ListCustomLineItemVersionsBillingPeriodRangeFilter+    listCustomLineItemVersionsBillingPeriodRangeFilter_endBillingPeriod,+    listCustomLineItemVersionsBillingPeriodRangeFilter_startBillingPeriod,++    -- ** ListCustomLineItemVersionsFilter+    listCustomLineItemVersionsFilter_billingPeriodRange,++    -- ** ListCustomLineItemsFilter+    listCustomLineItemsFilter_arns,+    listCustomLineItemsFilter_billingGroups,+    listCustomLineItemsFilter_names,++    -- ** ListPricingPlansFilter+    listPricingPlansFilter_arns,++    -- ** ListPricingRulesFilter+    listPricingRulesFilter_arns,++    -- ** ListResourcesAssociatedToCustomLineItemFilter+    listResourcesAssociatedToCustomLineItemFilter_relationship,++    -- ** ListResourcesAssociatedToCustomLineItemResponseElement+    listResourcesAssociatedToCustomLineItemResponseElement_arn,+    listResourcesAssociatedToCustomLineItemResponseElement_endBillingPeriod,+    listResourcesAssociatedToCustomLineItemResponseElement_relationship,++    -- ** PricingPlanListElement+    pricingPlanListElement_arn,+    pricingPlanListElement_creationTime,+    pricingPlanListElement_description,+    pricingPlanListElement_lastModifiedTime,+    pricingPlanListElement_name,+    pricingPlanListElement_size,++    -- ** PricingRuleListElement+    pricingRuleListElement_arn,+    pricingRuleListElement_associatedPricingPlanCount,+    pricingRuleListElement_billingEntity,+    pricingRuleListElement_creationTime,+    pricingRuleListElement_description,+    pricingRuleListElement_lastModifiedTime,+    pricingRuleListElement_modifierPercentage,+    pricingRuleListElement_name,+    pricingRuleListElement_scope,+    pricingRuleListElement_service,+    pricingRuleListElement_tiering,+    pricingRuleListElement_type,++    -- ** Tiering+    tiering_freeTier,++    -- ** UpdateCustomLineItemChargeDetails+    updateCustomLineItemChargeDetails_flat,+    updateCustomLineItemChargeDetails_percentage,++    -- ** UpdateCustomLineItemFlatChargeDetails+    updateCustomLineItemFlatChargeDetails_chargeValue,++    -- ** UpdateCustomLineItemPercentageChargeDetails+    updateCustomLineItemPercentageChargeDetails_percentageValue,++    -- ** UpdateFreeTierConfig+    updateFreeTierConfig_activated,++    -- ** UpdateTieringInput+    updateTieringInput_freeTier,+  )+where++import Amazonka.BillingConductor.AssociateAccounts+import Amazonka.BillingConductor.AssociatePricingRules+import Amazonka.BillingConductor.BatchAssociateResourcesToCustomLineItem+import Amazonka.BillingConductor.BatchDisassociateResourcesFromCustomLineItem+import Amazonka.BillingConductor.CreateBillingGroup+import Amazonka.BillingConductor.CreateCustomLineItem+import Amazonka.BillingConductor.CreatePricingPlan+import Amazonka.BillingConductor.CreatePricingRule+import Amazonka.BillingConductor.DeleteBillingGroup+import Amazonka.BillingConductor.DeleteCustomLineItem+import Amazonka.BillingConductor.DeletePricingPlan+import Amazonka.BillingConductor.DeletePricingRule+import Amazonka.BillingConductor.DisassociateAccounts+import Amazonka.BillingConductor.DisassociatePricingRules+import Amazonka.BillingConductor.ListAccountAssociations+import Amazonka.BillingConductor.ListBillingGroupCostReports+import Amazonka.BillingConductor.ListBillingGroups+import Amazonka.BillingConductor.ListCustomLineItemVersions+import Amazonka.BillingConductor.ListCustomLineItems+import Amazonka.BillingConductor.ListPricingPlans+import Amazonka.BillingConductor.ListPricingPlansAssociatedWithPricingRule+import Amazonka.BillingConductor.ListPricingRules+import Amazonka.BillingConductor.ListPricingRulesAssociatedToPricingPlan+import Amazonka.BillingConductor.ListResourcesAssociatedToCustomLineItem+import Amazonka.BillingConductor.ListTagsForResource+import Amazonka.BillingConductor.TagResource+import Amazonka.BillingConductor.Types.AccountAssociationsListElement+import Amazonka.BillingConductor.Types.AccountGrouping+import Amazonka.BillingConductor.Types.AssociateResourceError+import Amazonka.BillingConductor.Types.AssociateResourceResponseElement+import Amazonka.BillingConductor.Types.BillingGroupCostReportElement+import Amazonka.BillingConductor.Types.BillingGroupListElement+import Amazonka.BillingConductor.Types.ComputationPreference+import Amazonka.BillingConductor.Types.CreateFreeTierConfig+import Amazonka.BillingConductor.Types.CreateTieringInput+import Amazonka.BillingConductor.Types.CustomLineItemBillingPeriodRange+import Amazonka.BillingConductor.Types.CustomLineItemChargeDetails+import Amazonka.BillingConductor.Types.CustomLineItemFlatChargeDetails+import Amazonka.BillingConductor.Types.CustomLineItemListElement+import Amazonka.BillingConductor.Types.CustomLineItemPercentageChargeDetails+import Amazonka.BillingConductor.Types.CustomLineItemVersionListElement+import Amazonka.BillingConductor.Types.DisassociateResourceResponseElement+import Amazonka.BillingConductor.Types.FreeTierConfig+import Amazonka.BillingConductor.Types.ListAccountAssociationsFilter+import Amazonka.BillingConductor.Types.ListBillingGroupCostReportsFilter+import Amazonka.BillingConductor.Types.ListBillingGroupsFilter+import Amazonka.BillingConductor.Types.ListCustomLineItemChargeDetails+import Amazonka.BillingConductor.Types.ListCustomLineItemFlatChargeDetails+import Amazonka.BillingConductor.Types.ListCustomLineItemPercentageChargeDetails+import Amazonka.BillingConductor.Types.ListCustomLineItemVersionsBillingPeriodRangeFilter+import Amazonka.BillingConductor.Types.ListCustomLineItemVersionsFilter+import Amazonka.BillingConductor.Types.ListCustomLineItemsFilter+import Amazonka.BillingConductor.Types.ListPricingPlansFilter+import Amazonka.BillingConductor.Types.ListPricingRulesFilter+import Amazonka.BillingConductor.Types.ListResourcesAssociatedToCustomLineItemFilter+import Amazonka.BillingConductor.Types.ListResourcesAssociatedToCustomLineItemResponseElement+import Amazonka.BillingConductor.Types.PricingPlanListElement+import Amazonka.BillingConductor.Types.PricingRuleListElement+import Amazonka.BillingConductor.Types.Tiering+import Amazonka.BillingConductor.Types.UpdateCustomLineItemChargeDetails+import Amazonka.BillingConductor.Types.UpdateCustomLineItemFlatChargeDetails+import Amazonka.BillingConductor.Types.UpdateCustomLineItemPercentageChargeDetails+import Amazonka.BillingConductor.Types.UpdateFreeTierConfig+import Amazonka.BillingConductor.Types.UpdateTieringInput+import Amazonka.BillingConductor.UntagResource+import Amazonka.BillingConductor.UpdateBillingGroup+import Amazonka.BillingConductor.UpdateCustomLineItem+import Amazonka.BillingConductor.UpdatePricingPlan+import Amazonka.BillingConductor.UpdatePricingRule
+ gen/Amazonka/BillingConductor/ListAccountAssociations.hs view
@@ -0,0 +1,267 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.ListAccountAssociations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This is a paginated call to list linked accounts that are linked to the+-- payer account for the specified time period. If no information is+-- provided, the current billing period is used. The response will+-- optionally include the billing group that\'s associated with the linked+-- account.+--+-- This operation returns paginated results.+module Amazonka.BillingConductor.ListAccountAssociations+  ( -- * Creating a Request+    ListAccountAssociations (..),+    newListAccountAssociations,++    -- * Request Lenses+    listAccountAssociations_billingPeriod,+    listAccountAssociations_filters,+    listAccountAssociations_nextToken,++    -- * Destructuring the Response+    ListAccountAssociationsResponse (..),+    newListAccountAssociationsResponse,++    -- * Response Lenses+    listAccountAssociationsResponse_linkedAccounts,+    listAccountAssociationsResponse_nextToken,+    listAccountAssociationsResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAccountAssociations' smart constructor.+data ListAccountAssociations = ListAccountAssociations'+  { -- | The preferred billing period to get account associations.+    billingPeriod :: Prelude.Maybe Prelude.Text,+    -- | The filter on the account ID of the linked account, or any of the+    -- following:+    --+    -- @MONITORED@: linked accounts that are associated to billing groups.+    --+    -- @UNMONITORED@: linked accounts that aren\'t associated to billing+    -- groups.+    --+    -- @Billing Group Arn@: linked accounts that are associated to the provided+    -- billing group Arn.+    filters :: Prelude.Maybe ListAccountAssociationsFilter,+    -- | The pagination token that\'s used on subsequent calls to retrieve+    -- accounts.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAccountAssociations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriod', 'listAccountAssociations_billingPeriod' - The preferred billing period to get account associations.+--+-- 'filters', 'listAccountAssociations_filters' - The filter on the account ID of the linked account, or any of the+-- following:+--+-- @MONITORED@: linked accounts that are associated to billing groups.+--+-- @UNMONITORED@: linked accounts that aren\'t associated to billing+-- groups.+--+-- @Billing Group Arn@: linked accounts that are associated to the provided+-- billing group Arn.+--+-- 'nextToken', 'listAccountAssociations_nextToken' - The pagination token that\'s used on subsequent calls to retrieve+-- accounts.+newListAccountAssociations ::+  ListAccountAssociations+newListAccountAssociations =+  ListAccountAssociations'+    { billingPeriod =+        Prelude.Nothing,+      filters = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The preferred billing period to get account associations.+listAccountAssociations_billingPeriod :: Lens.Lens' ListAccountAssociations (Prelude.Maybe Prelude.Text)+listAccountAssociations_billingPeriod = Lens.lens (\ListAccountAssociations' {billingPeriod} -> billingPeriod) (\s@ListAccountAssociations' {} a -> s {billingPeriod = a} :: ListAccountAssociations)++-- | The filter on the account ID of the linked account, or any of the+-- following:+--+-- @MONITORED@: linked accounts that are associated to billing groups.+--+-- @UNMONITORED@: linked accounts that aren\'t associated to billing+-- groups.+--+-- @Billing Group Arn@: linked accounts that are associated to the provided+-- billing group Arn.+listAccountAssociations_filters :: Lens.Lens' ListAccountAssociations (Prelude.Maybe ListAccountAssociationsFilter)+listAccountAssociations_filters = Lens.lens (\ListAccountAssociations' {filters} -> filters) (\s@ListAccountAssociations' {} a -> s {filters = a} :: ListAccountAssociations)++-- | The pagination token that\'s used on subsequent calls to retrieve+-- accounts.+listAccountAssociations_nextToken :: Lens.Lens' ListAccountAssociations (Prelude.Maybe Prelude.Text)+listAccountAssociations_nextToken = Lens.lens (\ListAccountAssociations' {nextToken} -> nextToken) (\s@ListAccountAssociations' {} a -> s {nextToken = a} :: ListAccountAssociations)++instance Core.AWSPager ListAccountAssociations where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listAccountAssociationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listAccountAssociationsResponse_linkedAccounts+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listAccountAssociations_nextToken+          Lens..~ rs+          Lens.^? listAccountAssociationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListAccountAssociations where+  type+    AWSResponse ListAccountAssociations =+      ListAccountAssociationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAccountAssociationsResponse'+            Prelude.<$> (x Data..?> "LinkedAccounts" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListAccountAssociations where+  hashWithSalt _salt ListAccountAssociations' {..} =+    _salt+      `Prelude.hashWithSalt` billingPeriod+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListAccountAssociations where+  rnf ListAccountAssociations' {..} =+    Prelude.rnf billingPeriod+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListAccountAssociations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAccountAssociations where+  toJSON ListAccountAssociations' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingPeriod" Data..=) Prelude.<$> billingPeriod,+            ("Filters" Data..=) Prelude.<$> filters,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListAccountAssociations where+  toPath = Prelude.const "/list-account-associations"++instance Data.ToQuery ListAccountAssociations where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAccountAssociationsResponse' smart constructor.+data ListAccountAssociationsResponse = ListAccountAssociationsResponse'+  { -- | The list of linked accounts in the payer account.+    linkedAccounts :: Prelude.Maybe [AccountAssociationsListElement],+    -- | The pagination token that\'s used on subsequent calls to get accounts.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAccountAssociationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'linkedAccounts', 'listAccountAssociationsResponse_linkedAccounts' - The list of linked accounts in the payer account.+--+-- 'nextToken', 'listAccountAssociationsResponse_nextToken' - The pagination token that\'s used on subsequent calls to get accounts.+--+-- 'httpStatus', 'listAccountAssociationsResponse_httpStatus' - The response's http status code.+newListAccountAssociationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAccountAssociationsResponse+newListAccountAssociationsResponse pHttpStatus_ =+  ListAccountAssociationsResponse'+    { linkedAccounts =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The list of linked accounts in the payer account.+listAccountAssociationsResponse_linkedAccounts :: Lens.Lens' ListAccountAssociationsResponse (Prelude.Maybe [AccountAssociationsListElement])+listAccountAssociationsResponse_linkedAccounts = Lens.lens (\ListAccountAssociationsResponse' {linkedAccounts} -> linkedAccounts) (\s@ListAccountAssociationsResponse' {} a -> s {linkedAccounts = a} :: ListAccountAssociationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token that\'s used on subsequent calls to get accounts.+listAccountAssociationsResponse_nextToken :: Lens.Lens' ListAccountAssociationsResponse (Prelude.Maybe Prelude.Text)+listAccountAssociationsResponse_nextToken = Lens.lens (\ListAccountAssociationsResponse' {nextToken} -> nextToken) (\s@ListAccountAssociationsResponse' {} a -> s {nextToken = a} :: ListAccountAssociationsResponse)++-- | The response's http status code.+listAccountAssociationsResponse_httpStatus :: Lens.Lens' ListAccountAssociationsResponse Prelude.Int+listAccountAssociationsResponse_httpStatus = Lens.lens (\ListAccountAssociationsResponse' {httpStatus} -> httpStatus) (\s@ListAccountAssociationsResponse' {} a -> s {httpStatus = a} :: ListAccountAssociationsResponse)++instance+  Prelude.NFData+    ListAccountAssociationsResponse+  where+  rnf ListAccountAssociationsResponse' {..} =+    Prelude.rnf linkedAccounts+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/ListBillingGroupCostReports.hs view
@@ -0,0 +1,255 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.ListBillingGroupCostReports+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- A paginated call to retrieve a summary report of actual Amazon Web+-- Services charges and the calculated Amazon Web Services charges based on+-- the associated pricing plan of a billing group.+--+-- This operation returns paginated results.+module Amazonka.BillingConductor.ListBillingGroupCostReports+  ( -- * Creating a Request+    ListBillingGroupCostReports (..),+    newListBillingGroupCostReports,++    -- * Request Lenses+    listBillingGroupCostReports_billingPeriod,+    listBillingGroupCostReports_filters,+    listBillingGroupCostReports_maxResults,+    listBillingGroupCostReports_nextToken,++    -- * Destructuring the Response+    ListBillingGroupCostReportsResponse (..),+    newListBillingGroupCostReportsResponse,++    -- * Response Lenses+    listBillingGroupCostReportsResponse_billingGroupCostReports,+    listBillingGroupCostReportsResponse_nextToken,+    listBillingGroupCostReportsResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListBillingGroupCostReports' smart constructor.+data ListBillingGroupCostReports = ListBillingGroupCostReports'+  { -- | The preferred billing period for your report.+    billingPeriod :: Prelude.Maybe Prelude.Text,+    -- | A @ListBillingGroupCostReportsFilter@ to specify billing groups to+    -- retrieve reports from.+    filters :: Prelude.Maybe ListBillingGroupCostReportsFilter,+    -- | The maximum number of reports to retrieve.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token that\'s used on subsequent calls to get reports.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBillingGroupCostReports' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriod', 'listBillingGroupCostReports_billingPeriod' - The preferred billing period for your report.+--+-- 'filters', 'listBillingGroupCostReports_filters' - A @ListBillingGroupCostReportsFilter@ to specify billing groups to+-- retrieve reports from.+--+-- 'maxResults', 'listBillingGroupCostReports_maxResults' - The maximum number of reports to retrieve.+--+-- 'nextToken', 'listBillingGroupCostReports_nextToken' - The pagination token that\'s used on subsequent calls to get reports.+newListBillingGroupCostReports ::+  ListBillingGroupCostReports+newListBillingGroupCostReports =+  ListBillingGroupCostReports'+    { billingPeriod =+        Prelude.Nothing,+      filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The preferred billing period for your report.+listBillingGroupCostReports_billingPeriod :: Lens.Lens' ListBillingGroupCostReports (Prelude.Maybe Prelude.Text)+listBillingGroupCostReports_billingPeriod = Lens.lens (\ListBillingGroupCostReports' {billingPeriod} -> billingPeriod) (\s@ListBillingGroupCostReports' {} a -> s {billingPeriod = a} :: ListBillingGroupCostReports)++-- | A @ListBillingGroupCostReportsFilter@ to specify billing groups to+-- retrieve reports from.+listBillingGroupCostReports_filters :: Lens.Lens' ListBillingGroupCostReports (Prelude.Maybe ListBillingGroupCostReportsFilter)+listBillingGroupCostReports_filters = Lens.lens (\ListBillingGroupCostReports' {filters} -> filters) (\s@ListBillingGroupCostReports' {} a -> s {filters = a} :: ListBillingGroupCostReports)++-- | The maximum number of reports to retrieve.+listBillingGroupCostReports_maxResults :: Lens.Lens' ListBillingGroupCostReports (Prelude.Maybe Prelude.Natural)+listBillingGroupCostReports_maxResults = Lens.lens (\ListBillingGroupCostReports' {maxResults} -> maxResults) (\s@ListBillingGroupCostReports' {} a -> s {maxResults = a} :: ListBillingGroupCostReports)++-- | The pagination token that\'s used on subsequent calls to get reports.+listBillingGroupCostReports_nextToken :: Lens.Lens' ListBillingGroupCostReports (Prelude.Maybe Prelude.Text)+listBillingGroupCostReports_nextToken = Lens.lens (\ListBillingGroupCostReports' {nextToken} -> nextToken) (\s@ListBillingGroupCostReports' {} a -> s {nextToken = a} :: ListBillingGroupCostReports)++instance Core.AWSPager ListBillingGroupCostReports where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listBillingGroupCostReportsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listBillingGroupCostReportsResponse_billingGroupCostReports+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listBillingGroupCostReports_nextToken+          Lens..~ rs+          Lens.^? listBillingGroupCostReportsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListBillingGroupCostReports where+  type+    AWSResponse ListBillingGroupCostReports =+      ListBillingGroupCostReportsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListBillingGroupCostReportsResponse'+            Prelude.<$> ( x+                            Data..?> "BillingGroupCostReports"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListBillingGroupCostReports where+  hashWithSalt _salt ListBillingGroupCostReports' {..} =+    _salt+      `Prelude.hashWithSalt` billingPeriod+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListBillingGroupCostReports where+  rnf ListBillingGroupCostReports' {..} =+    Prelude.rnf billingPeriod+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListBillingGroupCostReports where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListBillingGroupCostReports where+  toJSON ListBillingGroupCostReports' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingPeriod" Data..=) Prelude.<$> billingPeriod,+            ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListBillingGroupCostReports where+  toPath =+    Prelude.const "/list-billing-group-cost-reports"++instance Data.ToQuery ListBillingGroupCostReports where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListBillingGroupCostReportsResponse' smart constructor.+data ListBillingGroupCostReportsResponse = ListBillingGroupCostReportsResponse'+  { -- | A list of @BillingGroupCostReportElement@ retrieved.+    billingGroupCostReports :: Prelude.Maybe [BillingGroupCostReportElement],+    -- | The pagination token that\'s used on subsequent calls to get reports.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBillingGroupCostReportsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingGroupCostReports', 'listBillingGroupCostReportsResponse_billingGroupCostReports' - A list of @BillingGroupCostReportElement@ retrieved.+--+-- 'nextToken', 'listBillingGroupCostReportsResponse_nextToken' - The pagination token that\'s used on subsequent calls to get reports.+--+-- 'httpStatus', 'listBillingGroupCostReportsResponse_httpStatus' - The response's http status code.+newListBillingGroupCostReportsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListBillingGroupCostReportsResponse+newListBillingGroupCostReportsResponse pHttpStatus_ =+  ListBillingGroupCostReportsResponse'+    { billingGroupCostReports =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of @BillingGroupCostReportElement@ retrieved.+listBillingGroupCostReportsResponse_billingGroupCostReports :: Lens.Lens' ListBillingGroupCostReportsResponse (Prelude.Maybe [BillingGroupCostReportElement])+listBillingGroupCostReportsResponse_billingGroupCostReports = Lens.lens (\ListBillingGroupCostReportsResponse' {billingGroupCostReports} -> billingGroupCostReports) (\s@ListBillingGroupCostReportsResponse' {} a -> s {billingGroupCostReports = a} :: ListBillingGroupCostReportsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token that\'s used on subsequent calls to get reports.+listBillingGroupCostReportsResponse_nextToken :: Lens.Lens' ListBillingGroupCostReportsResponse (Prelude.Maybe Prelude.Text)+listBillingGroupCostReportsResponse_nextToken = Lens.lens (\ListBillingGroupCostReportsResponse' {nextToken} -> nextToken) (\s@ListBillingGroupCostReportsResponse' {} a -> s {nextToken = a} :: ListBillingGroupCostReportsResponse)++-- | The response's http status code.+listBillingGroupCostReportsResponse_httpStatus :: Lens.Lens' ListBillingGroupCostReportsResponse Prelude.Int+listBillingGroupCostReportsResponse_httpStatus = Lens.lens (\ListBillingGroupCostReportsResponse' {httpStatus} -> httpStatus) (\s@ListBillingGroupCostReportsResponse' {} a -> s {httpStatus = a} :: ListBillingGroupCostReportsResponse)++instance+  Prelude.NFData+    ListBillingGroupCostReportsResponse+  where+  rnf ListBillingGroupCostReportsResponse' {..} =+    Prelude.rnf billingGroupCostReports+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/ListBillingGroups.hs view
@@ -0,0 +1,253 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.ListBillingGroups+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- A paginated call to retrieve a list of billing groups for the given+-- billing period. If you don\'t provide a billing group, the current+-- billing period is used.+--+-- This operation returns paginated results.+module Amazonka.BillingConductor.ListBillingGroups+  ( -- * Creating a Request+    ListBillingGroups (..),+    newListBillingGroups,++    -- * Request Lenses+    listBillingGroups_billingPeriod,+    listBillingGroups_filters,+    listBillingGroups_maxResults,+    listBillingGroups_nextToken,++    -- * Destructuring the Response+    ListBillingGroupsResponse (..),+    newListBillingGroupsResponse,++    -- * Response Lenses+    listBillingGroupsResponse_billingGroups,+    listBillingGroupsResponse_nextToken,+    listBillingGroupsResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListBillingGroups' smart constructor.+data ListBillingGroups = ListBillingGroups'+  { -- | The preferred billing period to get billing groups.+    billingPeriod :: Prelude.Maybe Prelude.Text,+    -- | A @ListBillingGroupsFilter@ that specifies the billing group and pricing+    -- plan to retrieve billing group information.+    filters :: Prelude.Maybe ListBillingGroupsFilter,+    -- | The maximum number of billing groups to retrieve.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token that\'s used on subsequent calls to get billing+    -- groups.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBillingGroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriod', 'listBillingGroups_billingPeriod' - The preferred billing period to get billing groups.+--+-- 'filters', 'listBillingGroups_filters' - A @ListBillingGroupsFilter@ that specifies the billing group and pricing+-- plan to retrieve billing group information.+--+-- 'maxResults', 'listBillingGroups_maxResults' - The maximum number of billing groups to retrieve.+--+-- 'nextToken', 'listBillingGroups_nextToken' - The pagination token that\'s used on subsequent calls to get billing+-- groups.+newListBillingGroups ::+  ListBillingGroups+newListBillingGroups =+  ListBillingGroups'+    { billingPeriod = Prelude.Nothing,+      filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The preferred billing period to get billing groups.+listBillingGroups_billingPeriod :: Lens.Lens' ListBillingGroups (Prelude.Maybe Prelude.Text)+listBillingGroups_billingPeriod = Lens.lens (\ListBillingGroups' {billingPeriod} -> billingPeriod) (\s@ListBillingGroups' {} a -> s {billingPeriod = a} :: ListBillingGroups)++-- | A @ListBillingGroupsFilter@ that specifies the billing group and pricing+-- plan to retrieve billing group information.+listBillingGroups_filters :: Lens.Lens' ListBillingGroups (Prelude.Maybe ListBillingGroupsFilter)+listBillingGroups_filters = Lens.lens (\ListBillingGroups' {filters} -> filters) (\s@ListBillingGroups' {} a -> s {filters = a} :: ListBillingGroups)++-- | The maximum number of billing groups to retrieve.+listBillingGroups_maxResults :: Lens.Lens' ListBillingGroups (Prelude.Maybe Prelude.Natural)+listBillingGroups_maxResults = Lens.lens (\ListBillingGroups' {maxResults} -> maxResults) (\s@ListBillingGroups' {} a -> s {maxResults = a} :: ListBillingGroups)++-- | The pagination token that\'s used on subsequent calls to get billing+-- groups.+listBillingGroups_nextToken :: Lens.Lens' ListBillingGroups (Prelude.Maybe Prelude.Text)+listBillingGroups_nextToken = Lens.lens (\ListBillingGroups' {nextToken} -> nextToken) (\s@ListBillingGroups' {} a -> s {nextToken = a} :: ListBillingGroups)++instance Core.AWSPager ListBillingGroups where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listBillingGroupsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listBillingGroupsResponse_billingGroups+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listBillingGroups_nextToken+          Lens..~ rs+          Lens.^? listBillingGroupsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListBillingGroups where+  type+    AWSResponse ListBillingGroups =+      ListBillingGroupsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListBillingGroupsResponse'+            Prelude.<$> (x Data..?> "BillingGroups" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListBillingGroups where+  hashWithSalt _salt ListBillingGroups' {..} =+    _salt+      `Prelude.hashWithSalt` billingPeriod+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListBillingGroups where+  rnf ListBillingGroups' {..} =+    Prelude.rnf billingPeriod+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListBillingGroups where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListBillingGroups where+  toJSON ListBillingGroups' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingPeriod" Data..=) Prelude.<$> billingPeriod,+            ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListBillingGroups where+  toPath = Prelude.const "/list-billing-groups"++instance Data.ToQuery ListBillingGroups where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListBillingGroupsResponse' smart constructor.+data ListBillingGroupsResponse = ListBillingGroupsResponse'+  { -- | A list of @BillingGroupListElement@ retrieved.+    billingGroups :: Prelude.Maybe [BillingGroupListElement],+    -- | The pagination token that\'s used on subsequent calls to get billing+    -- groups.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBillingGroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingGroups', 'listBillingGroupsResponse_billingGroups' - A list of @BillingGroupListElement@ retrieved.+--+-- 'nextToken', 'listBillingGroupsResponse_nextToken' - The pagination token that\'s used on subsequent calls to get billing+-- groups.+--+-- 'httpStatus', 'listBillingGroupsResponse_httpStatus' - The response's http status code.+newListBillingGroupsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListBillingGroupsResponse+newListBillingGroupsResponse pHttpStatus_ =+  ListBillingGroupsResponse'+    { billingGroups =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of @BillingGroupListElement@ retrieved.+listBillingGroupsResponse_billingGroups :: Lens.Lens' ListBillingGroupsResponse (Prelude.Maybe [BillingGroupListElement])+listBillingGroupsResponse_billingGroups = Lens.lens (\ListBillingGroupsResponse' {billingGroups} -> billingGroups) (\s@ListBillingGroupsResponse' {} a -> s {billingGroups = a} :: ListBillingGroupsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token that\'s used on subsequent calls to get billing+-- groups.+listBillingGroupsResponse_nextToken :: Lens.Lens' ListBillingGroupsResponse (Prelude.Maybe Prelude.Text)+listBillingGroupsResponse_nextToken = Lens.lens (\ListBillingGroupsResponse' {nextToken} -> nextToken) (\s@ListBillingGroupsResponse' {} a -> s {nextToken = a} :: ListBillingGroupsResponse)++-- | The response's http status code.+listBillingGroupsResponse_httpStatus :: Lens.Lens' ListBillingGroupsResponse Prelude.Int+listBillingGroupsResponse_httpStatus = Lens.lens (\ListBillingGroupsResponse' {httpStatus} -> httpStatus) (\s@ListBillingGroupsResponse' {} a -> s {httpStatus = a} :: ListBillingGroupsResponse)++instance Prelude.NFData ListBillingGroupsResponse where+  rnf ListBillingGroupsResponse' {..} =+    Prelude.rnf billingGroups+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/ListCustomLineItemVersions.hs view
@@ -0,0 +1,261 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.ListCustomLineItemVersions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- A paginated call to get a list of all custom line item versions.+--+-- This operation returns paginated results.+module Amazonka.BillingConductor.ListCustomLineItemVersions+  ( -- * Creating a Request+    ListCustomLineItemVersions (..),+    newListCustomLineItemVersions,++    -- * Request Lenses+    listCustomLineItemVersions_filters,+    listCustomLineItemVersions_maxResults,+    listCustomLineItemVersions_nextToken,+    listCustomLineItemVersions_arn,++    -- * Destructuring the Response+    ListCustomLineItemVersionsResponse (..),+    newListCustomLineItemVersionsResponse,++    -- * Response Lenses+    listCustomLineItemVersionsResponse_customLineItemVersions,+    listCustomLineItemVersionsResponse_nextToken,+    listCustomLineItemVersionsResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCustomLineItemVersions' smart constructor.+data ListCustomLineItemVersions = ListCustomLineItemVersions'+  { -- | A @ListCustomLineItemVersionsFilter@ that specifies the billing period+    -- range in which the custom line item versions are applied.+    filters :: Prelude.Maybe ListCustomLineItemVersionsFilter,+    -- | The maximum number of custom line item versions to retrieve.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token that\'s used on subsequent calls to retrieve custom+    -- line item versions.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) for the custom line item.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomLineItemVersions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listCustomLineItemVersions_filters' - A @ListCustomLineItemVersionsFilter@ that specifies the billing period+-- range in which the custom line item versions are applied.+--+-- 'maxResults', 'listCustomLineItemVersions_maxResults' - The maximum number of custom line item versions to retrieve.+--+-- 'nextToken', 'listCustomLineItemVersions_nextToken' - The pagination token that\'s used on subsequent calls to retrieve custom+-- line item versions.+--+-- 'arn', 'listCustomLineItemVersions_arn' - The Amazon Resource Name (ARN) for the custom line item.+newListCustomLineItemVersions ::+  -- | 'arn'+  Prelude.Text ->+  ListCustomLineItemVersions+newListCustomLineItemVersions pArn_ =+  ListCustomLineItemVersions'+    { filters =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      arn = pArn_+    }++-- | A @ListCustomLineItemVersionsFilter@ that specifies the billing period+-- range in which the custom line item versions are applied.+listCustomLineItemVersions_filters :: Lens.Lens' ListCustomLineItemVersions (Prelude.Maybe ListCustomLineItemVersionsFilter)+listCustomLineItemVersions_filters = Lens.lens (\ListCustomLineItemVersions' {filters} -> filters) (\s@ListCustomLineItemVersions' {} a -> s {filters = a} :: ListCustomLineItemVersions)++-- | The maximum number of custom line item versions to retrieve.+listCustomLineItemVersions_maxResults :: Lens.Lens' ListCustomLineItemVersions (Prelude.Maybe Prelude.Natural)+listCustomLineItemVersions_maxResults = Lens.lens (\ListCustomLineItemVersions' {maxResults} -> maxResults) (\s@ListCustomLineItemVersions' {} a -> s {maxResults = a} :: ListCustomLineItemVersions)++-- | The pagination token that\'s used on subsequent calls to retrieve custom+-- line item versions.+listCustomLineItemVersions_nextToken :: Lens.Lens' ListCustomLineItemVersions (Prelude.Maybe Prelude.Text)+listCustomLineItemVersions_nextToken = Lens.lens (\ListCustomLineItemVersions' {nextToken} -> nextToken) (\s@ListCustomLineItemVersions' {} a -> s {nextToken = a} :: ListCustomLineItemVersions)++-- | The Amazon Resource Name (ARN) for the custom line item.+listCustomLineItemVersions_arn :: Lens.Lens' ListCustomLineItemVersions Prelude.Text+listCustomLineItemVersions_arn = Lens.lens (\ListCustomLineItemVersions' {arn} -> arn) (\s@ListCustomLineItemVersions' {} a -> s {arn = a} :: ListCustomLineItemVersions)++instance Core.AWSPager ListCustomLineItemVersions where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listCustomLineItemVersionsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listCustomLineItemVersionsResponse_customLineItemVersions+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listCustomLineItemVersions_nextToken+          Lens..~ rs+          Lens.^? listCustomLineItemVersionsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListCustomLineItemVersions where+  type+    AWSResponse ListCustomLineItemVersions =+      ListCustomLineItemVersionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListCustomLineItemVersionsResponse'+            Prelude.<$> ( x+                            Data..?> "CustomLineItemVersions"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListCustomLineItemVersions where+  hashWithSalt _salt ListCustomLineItemVersions' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` arn++instance Prelude.NFData ListCustomLineItemVersions where+  rnf ListCustomLineItemVersions' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf arn++instance Data.ToHeaders ListCustomLineItemVersions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListCustomLineItemVersions where+  toJSON ListCustomLineItemVersions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("Arn" Data..= arn)+          ]+      )++instance Data.ToPath ListCustomLineItemVersions where+  toPath =+    Prelude.const "/list-custom-line-item-versions"++instance Data.ToQuery ListCustomLineItemVersions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListCustomLineItemVersionsResponse' smart constructor.+data ListCustomLineItemVersionsResponse = ListCustomLineItemVersionsResponse'+  { -- | A list of @CustomLineItemVersionListElements@ that are received.+    customLineItemVersions :: Prelude.Maybe [CustomLineItemVersionListElement],+    -- | The pagination token that\'s used on subsequent calls to retrieve custom+    -- line item versions.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomLineItemVersionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'customLineItemVersions', 'listCustomLineItemVersionsResponse_customLineItemVersions' - A list of @CustomLineItemVersionListElements@ that are received.+--+-- 'nextToken', 'listCustomLineItemVersionsResponse_nextToken' - The pagination token that\'s used on subsequent calls to retrieve custom+-- line item versions.+--+-- 'httpStatus', 'listCustomLineItemVersionsResponse_httpStatus' - The response's http status code.+newListCustomLineItemVersionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListCustomLineItemVersionsResponse+newListCustomLineItemVersionsResponse pHttpStatus_ =+  ListCustomLineItemVersionsResponse'+    { customLineItemVersions =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of @CustomLineItemVersionListElements@ that are received.+listCustomLineItemVersionsResponse_customLineItemVersions :: Lens.Lens' ListCustomLineItemVersionsResponse (Prelude.Maybe [CustomLineItemVersionListElement])+listCustomLineItemVersionsResponse_customLineItemVersions = Lens.lens (\ListCustomLineItemVersionsResponse' {customLineItemVersions} -> customLineItemVersions) (\s@ListCustomLineItemVersionsResponse' {} a -> s {customLineItemVersions = a} :: ListCustomLineItemVersionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token that\'s used on subsequent calls to retrieve custom+-- line item versions.+listCustomLineItemVersionsResponse_nextToken :: Lens.Lens' ListCustomLineItemVersionsResponse (Prelude.Maybe Prelude.Text)+listCustomLineItemVersionsResponse_nextToken = Lens.lens (\ListCustomLineItemVersionsResponse' {nextToken} -> nextToken) (\s@ListCustomLineItemVersionsResponse' {} a -> s {nextToken = a} :: ListCustomLineItemVersionsResponse)++-- | The response's http status code.+listCustomLineItemVersionsResponse_httpStatus :: Lens.Lens' ListCustomLineItemVersionsResponse Prelude.Int+listCustomLineItemVersionsResponse_httpStatus = Lens.lens (\ListCustomLineItemVersionsResponse' {httpStatus} -> httpStatus) (\s@ListCustomLineItemVersionsResponse' {} a -> s {httpStatus = a} :: ListCustomLineItemVersionsResponse)++instance+  Prelude.NFData+    ListCustomLineItemVersionsResponse+  where+  rnf ListCustomLineItemVersionsResponse' {..} =+    Prelude.rnf customLineItemVersions+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/ListCustomLineItems.hs view
@@ -0,0 +1,260 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.ListCustomLineItems+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- A paginated call to get a list of all custom line items (FFLIs) for the+-- given billing period. If you don\'t provide a billing period, the+-- current billing period is used.+--+-- This operation returns paginated results.+module Amazonka.BillingConductor.ListCustomLineItems+  ( -- * Creating a Request+    ListCustomLineItems (..),+    newListCustomLineItems,++    -- * Request Lenses+    listCustomLineItems_billingPeriod,+    listCustomLineItems_filters,+    listCustomLineItems_maxResults,+    listCustomLineItems_nextToken,++    -- * Destructuring the Response+    ListCustomLineItemsResponse (..),+    newListCustomLineItemsResponse,++    -- * Response Lenses+    listCustomLineItemsResponse_customLineItems,+    listCustomLineItemsResponse_nextToken,+    listCustomLineItemsResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCustomLineItems' smart constructor.+data ListCustomLineItems = ListCustomLineItems'+  { -- | The preferred billing period to get custom line items (FFLIs).+    billingPeriod :: Prelude.Maybe Prelude.Text,+    -- | A @ListCustomLineItemsFilter@ that specifies the custom line item names+    -- and\/or billing group Amazon Resource Names (ARNs) to retrieve FFLI+    -- information.+    filters :: Prelude.Maybe ListCustomLineItemsFilter,+    -- | The maximum number of billing groups to retrieve.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token that\'s used on subsequent calls to get custom line+    -- items (FFLIs).+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomLineItems' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriod', 'listCustomLineItems_billingPeriod' - The preferred billing period to get custom line items (FFLIs).+--+-- 'filters', 'listCustomLineItems_filters' - A @ListCustomLineItemsFilter@ that specifies the custom line item names+-- and\/or billing group Amazon Resource Names (ARNs) to retrieve FFLI+-- information.+--+-- 'maxResults', 'listCustomLineItems_maxResults' - The maximum number of billing groups to retrieve.+--+-- 'nextToken', 'listCustomLineItems_nextToken' - The pagination token that\'s used on subsequent calls to get custom line+-- items (FFLIs).+newListCustomLineItems ::+  ListCustomLineItems+newListCustomLineItems =+  ListCustomLineItems'+    { billingPeriod =+        Prelude.Nothing,+      filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The preferred billing period to get custom line items (FFLIs).+listCustomLineItems_billingPeriod :: Lens.Lens' ListCustomLineItems (Prelude.Maybe Prelude.Text)+listCustomLineItems_billingPeriod = Lens.lens (\ListCustomLineItems' {billingPeriod} -> billingPeriod) (\s@ListCustomLineItems' {} a -> s {billingPeriod = a} :: ListCustomLineItems)++-- | A @ListCustomLineItemsFilter@ that specifies the custom line item names+-- and\/or billing group Amazon Resource Names (ARNs) to retrieve FFLI+-- information.+listCustomLineItems_filters :: Lens.Lens' ListCustomLineItems (Prelude.Maybe ListCustomLineItemsFilter)+listCustomLineItems_filters = Lens.lens (\ListCustomLineItems' {filters} -> filters) (\s@ListCustomLineItems' {} a -> s {filters = a} :: ListCustomLineItems)++-- | The maximum number of billing groups to retrieve.+listCustomLineItems_maxResults :: Lens.Lens' ListCustomLineItems (Prelude.Maybe Prelude.Natural)+listCustomLineItems_maxResults = Lens.lens (\ListCustomLineItems' {maxResults} -> maxResults) (\s@ListCustomLineItems' {} a -> s {maxResults = a} :: ListCustomLineItems)++-- | The pagination token that\'s used on subsequent calls to get custom line+-- items (FFLIs).+listCustomLineItems_nextToken :: Lens.Lens' ListCustomLineItems (Prelude.Maybe Prelude.Text)+listCustomLineItems_nextToken = Lens.lens (\ListCustomLineItems' {nextToken} -> nextToken) (\s@ListCustomLineItems' {} a -> s {nextToken = a} :: ListCustomLineItems)++instance Core.AWSPager ListCustomLineItems where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listCustomLineItemsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listCustomLineItemsResponse_customLineItems+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listCustomLineItems_nextToken+          Lens..~ rs+          Lens.^? listCustomLineItemsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListCustomLineItems where+  type+    AWSResponse ListCustomLineItems =+      ListCustomLineItemsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListCustomLineItemsResponse'+            Prelude.<$> ( x+                            Data..?> "CustomLineItems"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListCustomLineItems where+  hashWithSalt _salt ListCustomLineItems' {..} =+    _salt+      `Prelude.hashWithSalt` billingPeriod+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListCustomLineItems where+  rnf ListCustomLineItems' {..} =+    Prelude.rnf billingPeriod+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListCustomLineItems where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListCustomLineItems where+  toJSON ListCustomLineItems' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingPeriod" Data..=) Prelude.<$> billingPeriod,+            ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListCustomLineItems where+  toPath = Prelude.const "/list-custom-line-items"++instance Data.ToQuery ListCustomLineItems where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListCustomLineItemsResponse' smart constructor.+data ListCustomLineItemsResponse = ListCustomLineItemsResponse'+  { -- | A list of @FreeFormLineItemListElements@ received.+    customLineItems :: Prelude.Maybe [CustomLineItemListElement],+    -- | The pagination token that\'s used on subsequent calls to get custom line+    -- items (FFLIs).+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomLineItemsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'customLineItems', 'listCustomLineItemsResponse_customLineItems' - A list of @FreeFormLineItemListElements@ received.+--+-- 'nextToken', 'listCustomLineItemsResponse_nextToken' - The pagination token that\'s used on subsequent calls to get custom line+-- items (FFLIs).+--+-- 'httpStatus', 'listCustomLineItemsResponse_httpStatus' - The response's http status code.+newListCustomLineItemsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListCustomLineItemsResponse+newListCustomLineItemsResponse pHttpStatus_ =+  ListCustomLineItemsResponse'+    { customLineItems =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of @FreeFormLineItemListElements@ received.+listCustomLineItemsResponse_customLineItems :: Lens.Lens' ListCustomLineItemsResponse (Prelude.Maybe [CustomLineItemListElement])+listCustomLineItemsResponse_customLineItems = Lens.lens (\ListCustomLineItemsResponse' {customLineItems} -> customLineItems) (\s@ListCustomLineItemsResponse' {} a -> s {customLineItems = a} :: ListCustomLineItemsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token that\'s used on subsequent calls to get custom line+-- items (FFLIs).+listCustomLineItemsResponse_nextToken :: Lens.Lens' ListCustomLineItemsResponse (Prelude.Maybe Prelude.Text)+listCustomLineItemsResponse_nextToken = Lens.lens (\ListCustomLineItemsResponse' {nextToken} -> nextToken) (\s@ListCustomLineItemsResponse' {} a -> s {nextToken = a} :: ListCustomLineItemsResponse)++-- | The response's http status code.+listCustomLineItemsResponse_httpStatus :: Lens.Lens' ListCustomLineItemsResponse Prelude.Int+listCustomLineItemsResponse_httpStatus = Lens.lens (\ListCustomLineItemsResponse' {httpStatus} -> httpStatus) (\s@ListCustomLineItemsResponse' {} a -> s {httpStatus = a} :: ListCustomLineItemsResponse)++instance Prelude.NFData ListCustomLineItemsResponse where+  rnf ListCustomLineItemsResponse' {..} =+    Prelude.rnf customLineItems+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/ListPricingPlans.hs view
@@ -0,0 +1,264 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.ListPricingPlans+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- A paginated call to get pricing plans for the given billing period. If+-- you don\'t provide a billing period, the current billing period is used.+--+-- This operation returns paginated results.+module Amazonka.BillingConductor.ListPricingPlans+  ( -- * Creating a Request+    ListPricingPlans (..),+    newListPricingPlans,++    -- * Request Lenses+    listPricingPlans_billingPeriod,+    listPricingPlans_filters,+    listPricingPlans_maxResults,+    listPricingPlans_nextToken,++    -- * Destructuring the Response+    ListPricingPlansResponse (..),+    newListPricingPlansResponse,++    -- * Response Lenses+    listPricingPlansResponse_billingPeriod,+    listPricingPlansResponse_nextToken,+    listPricingPlansResponse_pricingPlans,+    listPricingPlansResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListPricingPlans' smart constructor.+data ListPricingPlans = ListPricingPlans'+  { -- | The preferred billing period to get pricing plan.+    billingPeriod :: Prelude.Maybe Prelude.Text,+    -- | A @ListPricingPlansFilter@ that specifies the Amazon Resource Name+    -- (ARNs) of pricing plans to retrieve pricing plans information.+    filters :: Prelude.Maybe ListPricingPlansFilter,+    -- | The maximum number of pricing plans to retrieve.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token that\'s used on subsequent call to get pricing+    -- plans.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPricingPlans' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriod', 'listPricingPlans_billingPeriod' - The preferred billing period to get pricing plan.+--+-- 'filters', 'listPricingPlans_filters' - A @ListPricingPlansFilter@ that specifies the Amazon Resource Name+-- (ARNs) of pricing plans to retrieve pricing plans information.+--+-- 'maxResults', 'listPricingPlans_maxResults' - The maximum number of pricing plans to retrieve.+--+-- 'nextToken', 'listPricingPlans_nextToken' - The pagination token that\'s used on subsequent call to get pricing+-- plans.+newListPricingPlans ::+  ListPricingPlans+newListPricingPlans =+  ListPricingPlans'+    { billingPeriod = Prelude.Nothing,+      filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The preferred billing period to get pricing plan.+listPricingPlans_billingPeriod :: Lens.Lens' ListPricingPlans (Prelude.Maybe Prelude.Text)+listPricingPlans_billingPeriod = Lens.lens (\ListPricingPlans' {billingPeriod} -> billingPeriod) (\s@ListPricingPlans' {} a -> s {billingPeriod = a} :: ListPricingPlans)++-- | A @ListPricingPlansFilter@ that specifies the Amazon Resource Name+-- (ARNs) of pricing plans to retrieve pricing plans information.+listPricingPlans_filters :: Lens.Lens' ListPricingPlans (Prelude.Maybe ListPricingPlansFilter)+listPricingPlans_filters = Lens.lens (\ListPricingPlans' {filters} -> filters) (\s@ListPricingPlans' {} a -> s {filters = a} :: ListPricingPlans)++-- | The maximum number of pricing plans to retrieve.+listPricingPlans_maxResults :: Lens.Lens' ListPricingPlans (Prelude.Maybe Prelude.Natural)+listPricingPlans_maxResults = Lens.lens (\ListPricingPlans' {maxResults} -> maxResults) (\s@ListPricingPlans' {} a -> s {maxResults = a} :: ListPricingPlans)++-- | The pagination token that\'s used on subsequent call to get pricing+-- plans.+listPricingPlans_nextToken :: Lens.Lens' ListPricingPlans (Prelude.Maybe Prelude.Text)+listPricingPlans_nextToken = Lens.lens (\ListPricingPlans' {nextToken} -> nextToken) (\s@ListPricingPlans' {} a -> s {nextToken = a} :: ListPricingPlans)++instance Core.AWSPager ListPricingPlans where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listPricingPlansResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listPricingPlansResponse_pricingPlans+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listPricingPlans_nextToken+          Lens..~ rs+          Lens.^? listPricingPlansResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListPricingPlans where+  type+    AWSResponse ListPricingPlans =+      ListPricingPlansResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListPricingPlansResponse'+            Prelude.<$> (x Data..?> "BillingPeriod")+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "PricingPlans" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListPricingPlans where+  hashWithSalt _salt ListPricingPlans' {..} =+    _salt+      `Prelude.hashWithSalt` billingPeriod+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListPricingPlans where+  rnf ListPricingPlans' {..} =+    Prelude.rnf billingPeriod+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListPricingPlans where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListPricingPlans where+  toJSON ListPricingPlans' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingPeriod" Data..=) Prelude.<$> billingPeriod,+            ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListPricingPlans where+  toPath = Prelude.const "/list-pricing-plans"++instance Data.ToQuery ListPricingPlans where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListPricingPlansResponse' smart constructor.+data ListPricingPlansResponse = ListPricingPlansResponse'+  { -- | The billing period for which the described pricing plans are applicable.+    billingPeriod :: Prelude.Maybe Prelude.Text,+    -- | The pagination token that\'s used on subsequent calls to get pricing+    -- plans.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of @PricingPlanListElement@ retrieved.+    pricingPlans :: Prelude.Maybe [PricingPlanListElement],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPricingPlansResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriod', 'listPricingPlansResponse_billingPeriod' - The billing period for which the described pricing plans are applicable.+--+-- 'nextToken', 'listPricingPlansResponse_nextToken' - The pagination token that\'s used on subsequent calls to get pricing+-- plans.+--+-- 'pricingPlans', 'listPricingPlansResponse_pricingPlans' - A list of @PricingPlanListElement@ retrieved.+--+-- 'httpStatus', 'listPricingPlansResponse_httpStatus' - The response's http status code.+newListPricingPlansResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListPricingPlansResponse+newListPricingPlansResponse pHttpStatus_ =+  ListPricingPlansResponse'+    { billingPeriod =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      pricingPlans = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The billing period for which the described pricing plans are applicable.+listPricingPlansResponse_billingPeriod :: Lens.Lens' ListPricingPlansResponse (Prelude.Maybe Prelude.Text)+listPricingPlansResponse_billingPeriod = Lens.lens (\ListPricingPlansResponse' {billingPeriod} -> billingPeriod) (\s@ListPricingPlansResponse' {} a -> s {billingPeriod = a} :: ListPricingPlansResponse)++-- | The pagination token that\'s used on subsequent calls to get pricing+-- plans.+listPricingPlansResponse_nextToken :: Lens.Lens' ListPricingPlansResponse (Prelude.Maybe Prelude.Text)+listPricingPlansResponse_nextToken = Lens.lens (\ListPricingPlansResponse' {nextToken} -> nextToken) (\s@ListPricingPlansResponse' {} a -> s {nextToken = a} :: ListPricingPlansResponse)++-- | A list of @PricingPlanListElement@ retrieved.+listPricingPlansResponse_pricingPlans :: Lens.Lens' ListPricingPlansResponse (Prelude.Maybe [PricingPlanListElement])+listPricingPlansResponse_pricingPlans = Lens.lens (\ListPricingPlansResponse' {pricingPlans} -> pricingPlans) (\s@ListPricingPlansResponse' {} a -> s {pricingPlans = a} :: ListPricingPlansResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listPricingPlansResponse_httpStatus :: Lens.Lens' ListPricingPlansResponse Prelude.Int+listPricingPlansResponse_httpStatus = Lens.lens (\ListPricingPlansResponse' {httpStatus} -> httpStatus) (\s@ListPricingPlansResponse' {} a -> s {httpStatus = a} :: ListPricingPlansResponse)++instance Prelude.NFData ListPricingPlansResponse where+  rnf ListPricingPlansResponse' {..} =+    Prelude.rnf billingPeriod+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf pricingPlans+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/ListPricingPlansAssociatedWithPricingRule.hs view
@@ -0,0 +1,320 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.ListPricingPlansAssociatedWithPricingRule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- A list of the pricing plans that are associated with a pricing rule.+--+-- This operation returns paginated results.+module Amazonka.BillingConductor.ListPricingPlansAssociatedWithPricingRule+  ( -- * Creating a Request+    ListPricingPlansAssociatedWithPricingRule (..),+    newListPricingPlansAssociatedWithPricingRule,++    -- * Request Lenses+    listPricingPlansAssociatedWithPricingRule_billingPeriod,+    listPricingPlansAssociatedWithPricingRule_maxResults,+    listPricingPlansAssociatedWithPricingRule_nextToken,+    listPricingPlansAssociatedWithPricingRule_pricingRuleArn,++    -- * Destructuring the Response+    ListPricingPlansAssociatedWithPricingRuleResponse (..),+    newListPricingPlansAssociatedWithPricingRuleResponse,++    -- * Response Lenses+    listPricingPlansAssociatedWithPricingRuleResponse_billingPeriod,+    listPricingPlansAssociatedWithPricingRuleResponse_nextToken,+    listPricingPlansAssociatedWithPricingRuleResponse_pricingPlanArns,+    listPricingPlansAssociatedWithPricingRuleResponse_pricingRuleArn,+    listPricingPlansAssociatedWithPricingRuleResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListPricingPlansAssociatedWithPricingRule' smart constructor.+data ListPricingPlansAssociatedWithPricingRule = ListPricingPlansAssociatedWithPricingRule'+  { -- | The pricing plan billing period for which associations will be listed.+    billingPeriod :: Prelude.Maybe Prelude.Text,+    -- | The optional maximum number of pricing rule associations to retrieve.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The optional pagination token returned by a previous call.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The pricing rule Amazon Resource Name (ARN) for which associations will+    -- be listed.+    pricingRuleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPricingPlansAssociatedWithPricingRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriod', 'listPricingPlansAssociatedWithPricingRule_billingPeriod' - The pricing plan billing period for which associations will be listed.+--+-- 'maxResults', 'listPricingPlansAssociatedWithPricingRule_maxResults' - The optional maximum number of pricing rule associations to retrieve.+--+-- 'nextToken', 'listPricingPlansAssociatedWithPricingRule_nextToken' - The optional pagination token returned by a previous call.+--+-- 'pricingRuleArn', 'listPricingPlansAssociatedWithPricingRule_pricingRuleArn' - The pricing rule Amazon Resource Name (ARN) for which associations will+-- be listed.+newListPricingPlansAssociatedWithPricingRule ::+  -- | 'pricingRuleArn'+  Prelude.Text ->+  ListPricingPlansAssociatedWithPricingRule+newListPricingPlansAssociatedWithPricingRule+  pPricingRuleArn_ =+    ListPricingPlansAssociatedWithPricingRule'+      { billingPeriod =+          Prelude.Nothing,+        maxResults = Prelude.Nothing,+        nextToken = Prelude.Nothing,+        pricingRuleArn =+          pPricingRuleArn_+      }++-- | The pricing plan billing period for which associations will be listed.+listPricingPlansAssociatedWithPricingRule_billingPeriod :: Lens.Lens' ListPricingPlansAssociatedWithPricingRule (Prelude.Maybe Prelude.Text)+listPricingPlansAssociatedWithPricingRule_billingPeriod = Lens.lens (\ListPricingPlansAssociatedWithPricingRule' {billingPeriod} -> billingPeriod) (\s@ListPricingPlansAssociatedWithPricingRule' {} a -> s {billingPeriod = a} :: ListPricingPlansAssociatedWithPricingRule)++-- | The optional maximum number of pricing rule associations to retrieve.+listPricingPlansAssociatedWithPricingRule_maxResults :: Lens.Lens' ListPricingPlansAssociatedWithPricingRule (Prelude.Maybe Prelude.Natural)+listPricingPlansAssociatedWithPricingRule_maxResults = Lens.lens (\ListPricingPlansAssociatedWithPricingRule' {maxResults} -> maxResults) (\s@ListPricingPlansAssociatedWithPricingRule' {} a -> s {maxResults = a} :: ListPricingPlansAssociatedWithPricingRule)++-- | The optional pagination token returned by a previous call.+listPricingPlansAssociatedWithPricingRule_nextToken :: Lens.Lens' ListPricingPlansAssociatedWithPricingRule (Prelude.Maybe Prelude.Text)+listPricingPlansAssociatedWithPricingRule_nextToken = Lens.lens (\ListPricingPlansAssociatedWithPricingRule' {nextToken} -> nextToken) (\s@ListPricingPlansAssociatedWithPricingRule' {} a -> s {nextToken = a} :: ListPricingPlansAssociatedWithPricingRule)++-- | The pricing rule Amazon Resource Name (ARN) for which associations will+-- be listed.+listPricingPlansAssociatedWithPricingRule_pricingRuleArn :: Lens.Lens' ListPricingPlansAssociatedWithPricingRule Prelude.Text+listPricingPlansAssociatedWithPricingRule_pricingRuleArn = Lens.lens (\ListPricingPlansAssociatedWithPricingRule' {pricingRuleArn} -> pricingRuleArn) (\s@ListPricingPlansAssociatedWithPricingRule' {} a -> s {pricingRuleArn = a} :: ListPricingPlansAssociatedWithPricingRule)++instance+  Core.AWSPager+    ListPricingPlansAssociatedWithPricingRule+  where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listPricingPlansAssociatedWithPricingRuleResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listPricingPlansAssociatedWithPricingRuleResponse_pricingPlanArns+            Prelude.. Lens._Just+            Prelude.. Lens.to Prelude.toList+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listPricingPlansAssociatedWithPricingRule_nextToken+          Lens..~ rs+          Lens.^? listPricingPlansAssociatedWithPricingRuleResponse_nextToken+          Prelude.. Lens._Just++instance+  Core.AWSRequest+    ListPricingPlansAssociatedWithPricingRule+  where+  type+    AWSResponse+      ListPricingPlansAssociatedWithPricingRule =+      ListPricingPlansAssociatedWithPricingRuleResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListPricingPlansAssociatedWithPricingRuleResponse'+            Prelude.<$> (x Data..?> "BillingPeriod")+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "PricingPlanArns")+            Prelude.<*> (x Data..?> "PricingRuleArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ListPricingPlansAssociatedWithPricingRule+  where+  hashWithSalt+    _salt+    ListPricingPlansAssociatedWithPricingRule' {..} =+      _salt+        `Prelude.hashWithSalt` billingPeriod+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` pricingRuleArn++instance+  Prelude.NFData+    ListPricingPlansAssociatedWithPricingRule+  where+  rnf ListPricingPlansAssociatedWithPricingRule' {..} =+    Prelude.rnf billingPeriod+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf pricingRuleArn++instance+  Data.ToHeaders+    ListPricingPlansAssociatedWithPricingRule+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    ListPricingPlansAssociatedWithPricingRule+  where+  toJSON ListPricingPlansAssociatedWithPricingRule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingPeriod" Data..=) Prelude.<$> billingPeriod,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("PricingRuleArn" Data..= pricingRuleArn)+          ]+      )++instance+  Data.ToPath+    ListPricingPlansAssociatedWithPricingRule+  where+  toPath =+    Prelude.const+      "/list-pricing-plans-associated-with-pricing-rule"++instance+  Data.ToQuery+    ListPricingPlansAssociatedWithPricingRule+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListPricingPlansAssociatedWithPricingRuleResponse' smart constructor.+data ListPricingPlansAssociatedWithPricingRuleResponse = ListPricingPlansAssociatedWithPricingRuleResponse'+  { -- | The pricing plan billing period for which associations will be listed.+    billingPeriod :: Prelude.Maybe Prelude.Text,+    -- | The pagination token to be used on subsequent calls.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The list containing pricing plans that are associated with the requested+    -- pricing rule.+    pricingPlanArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The pricing rule Amazon Resource Name (ARN) for which associations will+    -- be listed.+    pricingRuleArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPricingPlansAssociatedWithPricingRuleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriod', 'listPricingPlansAssociatedWithPricingRuleResponse_billingPeriod' - The pricing plan billing period for which associations will be listed.+--+-- 'nextToken', 'listPricingPlansAssociatedWithPricingRuleResponse_nextToken' - The pagination token to be used on subsequent calls.+--+-- 'pricingPlanArns', 'listPricingPlansAssociatedWithPricingRuleResponse_pricingPlanArns' - The list containing pricing plans that are associated with the requested+-- pricing rule.+--+-- 'pricingRuleArn', 'listPricingPlansAssociatedWithPricingRuleResponse_pricingRuleArn' - The pricing rule Amazon Resource Name (ARN) for which associations will+-- be listed.+--+-- 'httpStatus', 'listPricingPlansAssociatedWithPricingRuleResponse_httpStatus' - The response's http status code.+newListPricingPlansAssociatedWithPricingRuleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListPricingPlansAssociatedWithPricingRuleResponse+newListPricingPlansAssociatedWithPricingRuleResponse+  pHttpStatus_ =+    ListPricingPlansAssociatedWithPricingRuleResponse'+      { billingPeriod =+          Prelude.Nothing,+        nextToken =+          Prelude.Nothing,+        pricingPlanArns =+          Prelude.Nothing,+        pricingRuleArn =+          Prelude.Nothing,+        httpStatus =+          pHttpStatus_+      }++-- | The pricing plan billing period for which associations will be listed.+listPricingPlansAssociatedWithPricingRuleResponse_billingPeriod :: Lens.Lens' ListPricingPlansAssociatedWithPricingRuleResponse (Prelude.Maybe Prelude.Text)+listPricingPlansAssociatedWithPricingRuleResponse_billingPeriod = Lens.lens (\ListPricingPlansAssociatedWithPricingRuleResponse' {billingPeriod} -> billingPeriod) (\s@ListPricingPlansAssociatedWithPricingRuleResponse' {} a -> s {billingPeriod = a} :: ListPricingPlansAssociatedWithPricingRuleResponse)++-- | The pagination token to be used on subsequent calls.+listPricingPlansAssociatedWithPricingRuleResponse_nextToken :: Lens.Lens' ListPricingPlansAssociatedWithPricingRuleResponse (Prelude.Maybe Prelude.Text)+listPricingPlansAssociatedWithPricingRuleResponse_nextToken = Lens.lens (\ListPricingPlansAssociatedWithPricingRuleResponse' {nextToken} -> nextToken) (\s@ListPricingPlansAssociatedWithPricingRuleResponse' {} a -> s {nextToken = a} :: ListPricingPlansAssociatedWithPricingRuleResponse)++-- | The list containing pricing plans that are associated with the requested+-- pricing rule.+listPricingPlansAssociatedWithPricingRuleResponse_pricingPlanArns :: Lens.Lens' ListPricingPlansAssociatedWithPricingRuleResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listPricingPlansAssociatedWithPricingRuleResponse_pricingPlanArns = Lens.lens (\ListPricingPlansAssociatedWithPricingRuleResponse' {pricingPlanArns} -> pricingPlanArns) (\s@ListPricingPlansAssociatedWithPricingRuleResponse' {} a -> s {pricingPlanArns = a} :: ListPricingPlansAssociatedWithPricingRuleResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pricing rule Amazon Resource Name (ARN) for which associations will+-- be listed.+listPricingPlansAssociatedWithPricingRuleResponse_pricingRuleArn :: Lens.Lens' ListPricingPlansAssociatedWithPricingRuleResponse (Prelude.Maybe Prelude.Text)+listPricingPlansAssociatedWithPricingRuleResponse_pricingRuleArn = Lens.lens (\ListPricingPlansAssociatedWithPricingRuleResponse' {pricingRuleArn} -> pricingRuleArn) (\s@ListPricingPlansAssociatedWithPricingRuleResponse' {} a -> s {pricingRuleArn = a} :: ListPricingPlansAssociatedWithPricingRuleResponse)++-- | The response's http status code.+listPricingPlansAssociatedWithPricingRuleResponse_httpStatus :: Lens.Lens' ListPricingPlansAssociatedWithPricingRuleResponse Prelude.Int+listPricingPlansAssociatedWithPricingRuleResponse_httpStatus = Lens.lens (\ListPricingPlansAssociatedWithPricingRuleResponse' {httpStatus} -> httpStatus) (\s@ListPricingPlansAssociatedWithPricingRuleResponse' {} a -> s {httpStatus = a} :: ListPricingPlansAssociatedWithPricingRuleResponse)++instance+  Prelude.NFData+    ListPricingPlansAssociatedWithPricingRuleResponse+  where+  rnf+    ListPricingPlansAssociatedWithPricingRuleResponse' {..} =+      Prelude.rnf billingPeriod+        `Prelude.seq` Prelude.rnf nextToken+        `Prelude.seq` Prelude.rnf pricingPlanArns+        `Prelude.seq` Prelude.rnf pricingRuleArn+        `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/ListPricingRules.hs view
@@ -0,0 +1,264 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.ListPricingRules+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes a pricing rule that can be associated to a pricing plan, or+-- set of pricing plans.+--+-- This operation returns paginated results.+module Amazonka.BillingConductor.ListPricingRules+  ( -- * Creating a Request+    ListPricingRules (..),+    newListPricingRules,++    -- * Request Lenses+    listPricingRules_billingPeriod,+    listPricingRules_filters,+    listPricingRules_maxResults,+    listPricingRules_nextToken,++    -- * Destructuring the Response+    ListPricingRulesResponse (..),+    newListPricingRulesResponse,++    -- * Response Lenses+    listPricingRulesResponse_billingPeriod,+    listPricingRulesResponse_nextToken,+    listPricingRulesResponse_pricingRules,+    listPricingRulesResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListPricingRules' smart constructor.+data ListPricingRules = ListPricingRules'+  { -- | The preferred billing period to get the pricing plan.+    billingPeriod :: Prelude.Maybe Prelude.Text,+    -- | A @DescribePricingRuleFilter@ that specifies the Amazon Resource Name+    -- (ARNs) of pricing rules to retrieve pricing rules information.+    filters :: Prelude.Maybe ListPricingRulesFilter,+    -- | The maximum number of pricing rules to retrieve.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token that\'s used on subsequent call to get pricing+    -- rules.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPricingRules' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriod', 'listPricingRules_billingPeriod' - The preferred billing period to get the pricing plan.+--+-- 'filters', 'listPricingRules_filters' - A @DescribePricingRuleFilter@ that specifies the Amazon Resource Name+-- (ARNs) of pricing rules to retrieve pricing rules information.+--+-- 'maxResults', 'listPricingRules_maxResults' - The maximum number of pricing rules to retrieve.+--+-- 'nextToken', 'listPricingRules_nextToken' - The pagination token that\'s used on subsequent call to get pricing+-- rules.+newListPricingRules ::+  ListPricingRules+newListPricingRules =+  ListPricingRules'+    { billingPeriod = Prelude.Nothing,+      filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The preferred billing period to get the pricing plan.+listPricingRules_billingPeriod :: Lens.Lens' ListPricingRules (Prelude.Maybe Prelude.Text)+listPricingRules_billingPeriod = Lens.lens (\ListPricingRules' {billingPeriod} -> billingPeriod) (\s@ListPricingRules' {} a -> s {billingPeriod = a} :: ListPricingRules)++-- | A @DescribePricingRuleFilter@ that specifies the Amazon Resource Name+-- (ARNs) of pricing rules to retrieve pricing rules information.+listPricingRules_filters :: Lens.Lens' ListPricingRules (Prelude.Maybe ListPricingRulesFilter)+listPricingRules_filters = Lens.lens (\ListPricingRules' {filters} -> filters) (\s@ListPricingRules' {} a -> s {filters = a} :: ListPricingRules)++-- | The maximum number of pricing rules to retrieve.+listPricingRules_maxResults :: Lens.Lens' ListPricingRules (Prelude.Maybe Prelude.Natural)+listPricingRules_maxResults = Lens.lens (\ListPricingRules' {maxResults} -> maxResults) (\s@ListPricingRules' {} a -> s {maxResults = a} :: ListPricingRules)++-- | The pagination token that\'s used on subsequent call to get pricing+-- rules.+listPricingRules_nextToken :: Lens.Lens' ListPricingRules (Prelude.Maybe Prelude.Text)+listPricingRules_nextToken = Lens.lens (\ListPricingRules' {nextToken} -> nextToken) (\s@ListPricingRules' {} a -> s {nextToken = a} :: ListPricingRules)++instance Core.AWSPager ListPricingRules where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listPricingRulesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listPricingRulesResponse_pricingRules+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listPricingRules_nextToken+          Lens..~ rs+          Lens.^? listPricingRulesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListPricingRules where+  type+    AWSResponse ListPricingRules =+      ListPricingRulesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListPricingRulesResponse'+            Prelude.<$> (x Data..?> "BillingPeriod")+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "PricingRules" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListPricingRules where+  hashWithSalt _salt ListPricingRules' {..} =+    _salt+      `Prelude.hashWithSalt` billingPeriod+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListPricingRules where+  rnf ListPricingRules' {..} =+    Prelude.rnf billingPeriod+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListPricingRules where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListPricingRules where+  toJSON ListPricingRules' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingPeriod" Data..=) Prelude.<$> billingPeriod,+            ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListPricingRules where+  toPath = Prelude.const "/list-pricing-rules"++instance Data.ToQuery ListPricingRules where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListPricingRulesResponse' smart constructor.+data ListPricingRulesResponse = ListPricingRulesResponse'+  { -- | The billing period for which the described pricing rules are applicable.+    billingPeriod :: Prelude.Maybe Prelude.Text,+    -- | The pagination token that\'s used on subsequent calls to get pricing+    -- rules.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list containing the described pricing rules.+    pricingRules :: Prelude.Maybe [PricingRuleListElement],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPricingRulesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriod', 'listPricingRulesResponse_billingPeriod' - The billing period for which the described pricing rules are applicable.+--+-- 'nextToken', 'listPricingRulesResponse_nextToken' - The pagination token that\'s used on subsequent calls to get pricing+-- rules.+--+-- 'pricingRules', 'listPricingRulesResponse_pricingRules' - A list containing the described pricing rules.+--+-- 'httpStatus', 'listPricingRulesResponse_httpStatus' - The response's http status code.+newListPricingRulesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListPricingRulesResponse+newListPricingRulesResponse pHttpStatus_ =+  ListPricingRulesResponse'+    { billingPeriod =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      pricingRules = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The billing period for which the described pricing rules are applicable.+listPricingRulesResponse_billingPeriod :: Lens.Lens' ListPricingRulesResponse (Prelude.Maybe Prelude.Text)+listPricingRulesResponse_billingPeriod = Lens.lens (\ListPricingRulesResponse' {billingPeriod} -> billingPeriod) (\s@ListPricingRulesResponse' {} a -> s {billingPeriod = a} :: ListPricingRulesResponse)++-- | The pagination token that\'s used on subsequent calls to get pricing+-- rules.+listPricingRulesResponse_nextToken :: Lens.Lens' ListPricingRulesResponse (Prelude.Maybe Prelude.Text)+listPricingRulesResponse_nextToken = Lens.lens (\ListPricingRulesResponse' {nextToken} -> nextToken) (\s@ListPricingRulesResponse' {} a -> s {nextToken = a} :: ListPricingRulesResponse)++-- | A list containing the described pricing rules.+listPricingRulesResponse_pricingRules :: Lens.Lens' ListPricingRulesResponse (Prelude.Maybe [PricingRuleListElement])+listPricingRulesResponse_pricingRules = Lens.lens (\ListPricingRulesResponse' {pricingRules} -> pricingRules) (\s@ListPricingRulesResponse' {} a -> s {pricingRules = a} :: ListPricingRulesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listPricingRulesResponse_httpStatus :: Lens.Lens' ListPricingRulesResponse Prelude.Int+listPricingRulesResponse_httpStatus = Lens.lens (\ListPricingRulesResponse' {httpStatus} -> httpStatus) (\s@ListPricingRulesResponse' {} a -> s {httpStatus = a} :: ListPricingRulesResponse)++instance Prelude.NFData ListPricingRulesResponse where+  rnf ListPricingRulesResponse' {..} =+    Prelude.rnf billingPeriod+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf pricingRules+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/ListPricingRulesAssociatedToPricingPlan.hs view
@@ -0,0 +1,321 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.ListPricingRulesAssociatedToPricingPlan+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the pricing rules that are associated with a pricing plan.+--+-- This operation returns paginated results.+module Amazonka.BillingConductor.ListPricingRulesAssociatedToPricingPlan+  ( -- * Creating a Request+    ListPricingRulesAssociatedToPricingPlan (..),+    newListPricingRulesAssociatedToPricingPlan,++    -- * Request Lenses+    listPricingRulesAssociatedToPricingPlan_billingPeriod,+    listPricingRulesAssociatedToPricingPlan_maxResults,+    listPricingRulesAssociatedToPricingPlan_nextToken,+    listPricingRulesAssociatedToPricingPlan_pricingPlanArn,++    -- * Destructuring the Response+    ListPricingRulesAssociatedToPricingPlanResponse (..),+    newListPricingRulesAssociatedToPricingPlanResponse,++    -- * Response Lenses+    listPricingRulesAssociatedToPricingPlanResponse_billingPeriod,+    listPricingRulesAssociatedToPricingPlanResponse_nextToken,+    listPricingRulesAssociatedToPricingPlanResponse_pricingPlanArn,+    listPricingRulesAssociatedToPricingPlanResponse_pricingRuleArns,+    listPricingRulesAssociatedToPricingPlanResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListPricingRulesAssociatedToPricingPlan' smart constructor.+data ListPricingRulesAssociatedToPricingPlan = ListPricingRulesAssociatedToPricingPlan'+  { -- | The billing period for which the pricing rule associations are to be+    -- listed.+    billingPeriod :: Prelude.Maybe Prelude.Text,+    -- | The optional maximum number of pricing rule associations to retrieve.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The optional pagination token returned by a previous call.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the pricing plan for which+    -- associations are to be listed.+    pricingPlanArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPricingRulesAssociatedToPricingPlan' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriod', 'listPricingRulesAssociatedToPricingPlan_billingPeriod' - The billing period for which the pricing rule associations are to be+-- listed.+--+-- 'maxResults', 'listPricingRulesAssociatedToPricingPlan_maxResults' - The optional maximum number of pricing rule associations to retrieve.+--+-- 'nextToken', 'listPricingRulesAssociatedToPricingPlan_nextToken' - The optional pagination token returned by a previous call.+--+-- 'pricingPlanArn', 'listPricingRulesAssociatedToPricingPlan_pricingPlanArn' - The Amazon Resource Name (ARN) of the pricing plan for which+-- associations are to be listed.+newListPricingRulesAssociatedToPricingPlan ::+  -- | 'pricingPlanArn'+  Prelude.Text ->+  ListPricingRulesAssociatedToPricingPlan+newListPricingRulesAssociatedToPricingPlan+  pPricingPlanArn_ =+    ListPricingRulesAssociatedToPricingPlan'+      { billingPeriod =+          Prelude.Nothing,+        maxResults = Prelude.Nothing,+        nextToken = Prelude.Nothing,+        pricingPlanArn = pPricingPlanArn_+      }++-- | The billing period for which the pricing rule associations are to be+-- listed.+listPricingRulesAssociatedToPricingPlan_billingPeriod :: Lens.Lens' ListPricingRulesAssociatedToPricingPlan (Prelude.Maybe Prelude.Text)+listPricingRulesAssociatedToPricingPlan_billingPeriod = Lens.lens (\ListPricingRulesAssociatedToPricingPlan' {billingPeriod} -> billingPeriod) (\s@ListPricingRulesAssociatedToPricingPlan' {} a -> s {billingPeriod = a} :: ListPricingRulesAssociatedToPricingPlan)++-- | The optional maximum number of pricing rule associations to retrieve.+listPricingRulesAssociatedToPricingPlan_maxResults :: Lens.Lens' ListPricingRulesAssociatedToPricingPlan (Prelude.Maybe Prelude.Natural)+listPricingRulesAssociatedToPricingPlan_maxResults = Lens.lens (\ListPricingRulesAssociatedToPricingPlan' {maxResults} -> maxResults) (\s@ListPricingRulesAssociatedToPricingPlan' {} a -> s {maxResults = a} :: ListPricingRulesAssociatedToPricingPlan)++-- | The optional pagination token returned by a previous call.+listPricingRulesAssociatedToPricingPlan_nextToken :: Lens.Lens' ListPricingRulesAssociatedToPricingPlan (Prelude.Maybe Prelude.Text)+listPricingRulesAssociatedToPricingPlan_nextToken = Lens.lens (\ListPricingRulesAssociatedToPricingPlan' {nextToken} -> nextToken) (\s@ListPricingRulesAssociatedToPricingPlan' {} a -> s {nextToken = a} :: ListPricingRulesAssociatedToPricingPlan)++-- | The Amazon Resource Name (ARN) of the pricing plan for which+-- associations are to be listed.+listPricingRulesAssociatedToPricingPlan_pricingPlanArn :: Lens.Lens' ListPricingRulesAssociatedToPricingPlan Prelude.Text+listPricingRulesAssociatedToPricingPlan_pricingPlanArn = Lens.lens (\ListPricingRulesAssociatedToPricingPlan' {pricingPlanArn} -> pricingPlanArn) (\s@ListPricingRulesAssociatedToPricingPlan' {} a -> s {pricingPlanArn = a} :: ListPricingRulesAssociatedToPricingPlan)++instance+  Core.AWSPager+    ListPricingRulesAssociatedToPricingPlan+  where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listPricingRulesAssociatedToPricingPlanResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listPricingRulesAssociatedToPricingPlanResponse_pricingRuleArns+            Prelude.. Lens._Just+            Prelude.. Lens.to Prelude.toList+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listPricingRulesAssociatedToPricingPlan_nextToken+          Lens..~ rs+          Lens.^? listPricingRulesAssociatedToPricingPlanResponse_nextToken+          Prelude.. Lens._Just++instance+  Core.AWSRequest+    ListPricingRulesAssociatedToPricingPlan+  where+  type+    AWSResponse+      ListPricingRulesAssociatedToPricingPlan =+      ListPricingRulesAssociatedToPricingPlanResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListPricingRulesAssociatedToPricingPlanResponse'+            Prelude.<$> (x Data..?> "BillingPeriod")+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "PricingPlanArn")+            Prelude.<*> (x Data..?> "PricingRuleArns")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ListPricingRulesAssociatedToPricingPlan+  where+  hashWithSalt+    _salt+    ListPricingRulesAssociatedToPricingPlan' {..} =+      _salt+        `Prelude.hashWithSalt` billingPeriod+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` pricingPlanArn++instance+  Prelude.NFData+    ListPricingRulesAssociatedToPricingPlan+  where+  rnf ListPricingRulesAssociatedToPricingPlan' {..} =+    Prelude.rnf billingPeriod+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf pricingPlanArn++instance+  Data.ToHeaders+    ListPricingRulesAssociatedToPricingPlan+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    ListPricingRulesAssociatedToPricingPlan+  where+  toJSON ListPricingRulesAssociatedToPricingPlan' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingPeriod" Data..=) Prelude.<$> billingPeriod,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("PricingPlanArn" Data..= pricingPlanArn)+          ]+      )++instance+  Data.ToPath+    ListPricingRulesAssociatedToPricingPlan+  where+  toPath =+    Prelude.const+      "/list-pricing-rules-associated-to-pricing-plan"++instance+  Data.ToQuery+    ListPricingRulesAssociatedToPricingPlan+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListPricingRulesAssociatedToPricingPlanResponse' smart constructor.+data ListPricingRulesAssociatedToPricingPlanResponse = ListPricingRulesAssociatedToPricingPlanResponse'+  { -- | The billing period for which the pricing rule associations are listed.+    billingPeriod :: Prelude.Maybe Prelude.Text,+    -- | The pagination token to be used on subsequent calls.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the pricing plan for which+    -- associations are listed.+    pricingPlanArn :: Prelude.Maybe Prelude.Text,+    -- | A list containing pricing rules that are associated with the requested+    -- pricing plan.+    pricingRuleArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPricingRulesAssociatedToPricingPlanResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriod', 'listPricingRulesAssociatedToPricingPlanResponse_billingPeriod' - The billing period for which the pricing rule associations are listed.+--+-- 'nextToken', 'listPricingRulesAssociatedToPricingPlanResponse_nextToken' - The pagination token to be used on subsequent calls.+--+-- 'pricingPlanArn', 'listPricingRulesAssociatedToPricingPlanResponse_pricingPlanArn' - The Amazon Resource Name (ARN) of the pricing plan for which+-- associations are listed.+--+-- 'pricingRuleArns', 'listPricingRulesAssociatedToPricingPlanResponse_pricingRuleArns' - A list containing pricing rules that are associated with the requested+-- pricing plan.+--+-- 'httpStatus', 'listPricingRulesAssociatedToPricingPlanResponse_httpStatus' - The response's http status code.+newListPricingRulesAssociatedToPricingPlanResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListPricingRulesAssociatedToPricingPlanResponse+newListPricingRulesAssociatedToPricingPlanResponse+  pHttpStatus_ =+    ListPricingRulesAssociatedToPricingPlanResponse'+      { billingPeriod =+          Prelude.Nothing,+        nextToken =+          Prelude.Nothing,+        pricingPlanArn =+          Prelude.Nothing,+        pricingRuleArns =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The billing period for which the pricing rule associations are listed.+listPricingRulesAssociatedToPricingPlanResponse_billingPeriod :: Lens.Lens' ListPricingRulesAssociatedToPricingPlanResponse (Prelude.Maybe Prelude.Text)+listPricingRulesAssociatedToPricingPlanResponse_billingPeriod = Lens.lens (\ListPricingRulesAssociatedToPricingPlanResponse' {billingPeriod} -> billingPeriod) (\s@ListPricingRulesAssociatedToPricingPlanResponse' {} a -> s {billingPeriod = a} :: ListPricingRulesAssociatedToPricingPlanResponse)++-- | The pagination token to be used on subsequent calls.+listPricingRulesAssociatedToPricingPlanResponse_nextToken :: Lens.Lens' ListPricingRulesAssociatedToPricingPlanResponse (Prelude.Maybe Prelude.Text)+listPricingRulesAssociatedToPricingPlanResponse_nextToken = Lens.lens (\ListPricingRulesAssociatedToPricingPlanResponse' {nextToken} -> nextToken) (\s@ListPricingRulesAssociatedToPricingPlanResponse' {} a -> s {nextToken = a} :: ListPricingRulesAssociatedToPricingPlanResponse)++-- | The Amazon Resource Name (ARN) of the pricing plan for which+-- associations are listed.+listPricingRulesAssociatedToPricingPlanResponse_pricingPlanArn :: Lens.Lens' ListPricingRulesAssociatedToPricingPlanResponse (Prelude.Maybe Prelude.Text)+listPricingRulesAssociatedToPricingPlanResponse_pricingPlanArn = Lens.lens (\ListPricingRulesAssociatedToPricingPlanResponse' {pricingPlanArn} -> pricingPlanArn) (\s@ListPricingRulesAssociatedToPricingPlanResponse' {} a -> s {pricingPlanArn = a} :: ListPricingRulesAssociatedToPricingPlanResponse)++-- | A list containing pricing rules that are associated with the requested+-- pricing plan.+listPricingRulesAssociatedToPricingPlanResponse_pricingRuleArns :: Lens.Lens' ListPricingRulesAssociatedToPricingPlanResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listPricingRulesAssociatedToPricingPlanResponse_pricingRuleArns = Lens.lens (\ListPricingRulesAssociatedToPricingPlanResponse' {pricingRuleArns} -> pricingRuleArns) (\s@ListPricingRulesAssociatedToPricingPlanResponse' {} a -> s {pricingRuleArns = a} :: ListPricingRulesAssociatedToPricingPlanResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listPricingRulesAssociatedToPricingPlanResponse_httpStatus :: Lens.Lens' ListPricingRulesAssociatedToPricingPlanResponse Prelude.Int+listPricingRulesAssociatedToPricingPlanResponse_httpStatus = Lens.lens (\ListPricingRulesAssociatedToPricingPlanResponse' {httpStatus} -> httpStatus) (\s@ListPricingRulesAssociatedToPricingPlanResponse' {} a -> s {httpStatus = a} :: ListPricingRulesAssociatedToPricingPlanResponse)++instance+  Prelude.NFData+    ListPricingRulesAssociatedToPricingPlanResponse+  where+  rnf+    ListPricingRulesAssociatedToPricingPlanResponse' {..} =+      Prelude.rnf billingPeriod+        `Prelude.seq` Prelude.rnf nextToken+        `Prelude.seq` Prelude.rnf pricingPlanArn+        `Prelude.seq` Prelude.rnf pricingRuleArns+        `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/ListResourcesAssociatedToCustomLineItem.hs view
@@ -0,0 +1,321 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.ListResourcesAssociatedToCustomLineItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List the resources that are associated to a custom line item.+--+-- This operation returns paginated results.+module Amazonka.BillingConductor.ListResourcesAssociatedToCustomLineItem+  ( -- * Creating a Request+    ListResourcesAssociatedToCustomLineItem (..),+    newListResourcesAssociatedToCustomLineItem,++    -- * Request Lenses+    listResourcesAssociatedToCustomLineItem_billingPeriod,+    listResourcesAssociatedToCustomLineItem_filters,+    listResourcesAssociatedToCustomLineItem_maxResults,+    listResourcesAssociatedToCustomLineItem_nextToken,+    listResourcesAssociatedToCustomLineItem_arn,++    -- * Destructuring the Response+    ListResourcesAssociatedToCustomLineItemResponse (..),+    newListResourcesAssociatedToCustomLineItemResponse,++    -- * Response Lenses+    listResourcesAssociatedToCustomLineItemResponse_arn,+    listResourcesAssociatedToCustomLineItemResponse_associatedResources,+    listResourcesAssociatedToCustomLineItemResponse_nextToken,+    listResourcesAssociatedToCustomLineItemResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListResourcesAssociatedToCustomLineItem' smart constructor.+data ListResourcesAssociatedToCustomLineItem = ListResourcesAssociatedToCustomLineItem'+  { -- | The billing period for which the resource associations will be listed.+    billingPeriod :: Prelude.Maybe Prelude.Text,+    -- | (Optional) A @ListResourcesAssociatedToCustomLineItemFilter@ that can+    -- specify the types of resources that should be retrieved.+    filters :: Prelude.Maybe ListResourcesAssociatedToCustomLineItemFilter,+    -- | (Optional) The maximum number of resource associations to be retrieved.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | (Optional) The pagination token that\'s returned by a previous request.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the custom line item for which the resource associations will+    -- be listed.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListResourcesAssociatedToCustomLineItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriod', 'listResourcesAssociatedToCustomLineItem_billingPeriod' - The billing period for which the resource associations will be listed.+--+-- 'filters', 'listResourcesAssociatedToCustomLineItem_filters' - (Optional) A @ListResourcesAssociatedToCustomLineItemFilter@ that can+-- specify the types of resources that should be retrieved.+--+-- 'maxResults', 'listResourcesAssociatedToCustomLineItem_maxResults' - (Optional) The maximum number of resource associations to be retrieved.+--+-- 'nextToken', 'listResourcesAssociatedToCustomLineItem_nextToken' - (Optional) The pagination token that\'s returned by a previous request.+--+-- 'arn', 'listResourcesAssociatedToCustomLineItem_arn' - The ARN of the custom line item for which the resource associations will+-- be listed.+newListResourcesAssociatedToCustomLineItem ::+  -- | 'arn'+  Prelude.Text ->+  ListResourcesAssociatedToCustomLineItem+newListResourcesAssociatedToCustomLineItem pArn_ =+  ListResourcesAssociatedToCustomLineItem'+    { billingPeriod =+        Prelude.Nothing,+      filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      arn = pArn_+    }++-- | The billing period for which the resource associations will be listed.+listResourcesAssociatedToCustomLineItem_billingPeriod :: Lens.Lens' ListResourcesAssociatedToCustomLineItem (Prelude.Maybe Prelude.Text)+listResourcesAssociatedToCustomLineItem_billingPeriod = Lens.lens (\ListResourcesAssociatedToCustomLineItem' {billingPeriod} -> billingPeriod) (\s@ListResourcesAssociatedToCustomLineItem' {} a -> s {billingPeriod = a} :: ListResourcesAssociatedToCustomLineItem)++-- | (Optional) A @ListResourcesAssociatedToCustomLineItemFilter@ that can+-- specify the types of resources that should be retrieved.+listResourcesAssociatedToCustomLineItem_filters :: Lens.Lens' ListResourcesAssociatedToCustomLineItem (Prelude.Maybe ListResourcesAssociatedToCustomLineItemFilter)+listResourcesAssociatedToCustomLineItem_filters = Lens.lens (\ListResourcesAssociatedToCustomLineItem' {filters} -> filters) (\s@ListResourcesAssociatedToCustomLineItem' {} a -> s {filters = a} :: ListResourcesAssociatedToCustomLineItem)++-- | (Optional) The maximum number of resource associations to be retrieved.+listResourcesAssociatedToCustomLineItem_maxResults :: Lens.Lens' ListResourcesAssociatedToCustomLineItem (Prelude.Maybe Prelude.Natural)+listResourcesAssociatedToCustomLineItem_maxResults = Lens.lens (\ListResourcesAssociatedToCustomLineItem' {maxResults} -> maxResults) (\s@ListResourcesAssociatedToCustomLineItem' {} a -> s {maxResults = a} :: ListResourcesAssociatedToCustomLineItem)++-- | (Optional) The pagination token that\'s returned by a previous request.+listResourcesAssociatedToCustomLineItem_nextToken :: Lens.Lens' ListResourcesAssociatedToCustomLineItem (Prelude.Maybe Prelude.Text)+listResourcesAssociatedToCustomLineItem_nextToken = Lens.lens (\ListResourcesAssociatedToCustomLineItem' {nextToken} -> nextToken) (\s@ListResourcesAssociatedToCustomLineItem' {} a -> s {nextToken = a} :: ListResourcesAssociatedToCustomLineItem)++-- | The ARN of the custom line item for which the resource associations will+-- be listed.+listResourcesAssociatedToCustomLineItem_arn :: Lens.Lens' ListResourcesAssociatedToCustomLineItem Prelude.Text+listResourcesAssociatedToCustomLineItem_arn = Lens.lens (\ListResourcesAssociatedToCustomLineItem' {arn} -> arn) (\s@ListResourcesAssociatedToCustomLineItem' {} a -> s {arn = a} :: ListResourcesAssociatedToCustomLineItem)++instance+  Core.AWSPager+    ListResourcesAssociatedToCustomLineItem+  where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listResourcesAssociatedToCustomLineItemResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listResourcesAssociatedToCustomLineItemResponse_associatedResources+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listResourcesAssociatedToCustomLineItem_nextToken+          Lens..~ rs+          Lens.^? listResourcesAssociatedToCustomLineItemResponse_nextToken+          Prelude.. Lens._Just++instance+  Core.AWSRequest+    ListResourcesAssociatedToCustomLineItem+  where+  type+    AWSResponse+      ListResourcesAssociatedToCustomLineItem =+      ListResourcesAssociatedToCustomLineItemResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListResourcesAssociatedToCustomLineItemResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> ( x+                            Data..?> "AssociatedResources"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ListResourcesAssociatedToCustomLineItem+  where+  hashWithSalt+    _salt+    ListResourcesAssociatedToCustomLineItem' {..} =+      _salt+        `Prelude.hashWithSalt` billingPeriod+        `Prelude.hashWithSalt` filters+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` arn++instance+  Prelude.NFData+    ListResourcesAssociatedToCustomLineItem+  where+  rnf ListResourcesAssociatedToCustomLineItem' {..} =+    Prelude.rnf billingPeriod+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf arn++instance+  Data.ToHeaders+    ListResourcesAssociatedToCustomLineItem+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    ListResourcesAssociatedToCustomLineItem+  where+  toJSON ListResourcesAssociatedToCustomLineItem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingPeriod" Data..=) Prelude.<$> billingPeriod,+            ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("Arn" Data..= arn)+          ]+      )++instance+  Data.ToPath+    ListResourcesAssociatedToCustomLineItem+  where+  toPath =+    Prelude.const+      "/list-resources-associated-to-custom-line-item"++instance+  Data.ToQuery+    ListResourcesAssociatedToCustomLineItem+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListResourcesAssociatedToCustomLineItemResponse' smart constructor.+data ListResourcesAssociatedToCustomLineItemResponse = ListResourcesAssociatedToCustomLineItemResponse'+  { -- | The custom line item ARN for which the resource associations are listed.+    arn :: Prelude.Maybe Prelude.Text,+    -- | A list of @ListResourcesAssociatedToCustomLineItemResponseElement@ for+    -- each resource association retrieved.+    associatedResources :: Prelude.Maybe [ListResourcesAssociatedToCustomLineItemResponseElement],+    -- | The pagination token to be used in subsequent requests to retrieve+    -- additional results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListResourcesAssociatedToCustomLineItemResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'listResourcesAssociatedToCustomLineItemResponse_arn' - The custom line item ARN for which the resource associations are listed.+--+-- 'associatedResources', 'listResourcesAssociatedToCustomLineItemResponse_associatedResources' - A list of @ListResourcesAssociatedToCustomLineItemResponseElement@ for+-- each resource association retrieved.+--+-- 'nextToken', 'listResourcesAssociatedToCustomLineItemResponse_nextToken' - The pagination token to be used in subsequent requests to retrieve+-- additional results.+--+-- 'httpStatus', 'listResourcesAssociatedToCustomLineItemResponse_httpStatus' - The response's http status code.+newListResourcesAssociatedToCustomLineItemResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListResourcesAssociatedToCustomLineItemResponse+newListResourcesAssociatedToCustomLineItemResponse+  pHttpStatus_ =+    ListResourcesAssociatedToCustomLineItemResponse'+      { arn =+          Prelude.Nothing,+        associatedResources =+          Prelude.Nothing,+        nextToken =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The custom line item ARN for which the resource associations are listed.+listResourcesAssociatedToCustomLineItemResponse_arn :: Lens.Lens' ListResourcesAssociatedToCustomLineItemResponse (Prelude.Maybe Prelude.Text)+listResourcesAssociatedToCustomLineItemResponse_arn = Lens.lens (\ListResourcesAssociatedToCustomLineItemResponse' {arn} -> arn) (\s@ListResourcesAssociatedToCustomLineItemResponse' {} a -> s {arn = a} :: ListResourcesAssociatedToCustomLineItemResponse)++-- | A list of @ListResourcesAssociatedToCustomLineItemResponseElement@ for+-- each resource association retrieved.+listResourcesAssociatedToCustomLineItemResponse_associatedResources :: Lens.Lens' ListResourcesAssociatedToCustomLineItemResponse (Prelude.Maybe [ListResourcesAssociatedToCustomLineItemResponseElement])+listResourcesAssociatedToCustomLineItemResponse_associatedResources = Lens.lens (\ListResourcesAssociatedToCustomLineItemResponse' {associatedResources} -> associatedResources) (\s@ListResourcesAssociatedToCustomLineItemResponse' {} a -> s {associatedResources = a} :: ListResourcesAssociatedToCustomLineItemResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token to be used in subsequent requests to retrieve+-- additional results.+listResourcesAssociatedToCustomLineItemResponse_nextToken :: Lens.Lens' ListResourcesAssociatedToCustomLineItemResponse (Prelude.Maybe Prelude.Text)+listResourcesAssociatedToCustomLineItemResponse_nextToken = Lens.lens (\ListResourcesAssociatedToCustomLineItemResponse' {nextToken} -> nextToken) (\s@ListResourcesAssociatedToCustomLineItemResponse' {} a -> s {nextToken = a} :: ListResourcesAssociatedToCustomLineItemResponse)++-- | The response's http status code.+listResourcesAssociatedToCustomLineItemResponse_httpStatus :: Lens.Lens' ListResourcesAssociatedToCustomLineItemResponse Prelude.Int+listResourcesAssociatedToCustomLineItemResponse_httpStatus = Lens.lens (\ListResourcesAssociatedToCustomLineItemResponse' {httpStatus} -> httpStatus) (\s@ListResourcesAssociatedToCustomLineItemResponse' {} a -> s {httpStatus = a} :: ListResourcesAssociatedToCustomLineItemResponse)++instance+  Prelude.NFData+    ListResourcesAssociatedToCustomLineItemResponse+  where+  rnf+    ListResourcesAssociatedToCustomLineItemResponse' {..} =+      Prelude.rnf arn+        `Prelude.seq` Prelude.rnf associatedResources+        `Prelude.seq` Prelude.rnf nextToken+        `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/ListTagsForResource.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- A list the tags for a resource.+module Amazonka.BillingConductor.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceArn,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The Amazon Resource Name (ARN) that identifies the resource to list the+    -- tags.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) that identifies the resource to list the+-- tags.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) that identifies the resource to list the+-- tags.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListTagsForResource where+  toPath ListTagsForResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | The tags for the resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The tags for the resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The tags for the resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/TagResource.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.TagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Associates the specified tags to a resource with the specified+-- @resourceArn@. If existing tags on a resource are not specified in the+-- request parameters, they are not changed.+module Amazonka.BillingConductor.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The Amazon Resource Name (ARN) of the resource to which to add tags.+    resourceArn :: Prelude.Text,+    -- | The tags to add to the resource as a list of key-value pairs.+    tags :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource to which to add tags.+--+-- 'tags', 'tagResource_tags' - The tags to add to the resource as a list of key-value pairs.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the resource to which to add tags.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The tags to add to the resource as a list of key-value pairs.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Tags" Data..= tags)]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/Types.hs view
@@ -0,0 +1,486 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ServiceLimitExceededException,+    _ThrottlingException,+    _ValidationException,++    -- * AssociateResourceErrorReason+    AssociateResourceErrorReason (..),++    -- * BillingGroupStatus+    BillingGroupStatus (..),++    -- * CurrencyCode+    CurrencyCode (..),++    -- * CustomLineItemRelationship+    CustomLineItemRelationship (..),++    -- * CustomLineItemType+    CustomLineItemType (..),++    -- * PricingRuleScope+    PricingRuleScope (..),++    -- * PricingRuleType+    PricingRuleType (..),++    -- * AccountAssociationsListElement+    AccountAssociationsListElement (..),+    newAccountAssociationsListElement,+    accountAssociationsListElement_accountEmail,+    accountAssociationsListElement_accountId,+    accountAssociationsListElement_accountName,+    accountAssociationsListElement_billingGroupArn,++    -- * AccountGrouping+    AccountGrouping (..),+    newAccountGrouping,+    accountGrouping_linkedAccountIds,++    -- * AssociateResourceError+    AssociateResourceError (..),+    newAssociateResourceError,+    associateResourceError_message,+    associateResourceError_reason,++    -- * AssociateResourceResponseElement+    AssociateResourceResponseElement (..),+    newAssociateResourceResponseElement,+    associateResourceResponseElement_arn,+    associateResourceResponseElement_error,++    -- * BillingGroupCostReportElement+    BillingGroupCostReportElement (..),+    newBillingGroupCostReportElement,+    billingGroupCostReportElement_aWSCost,+    billingGroupCostReportElement_arn,+    billingGroupCostReportElement_currency,+    billingGroupCostReportElement_margin,+    billingGroupCostReportElement_marginPercentage,+    billingGroupCostReportElement_proformaCost,++    -- * BillingGroupListElement+    BillingGroupListElement (..),+    newBillingGroupListElement,+    billingGroupListElement_arn,+    billingGroupListElement_computationPreference,+    billingGroupListElement_creationTime,+    billingGroupListElement_description,+    billingGroupListElement_lastModifiedTime,+    billingGroupListElement_name,+    billingGroupListElement_primaryAccountId,+    billingGroupListElement_size,+    billingGroupListElement_status,+    billingGroupListElement_statusReason,++    -- * ComputationPreference+    ComputationPreference (..),+    newComputationPreference,+    computationPreference_pricingPlanArn,++    -- * CreateFreeTierConfig+    CreateFreeTierConfig (..),+    newCreateFreeTierConfig,+    createFreeTierConfig_activated,++    -- * CreateTieringInput+    CreateTieringInput (..),+    newCreateTieringInput,+    createTieringInput_freeTier,++    -- * CustomLineItemBillingPeriodRange+    CustomLineItemBillingPeriodRange (..),+    newCustomLineItemBillingPeriodRange,+    customLineItemBillingPeriodRange_exclusiveEndBillingPeriod,+    customLineItemBillingPeriodRange_inclusiveStartBillingPeriod,++    -- * CustomLineItemChargeDetails+    CustomLineItemChargeDetails (..),+    newCustomLineItemChargeDetails,+    customLineItemChargeDetails_flat,+    customLineItemChargeDetails_percentage,+    customLineItemChargeDetails_type,++    -- * CustomLineItemFlatChargeDetails+    CustomLineItemFlatChargeDetails (..),+    newCustomLineItemFlatChargeDetails,+    customLineItemFlatChargeDetails_chargeValue,++    -- * CustomLineItemListElement+    CustomLineItemListElement (..),+    newCustomLineItemListElement,+    customLineItemListElement_arn,+    customLineItemListElement_associationSize,+    customLineItemListElement_billingGroupArn,+    customLineItemListElement_chargeDetails,+    customLineItemListElement_creationTime,+    customLineItemListElement_currencyCode,+    customLineItemListElement_description,+    customLineItemListElement_lastModifiedTime,+    customLineItemListElement_name,+    customLineItemListElement_productCode,++    -- * CustomLineItemPercentageChargeDetails+    CustomLineItemPercentageChargeDetails (..),+    newCustomLineItemPercentageChargeDetails,+    customLineItemPercentageChargeDetails_associatedValues,+    customLineItemPercentageChargeDetails_percentageValue,++    -- * CustomLineItemVersionListElement+    CustomLineItemVersionListElement (..),+    newCustomLineItemVersionListElement,+    customLineItemVersionListElement_associationSize,+    customLineItemVersionListElement_billingGroupArn,+    customLineItemVersionListElement_chargeDetails,+    customLineItemVersionListElement_creationTime,+    customLineItemVersionListElement_currencyCode,+    customLineItemVersionListElement_description,+    customLineItemVersionListElement_endBillingPeriod,+    customLineItemVersionListElement_lastModifiedTime,+    customLineItemVersionListElement_name,+    customLineItemVersionListElement_productCode,+    customLineItemVersionListElement_startBillingPeriod,++    -- * DisassociateResourceResponseElement+    DisassociateResourceResponseElement (..),+    newDisassociateResourceResponseElement,+    disassociateResourceResponseElement_arn,+    disassociateResourceResponseElement_error,++    -- * FreeTierConfig+    FreeTierConfig (..),+    newFreeTierConfig,+    freeTierConfig_activated,++    -- * ListAccountAssociationsFilter+    ListAccountAssociationsFilter (..),+    newListAccountAssociationsFilter,+    listAccountAssociationsFilter_accountId,+    listAccountAssociationsFilter_association,++    -- * ListBillingGroupCostReportsFilter+    ListBillingGroupCostReportsFilter (..),+    newListBillingGroupCostReportsFilter,+    listBillingGroupCostReportsFilter_billingGroupArns,++    -- * ListBillingGroupsFilter+    ListBillingGroupsFilter (..),+    newListBillingGroupsFilter,+    listBillingGroupsFilter_arns,+    listBillingGroupsFilter_pricingPlan,++    -- * ListCustomLineItemChargeDetails+    ListCustomLineItemChargeDetails (..),+    newListCustomLineItemChargeDetails,+    listCustomLineItemChargeDetails_flat,+    listCustomLineItemChargeDetails_percentage,+    listCustomLineItemChargeDetails_type,++    -- * ListCustomLineItemFlatChargeDetails+    ListCustomLineItemFlatChargeDetails (..),+    newListCustomLineItemFlatChargeDetails,+    listCustomLineItemFlatChargeDetails_chargeValue,++    -- * ListCustomLineItemPercentageChargeDetails+    ListCustomLineItemPercentageChargeDetails (..),+    newListCustomLineItemPercentageChargeDetails,+    listCustomLineItemPercentageChargeDetails_percentageValue,++    -- * ListCustomLineItemVersionsBillingPeriodRangeFilter+    ListCustomLineItemVersionsBillingPeriodRangeFilter (..),+    newListCustomLineItemVersionsBillingPeriodRangeFilter,+    listCustomLineItemVersionsBillingPeriodRangeFilter_endBillingPeriod,+    listCustomLineItemVersionsBillingPeriodRangeFilter_startBillingPeriod,++    -- * ListCustomLineItemVersionsFilter+    ListCustomLineItemVersionsFilter (..),+    newListCustomLineItemVersionsFilter,+    listCustomLineItemVersionsFilter_billingPeriodRange,++    -- * ListCustomLineItemsFilter+    ListCustomLineItemsFilter (..),+    newListCustomLineItemsFilter,+    listCustomLineItemsFilter_arns,+    listCustomLineItemsFilter_billingGroups,+    listCustomLineItemsFilter_names,++    -- * ListPricingPlansFilter+    ListPricingPlansFilter (..),+    newListPricingPlansFilter,+    listPricingPlansFilter_arns,++    -- * ListPricingRulesFilter+    ListPricingRulesFilter (..),+    newListPricingRulesFilter,+    listPricingRulesFilter_arns,++    -- * ListResourcesAssociatedToCustomLineItemFilter+    ListResourcesAssociatedToCustomLineItemFilter (..),+    newListResourcesAssociatedToCustomLineItemFilter,+    listResourcesAssociatedToCustomLineItemFilter_relationship,++    -- * ListResourcesAssociatedToCustomLineItemResponseElement+    ListResourcesAssociatedToCustomLineItemResponseElement (..),+    newListResourcesAssociatedToCustomLineItemResponseElement,+    listResourcesAssociatedToCustomLineItemResponseElement_arn,+    listResourcesAssociatedToCustomLineItemResponseElement_endBillingPeriod,+    listResourcesAssociatedToCustomLineItemResponseElement_relationship,++    -- * PricingPlanListElement+    PricingPlanListElement (..),+    newPricingPlanListElement,+    pricingPlanListElement_arn,+    pricingPlanListElement_creationTime,+    pricingPlanListElement_description,+    pricingPlanListElement_lastModifiedTime,+    pricingPlanListElement_name,+    pricingPlanListElement_size,++    -- * PricingRuleListElement+    PricingRuleListElement (..),+    newPricingRuleListElement,+    pricingRuleListElement_arn,+    pricingRuleListElement_associatedPricingPlanCount,+    pricingRuleListElement_billingEntity,+    pricingRuleListElement_creationTime,+    pricingRuleListElement_description,+    pricingRuleListElement_lastModifiedTime,+    pricingRuleListElement_modifierPercentage,+    pricingRuleListElement_name,+    pricingRuleListElement_scope,+    pricingRuleListElement_service,+    pricingRuleListElement_tiering,+    pricingRuleListElement_type,++    -- * Tiering+    Tiering (..),+    newTiering,+    tiering_freeTier,++    -- * UpdateCustomLineItemChargeDetails+    UpdateCustomLineItemChargeDetails (..),+    newUpdateCustomLineItemChargeDetails,+    updateCustomLineItemChargeDetails_flat,+    updateCustomLineItemChargeDetails_percentage,++    -- * UpdateCustomLineItemFlatChargeDetails+    UpdateCustomLineItemFlatChargeDetails (..),+    newUpdateCustomLineItemFlatChargeDetails,+    updateCustomLineItemFlatChargeDetails_chargeValue,++    -- * UpdateCustomLineItemPercentageChargeDetails+    UpdateCustomLineItemPercentageChargeDetails (..),+    newUpdateCustomLineItemPercentageChargeDetails,+    updateCustomLineItemPercentageChargeDetails_percentageValue,++    -- * UpdateFreeTierConfig+    UpdateFreeTierConfig (..),+    newUpdateFreeTierConfig,+    updateFreeTierConfig_activated,++    -- * UpdateTieringInput+    UpdateTieringInput (..),+    newUpdateTieringInput,+    updateTieringInput_freeTier,+  )+where++import Amazonka.BillingConductor.Types.AccountAssociationsListElement+import Amazonka.BillingConductor.Types.AccountGrouping+import Amazonka.BillingConductor.Types.AssociateResourceError+import Amazonka.BillingConductor.Types.AssociateResourceErrorReason+import Amazonka.BillingConductor.Types.AssociateResourceResponseElement+import Amazonka.BillingConductor.Types.BillingGroupCostReportElement+import Amazonka.BillingConductor.Types.BillingGroupListElement+import Amazonka.BillingConductor.Types.BillingGroupStatus+import Amazonka.BillingConductor.Types.ComputationPreference+import Amazonka.BillingConductor.Types.CreateFreeTierConfig+import Amazonka.BillingConductor.Types.CreateTieringInput+import Amazonka.BillingConductor.Types.CurrencyCode+import Amazonka.BillingConductor.Types.CustomLineItemBillingPeriodRange+import Amazonka.BillingConductor.Types.CustomLineItemChargeDetails+import Amazonka.BillingConductor.Types.CustomLineItemFlatChargeDetails+import Amazonka.BillingConductor.Types.CustomLineItemListElement+import Amazonka.BillingConductor.Types.CustomLineItemPercentageChargeDetails+import Amazonka.BillingConductor.Types.CustomLineItemRelationship+import Amazonka.BillingConductor.Types.CustomLineItemType+import Amazonka.BillingConductor.Types.CustomLineItemVersionListElement+import Amazonka.BillingConductor.Types.DisassociateResourceResponseElement+import Amazonka.BillingConductor.Types.FreeTierConfig+import Amazonka.BillingConductor.Types.ListAccountAssociationsFilter+import Amazonka.BillingConductor.Types.ListBillingGroupCostReportsFilter+import Amazonka.BillingConductor.Types.ListBillingGroupsFilter+import Amazonka.BillingConductor.Types.ListCustomLineItemChargeDetails+import Amazonka.BillingConductor.Types.ListCustomLineItemFlatChargeDetails+import Amazonka.BillingConductor.Types.ListCustomLineItemPercentageChargeDetails+import Amazonka.BillingConductor.Types.ListCustomLineItemVersionsBillingPeriodRangeFilter+import Amazonka.BillingConductor.Types.ListCustomLineItemVersionsFilter+import Amazonka.BillingConductor.Types.ListCustomLineItemsFilter+import Amazonka.BillingConductor.Types.ListPricingPlansFilter+import Amazonka.BillingConductor.Types.ListPricingRulesFilter+import Amazonka.BillingConductor.Types.ListResourcesAssociatedToCustomLineItemFilter+import Amazonka.BillingConductor.Types.ListResourcesAssociatedToCustomLineItemResponseElement+import Amazonka.BillingConductor.Types.PricingPlanListElement+import Amazonka.BillingConductor.Types.PricingRuleListElement+import Amazonka.BillingConductor.Types.PricingRuleScope+import Amazonka.BillingConductor.Types.PricingRuleType+import Amazonka.BillingConductor.Types.Tiering+import Amazonka.BillingConductor.Types.UpdateCustomLineItemChargeDetails+import Amazonka.BillingConductor.Types.UpdateCustomLineItemFlatChargeDetails+import Amazonka.BillingConductor.Types.UpdateCustomLineItemPercentageChargeDetails+import Amazonka.BillingConductor.Types.UpdateFreeTierConfig+import Amazonka.BillingConductor.Types.UpdateTieringInput+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2021-07-30@ of the Amazon BillingConductor SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "BillingConductor",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "billingconductor",+      Core.signingName = "billingconductor",+      Core.version = "2021-07-30",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "BillingConductor",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | You do not have sufficient access to perform this action.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | You can cause an inconsistent state by updating or deleting a resource.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | An unexpected error occurred while processing a request.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | The request references a resource that doesn\'t exist.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | The request would cause a service limit to exceed.+_ServiceLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceLimitExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceLimitExceededException"+    Prelude.. Core.hasStatus 402++-- | The request was denied due to request throttling.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"+    Prelude.. Core.hasStatus 429++-- | The input doesn\'t match with the constraints specified by Amazon Web+-- Services services.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/BillingConductor/Types/AccountAssociationsListElement.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.AccountAssociationsListElement+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.AccountAssociationsListElement where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of a linked account.+--+-- /See:/ 'newAccountAssociationsListElement' smart constructor.+data AccountAssociationsListElement = AccountAssociationsListElement'+  { -- | The Amazon Web Services account email.+    accountEmail :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The associating array of account IDs.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services account name.+    accountName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The Billing Group Arn that the linked account is associated to.+    billingGroupArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccountAssociationsListElement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountEmail', 'accountAssociationsListElement_accountEmail' - The Amazon Web Services account email.+--+-- 'accountId', 'accountAssociationsListElement_accountId' - The associating array of account IDs.+--+-- 'accountName', 'accountAssociationsListElement_accountName' - The Amazon Web Services account name.+--+-- 'billingGroupArn', 'accountAssociationsListElement_billingGroupArn' - The Billing Group Arn that the linked account is associated to.+newAccountAssociationsListElement ::+  AccountAssociationsListElement+newAccountAssociationsListElement =+  AccountAssociationsListElement'+    { accountEmail =+        Prelude.Nothing,+      accountId = Prelude.Nothing,+      accountName = Prelude.Nothing,+      billingGroupArn = Prelude.Nothing+    }++-- | The Amazon Web Services account email.+accountAssociationsListElement_accountEmail :: Lens.Lens' AccountAssociationsListElement (Prelude.Maybe Prelude.Text)+accountAssociationsListElement_accountEmail = Lens.lens (\AccountAssociationsListElement' {accountEmail} -> accountEmail) (\s@AccountAssociationsListElement' {} a -> s {accountEmail = a} :: AccountAssociationsListElement) Prelude.. Lens.mapping Data._Sensitive++-- | The associating array of account IDs.+accountAssociationsListElement_accountId :: Lens.Lens' AccountAssociationsListElement (Prelude.Maybe Prelude.Text)+accountAssociationsListElement_accountId = Lens.lens (\AccountAssociationsListElement' {accountId} -> accountId) (\s@AccountAssociationsListElement' {} a -> s {accountId = a} :: AccountAssociationsListElement)++-- | The Amazon Web Services account name.+accountAssociationsListElement_accountName :: Lens.Lens' AccountAssociationsListElement (Prelude.Maybe Prelude.Text)+accountAssociationsListElement_accountName = Lens.lens (\AccountAssociationsListElement' {accountName} -> accountName) (\s@AccountAssociationsListElement' {} a -> s {accountName = a} :: AccountAssociationsListElement) Prelude.. Lens.mapping Data._Sensitive++-- | The Billing Group Arn that the linked account is associated to.+accountAssociationsListElement_billingGroupArn :: Lens.Lens' AccountAssociationsListElement (Prelude.Maybe Prelude.Text)+accountAssociationsListElement_billingGroupArn = Lens.lens (\AccountAssociationsListElement' {billingGroupArn} -> billingGroupArn) (\s@AccountAssociationsListElement' {} a -> s {billingGroupArn = a} :: AccountAssociationsListElement)++instance Data.FromJSON AccountAssociationsListElement where+  parseJSON =+    Data.withObject+      "AccountAssociationsListElement"+      ( \x ->+          AccountAssociationsListElement'+            Prelude.<$> (x Data..:? "AccountEmail")+            Prelude.<*> (x Data..:? "AccountId")+            Prelude.<*> (x Data..:? "AccountName")+            Prelude.<*> (x Data..:? "BillingGroupArn")+      )++instance+  Prelude.Hashable+    AccountAssociationsListElement+  where+  hashWithSalt+    _salt+    AccountAssociationsListElement' {..} =+      _salt+        `Prelude.hashWithSalt` accountEmail+        `Prelude.hashWithSalt` accountId+        `Prelude.hashWithSalt` accountName+        `Prelude.hashWithSalt` billingGroupArn++instance+  Prelude.NFData+    AccountAssociationsListElement+  where+  rnf AccountAssociationsListElement' {..} =+    Prelude.rnf accountEmail+      `Prelude.seq` Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf accountName+      `Prelude.seq` Prelude.rnf billingGroupArn
+ gen/Amazonka/BillingConductor/Types/AccountGrouping.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.AccountGrouping+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.AccountGrouping where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The set of accounts that will be under the billing group. The set of+-- accounts resemble the linked accounts in a consolidated family.+--+-- /See:/ 'newAccountGrouping' smart constructor.+data AccountGrouping = AccountGrouping'+  { -- | The account IDs that make up the billing group. Account IDs must be a+    -- part of the consolidated billing family, and not associated with another+    -- billing group.+    linkedAccountIds :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccountGrouping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'linkedAccountIds', 'accountGrouping_linkedAccountIds' - The account IDs that make up the billing group. Account IDs must be a+-- part of the consolidated billing family, and not associated with another+-- billing group.+newAccountGrouping ::+  -- | 'linkedAccountIds'+  Prelude.NonEmpty Prelude.Text ->+  AccountGrouping+newAccountGrouping pLinkedAccountIds_ =+  AccountGrouping'+    { linkedAccountIds =+        Lens.coerced Lens.# pLinkedAccountIds_+    }++-- | The account IDs that make up the billing group. Account IDs must be a+-- part of the consolidated billing family, and not associated with another+-- billing group.+accountGrouping_linkedAccountIds :: Lens.Lens' AccountGrouping (Prelude.NonEmpty Prelude.Text)+accountGrouping_linkedAccountIds = Lens.lens (\AccountGrouping' {linkedAccountIds} -> linkedAccountIds) (\s@AccountGrouping' {} a -> s {linkedAccountIds = a} :: AccountGrouping) Prelude.. Lens.coerced++instance Prelude.Hashable AccountGrouping where+  hashWithSalt _salt AccountGrouping' {..} =+    _salt `Prelude.hashWithSalt` linkedAccountIds++instance Prelude.NFData AccountGrouping where+  rnf AccountGrouping' {..} =+    Prelude.rnf linkedAccountIds++instance Data.ToJSON AccountGrouping where+  toJSON AccountGrouping' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("LinkedAccountIds" Data..= linkedAccountIds)+          ]+      )
+ gen/Amazonka/BillingConductor/Types/AssociateResourceError.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.AssociateResourceError+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.AssociateResourceError where++import Amazonka.BillingConductor.Types.AssociateResourceErrorReason+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of a resource association error.+--+-- /See:/ 'newAssociateResourceError' smart constructor.+data AssociateResourceError = AssociateResourceError'+  { -- | The reason why the resource association failed.+    message :: Prelude.Maybe Prelude.Text,+    -- | A static error code that\'s used to classify the type of failure.+    reason :: Prelude.Maybe AssociateResourceErrorReason+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateResourceError' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'message', 'associateResourceError_message' - The reason why the resource association failed.+--+-- 'reason', 'associateResourceError_reason' - A static error code that\'s used to classify the type of failure.+newAssociateResourceError ::+  AssociateResourceError+newAssociateResourceError =+  AssociateResourceError'+    { message = Prelude.Nothing,+      reason = Prelude.Nothing+    }++-- | The reason why the resource association failed.+associateResourceError_message :: Lens.Lens' AssociateResourceError (Prelude.Maybe Prelude.Text)+associateResourceError_message = Lens.lens (\AssociateResourceError' {message} -> message) (\s@AssociateResourceError' {} a -> s {message = a} :: AssociateResourceError)++-- | A static error code that\'s used to classify the type of failure.+associateResourceError_reason :: Lens.Lens' AssociateResourceError (Prelude.Maybe AssociateResourceErrorReason)+associateResourceError_reason = Lens.lens (\AssociateResourceError' {reason} -> reason) (\s@AssociateResourceError' {} a -> s {reason = a} :: AssociateResourceError)++instance Data.FromJSON AssociateResourceError where+  parseJSON =+    Data.withObject+      "AssociateResourceError"+      ( \x ->+          AssociateResourceError'+            Prelude.<$> (x Data..:? "Message")+            Prelude.<*> (x Data..:? "Reason")+      )++instance Prelude.Hashable AssociateResourceError where+  hashWithSalt _salt AssociateResourceError' {..} =+    _salt+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` reason++instance Prelude.NFData AssociateResourceError where+  rnf AssociateResourceError' {..} =+    Prelude.rnf message+      `Prelude.seq` Prelude.rnf reason
+ gen/Amazonka/BillingConductor/Types/AssociateResourceErrorReason.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.AssociateResourceErrorReason+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.AssociateResourceErrorReason+  ( AssociateResourceErrorReason+      ( ..,+        AssociateResourceErrorReason_ILLEGAL_CUSTOMLINEITEM,+        AssociateResourceErrorReason_INTERNAL_SERVER_EXCEPTION,+        AssociateResourceErrorReason_INVALID_ARN,+        AssociateResourceErrorReason_INVALID_BILLING_PERIOD_RANGE,+        AssociateResourceErrorReason_SERVICE_LIMIT_EXCEEDED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AssociateResourceErrorReason = AssociateResourceErrorReason'+  { fromAssociateResourceErrorReason ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern AssociateResourceErrorReason_ILLEGAL_CUSTOMLINEITEM :: AssociateResourceErrorReason+pattern AssociateResourceErrorReason_ILLEGAL_CUSTOMLINEITEM = AssociateResourceErrorReason' "ILLEGAL_CUSTOMLINEITEM"++pattern AssociateResourceErrorReason_INTERNAL_SERVER_EXCEPTION :: AssociateResourceErrorReason+pattern AssociateResourceErrorReason_INTERNAL_SERVER_EXCEPTION = AssociateResourceErrorReason' "INTERNAL_SERVER_EXCEPTION"++pattern AssociateResourceErrorReason_INVALID_ARN :: AssociateResourceErrorReason+pattern AssociateResourceErrorReason_INVALID_ARN = AssociateResourceErrorReason' "INVALID_ARN"++pattern AssociateResourceErrorReason_INVALID_BILLING_PERIOD_RANGE :: AssociateResourceErrorReason+pattern AssociateResourceErrorReason_INVALID_BILLING_PERIOD_RANGE = AssociateResourceErrorReason' "INVALID_BILLING_PERIOD_RANGE"++pattern AssociateResourceErrorReason_SERVICE_LIMIT_EXCEEDED :: AssociateResourceErrorReason+pattern AssociateResourceErrorReason_SERVICE_LIMIT_EXCEEDED = AssociateResourceErrorReason' "SERVICE_LIMIT_EXCEEDED"++{-# COMPLETE+  AssociateResourceErrorReason_ILLEGAL_CUSTOMLINEITEM,+  AssociateResourceErrorReason_INTERNAL_SERVER_EXCEPTION,+  AssociateResourceErrorReason_INVALID_ARN,+  AssociateResourceErrorReason_INVALID_BILLING_PERIOD_RANGE,+  AssociateResourceErrorReason_SERVICE_LIMIT_EXCEEDED,+  AssociateResourceErrorReason'+  #-}
+ gen/Amazonka/BillingConductor/Types/AssociateResourceResponseElement.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.AssociateResourceResponseElement+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.AssociateResourceResponseElement where++import Amazonka.BillingConductor.Types.AssociateResourceError+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A resource association result for a percentage custom line item.+--+-- /See:/ 'newAssociateResourceResponseElement' smart constructor.+data AssociateResourceResponseElement = AssociateResourceResponseElement'+  { -- | The resource ARN that was associated to the custom line item.+    arn :: Prelude.Maybe Prelude.Text,+    -- | An @AssociateResourceError@ that will populate if the resource+    -- association fails.+    error :: Prelude.Maybe AssociateResourceError+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateResourceResponseElement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'associateResourceResponseElement_arn' - The resource ARN that was associated to the custom line item.+--+-- 'error', 'associateResourceResponseElement_error' - An @AssociateResourceError@ that will populate if the resource+-- association fails.+newAssociateResourceResponseElement ::+  AssociateResourceResponseElement+newAssociateResourceResponseElement =+  AssociateResourceResponseElement'+    { arn =+        Prelude.Nothing,+      error = Prelude.Nothing+    }++-- | The resource ARN that was associated to the custom line item.+associateResourceResponseElement_arn :: Lens.Lens' AssociateResourceResponseElement (Prelude.Maybe Prelude.Text)+associateResourceResponseElement_arn = Lens.lens (\AssociateResourceResponseElement' {arn} -> arn) (\s@AssociateResourceResponseElement' {} a -> s {arn = a} :: AssociateResourceResponseElement)++-- | An @AssociateResourceError@ that will populate if the resource+-- association fails.+associateResourceResponseElement_error :: Lens.Lens' AssociateResourceResponseElement (Prelude.Maybe AssociateResourceError)+associateResourceResponseElement_error = Lens.lens (\AssociateResourceResponseElement' {error} -> error) (\s@AssociateResourceResponseElement' {} a -> s {error = a} :: AssociateResourceResponseElement)++instance+  Data.FromJSON+    AssociateResourceResponseElement+  where+  parseJSON =+    Data.withObject+      "AssociateResourceResponseElement"+      ( \x ->+          AssociateResourceResponseElement'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "Error")+      )++instance+  Prelude.Hashable+    AssociateResourceResponseElement+  where+  hashWithSalt+    _salt+    AssociateResourceResponseElement' {..} =+      _salt+        `Prelude.hashWithSalt` arn+        `Prelude.hashWithSalt` error++instance+  Prelude.NFData+    AssociateResourceResponseElement+  where+  rnf AssociateResourceResponseElement' {..} =+    Prelude.rnf arn `Prelude.seq` Prelude.rnf error
+ gen/Amazonka/BillingConductor/Types/BillingGroupCostReportElement.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.BillingGroupCostReportElement+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.BillingGroupCostReportElement where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A summary report of actual Amazon Web Services charges and calculated+-- Amazon Web Services charges, based on the associated pricing plan of a+-- billing group.+--+-- /See:/ 'newBillingGroupCostReportElement' smart constructor.+data BillingGroupCostReportElement = BillingGroupCostReportElement'+  { -- | The actual Amazon Web Services charges for the billing group.+    aWSCost :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of a billing group.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The displayed currency.+    currency :: Prelude.Maybe Prelude.Text,+    -- | The billing group margin.+    margin :: Prelude.Maybe Prelude.Text,+    -- | The percentage of billing group margin.+    marginPercentage :: Prelude.Maybe Prelude.Text,+    -- | The hypothetical Amazon Web Services charges based on the associated+    -- pricing plan of a billing group.+    proformaCost :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BillingGroupCostReportElement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'aWSCost', 'billingGroupCostReportElement_aWSCost' - The actual Amazon Web Services charges for the billing group.+--+-- 'arn', 'billingGroupCostReportElement_arn' - The Amazon Resource Name (ARN) of a billing group.+--+-- 'currency', 'billingGroupCostReportElement_currency' - The displayed currency.+--+-- 'margin', 'billingGroupCostReportElement_margin' - The billing group margin.+--+-- 'marginPercentage', 'billingGroupCostReportElement_marginPercentage' - The percentage of billing group margin.+--+-- 'proformaCost', 'billingGroupCostReportElement_proformaCost' - The hypothetical Amazon Web Services charges based on the associated+-- pricing plan of a billing group.+newBillingGroupCostReportElement ::+  BillingGroupCostReportElement+newBillingGroupCostReportElement =+  BillingGroupCostReportElement'+    { aWSCost =+        Prelude.Nothing,+      arn = Prelude.Nothing,+      currency = Prelude.Nothing,+      margin = Prelude.Nothing,+      marginPercentage = Prelude.Nothing,+      proformaCost = Prelude.Nothing+    }++-- | The actual Amazon Web Services charges for the billing group.+billingGroupCostReportElement_aWSCost :: Lens.Lens' BillingGroupCostReportElement (Prelude.Maybe Prelude.Text)+billingGroupCostReportElement_aWSCost = Lens.lens (\BillingGroupCostReportElement' {aWSCost} -> aWSCost) (\s@BillingGroupCostReportElement' {} a -> s {aWSCost = a} :: BillingGroupCostReportElement)++-- | The Amazon Resource Name (ARN) of a billing group.+billingGroupCostReportElement_arn :: Lens.Lens' BillingGroupCostReportElement (Prelude.Maybe Prelude.Text)+billingGroupCostReportElement_arn = Lens.lens (\BillingGroupCostReportElement' {arn} -> arn) (\s@BillingGroupCostReportElement' {} a -> s {arn = a} :: BillingGroupCostReportElement)++-- | The displayed currency.+billingGroupCostReportElement_currency :: Lens.Lens' BillingGroupCostReportElement (Prelude.Maybe Prelude.Text)+billingGroupCostReportElement_currency = Lens.lens (\BillingGroupCostReportElement' {currency} -> currency) (\s@BillingGroupCostReportElement' {} a -> s {currency = a} :: BillingGroupCostReportElement)++-- | The billing group margin.+billingGroupCostReportElement_margin :: Lens.Lens' BillingGroupCostReportElement (Prelude.Maybe Prelude.Text)+billingGroupCostReportElement_margin = Lens.lens (\BillingGroupCostReportElement' {margin} -> margin) (\s@BillingGroupCostReportElement' {} a -> s {margin = a} :: BillingGroupCostReportElement)++-- | The percentage of billing group margin.+billingGroupCostReportElement_marginPercentage :: Lens.Lens' BillingGroupCostReportElement (Prelude.Maybe Prelude.Text)+billingGroupCostReportElement_marginPercentage = Lens.lens (\BillingGroupCostReportElement' {marginPercentage} -> marginPercentage) (\s@BillingGroupCostReportElement' {} a -> s {marginPercentage = a} :: BillingGroupCostReportElement)++-- | The hypothetical Amazon Web Services charges based on the associated+-- pricing plan of a billing group.+billingGroupCostReportElement_proformaCost :: Lens.Lens' BillingGroupCostReportElement (Prelude.Maybe Prelude.Text)+billingGroupCostReportElement_proformaCost = Lens.lens (\BillingGroupCostReportElement' {proformaCost} -> proformaCost) (\s@BillingGroupCostReportElement' {} a -> s {proformaCost = a} :: BillingGroupCostReportElement)++instance Data.FromJSON BillingGroupCostReportElement where+  parseJSON =+    Data.withObject+      "BillingGroupCostReportElement"+      ( \x ->+          BillingGroupCostReportElement'+            Prelude.<$> (x Data..:? "AWSCost")+            Prelude.<*> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "Currency")+            Prelude.<*> (x Data..:? "Margin")+            Prelude.<*> (x Data..:? "MarginPercentage")+            Prelude.<*> (x Data..:? "ProformaCost")+      )++instance+  Prelude.Hashable+    BillingGroupCostReportElement+  where+  hashWithSalt _salt BillingGroupCostReportElement' {..} =+    _salt+      `Prelude.hashWithSalt` aWSCost+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` currency+      `Prelude.hashWithSalt` margin+      `Prelude.hashWithSalt` marginPercentage+      `Prelude.hashWithSalt` proformaCost++instance Prelude.NFData BillingGroupCostReportElement where+  rnf BillingGroupCostReportElement' {..} =+    Prelude.rnf aWSCost+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf currency+      `Prelude.seq` Prelude.rnf margin+      `Prelude.seq` Prelude.rnf marginPercentage+      `Prelude.seq` Prelude.rnf proformaCost
+ gen/Amazonka/BillingConductor/Types/BillingGroupListElement.hs view
@@ -0,0 +1,184 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.BillingGroupListElement+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.BillingGroupListElement where++import Amazonka.BillingConductor.Types.BillingGroupStatus+import Amazonka.BillingConductor.Types.ComputationPreference+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of a billing group.+--+-- /See:/ 'newBillingGroupListElement' smart constructor.+data BillingGroupListElement = BillingGroupListElement'+  { -- | The Amazon Resource Number (ARN) that can be used to uniquely identify+    -- the billing group.+    arn :: Prelude.Maybe Prelude.Text,+    computationPreference :: Prelude.Maybe ComputationPreference,+    -- | The time when the billing group was created.+    creationTime :: Prelude.Maybe Prelude.Integer,+    -- | The description of the billing group.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The most recent time when the billing group was modified.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | The name of the billing group.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The account ID that serves as the main account in a billing group.+    primaryAccountId :: Prelude.Maybe Prelude.Text,+    -- | The number of accounts in the particular billing group.+    size :: Prelude.Maybe Prelude.Natural,+    -- | The billing group status. Only one of the valid values can be used.+    status :: Prelude.Maybe BillingGroupStatus,+    -- | The reason why the billing group is in its current status.+    statusReason :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BillingGroupListElement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'billingGroupListElement_arn' - The Amazon Resource Number (ARN) that can be used to uniquely identify+-- the billing group.+--+-- 'computationPreference', 'billingGroupListElement_computationPreference' - Undocumented member.+--+-- 'creationTime', 'billingGroupListElement_creationTime' - The time when the billing group was created.+--+-- 'description', 'billingGroupListElement_description' - The description of the billing group.+--+-- 'lastModifiedTime', 'billingGroupListElement_lastModifiedTime' - The most recent time when the billing group was modified.+--+-- 'name', 'billingGroupListElement_name' - The name of the billing group.+--+-- 'primaryAccountId', 'billingGroupListElement_primaryAccountId' - The account ID that serves as the main account in a billing group.+--+-- 'size', 'billingGroupListElement_size' - The number of accounts in the particular billing group.+--+-- 'status', 'billingGroupListElement_status' - The billing group status. Only one of the valid values can be used.+--+-- 'statusReason', 'billingGroupListElement_statusReason' - The reason why the billing group is in its current status.+newBillingGroupListElement ::+  BillingGroupListElement+newBillingGroupListElement =+  BillingGroupListElement'+    { arn = Prelude.Nothing,+      computationPreference = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      name = Prelude.Nothing,+      primaryAccountId = Prelude.Nothing,+      size = Prelude.Nothing,+      status = Prelude.Nothing,+      statusReason = Prelude.Nothing+    }++-- | The Amazon Resource Number (ARN) that can be used to uniquely identify+-- the billing group.+billingGroupListElement_arn :: Lens.Lens' BillingGroupListElement (Prelude.Maybe Prelude.Text)+billingGroupListElement_arn = Lens.lens (\BillingGroupListElement' {arn} -> arn) (\s@BillingGroupListElement' {} a -> s {arn = a} :: BillingGroupListElement)++-- | Undocumented member.+billingGroupListElement_computationPreference :: Lens.Lens' BillingGroupListElement (Prelude.Maybe ComputationPreference)+billingGroupListElement_computationPreference = Lens.lens (\BillingGroupListElement' {computationPreference} -> computationPreference) (\s@BillingGroupListElement' {} a -> s {computationPreference = a} :: BillingGroupListElement)++-- | The time when the billing group was created.+billingGroupListElement_creationTime :: Lens.Lens' BillingGroupListElement (Prelude.Maybe Prelude.Integer)+billingGroupListElement_creationTime = Lens.lens (\BillingGroupListElement' {creationTime} -> creationTime) (\s@BillingGroupListElement' {} a -> s {creationTime = a} :: BillingGroupListElement)++-- | The description of the billing group.+billingGroupListElement_description :: Lens.Lens' BillingGroupListElement (Prelude.Maybe Prelude.Text)+billingGroupListElement_description = Lens.lens (\BillingGroupListElement' {description} -> description) (\s@BillingGroupListElement' {} a -> s {description = a} :: BillingGroupListElement) Prelude.. Lens.mapping Data._Sensitive++-- | The most recent time when the billing group was modified.+billingGroupListElement_lastModifiedTime :: Lens.Lens' BillingGroupListElement (Prelude.Maybe Prelude.Integer)+billingGroupListElement_lastModifiedTime = Lens.lens (\BillingGroupListElement' {lastModifiedTime} -> lastModifiedTime) (\s@BillingGroupListElement' {} a -> s {lastModifiedTime = a} :: BillingGroupListElement)++-- | The name of the billing group.+billingGroupListElement_name :: Lens.Lens' BillingGroupListElement (Prelude.Maybe Prelude.Text)+billingGroupListElement_name = Lens.lens (\BillingGroupListElement' {name} -> name) (\s@BillingGroupListElement' {} a -> s {name = a} :: BillingGroupListElement) Prelude.. Lens.mapping Data._Sensitive++-- | The account ID that serves as the main account in a billing group.+billingGroupListElement_primaryAccountId :: Lens.Lens' BillingGroupListElement (Prelude.Maybe Prelude.Text)+billingGroupListElement_primaryAccountId = Lens.lens (\BillingGroupListElement' {primaryAccountId} -> primaryAccountId) (\s@BillingGroupListElement' {} a -> s {primaryAccountId = a} :: BillingGroupListElement)++-- | The number of accounts in the particular billing group.+billingGroupListElement_size :: Lens.Lens' BillingGroupListElement (Prelude.Maybe Prelude.Natural)+billingGroupListElement_size = Lens.lens (\BillingGroupListElement' {size} -> size) (\s@BillingGroupListElement' {} a -> s {size = a} :: BillingGroupListElement)++-- | The billing group status. Only one of the valid values can be used.+billingGroupListElement_status :: Lens.Lens' BillingGroupListElement (Prelude.Maybe BillingGroupStatus)+billingGroupListElement_status = Lens.lens (\BillingGroupListElement' {status} -> status) (\s@BillingGroupListElement' {} a -> s {status = a} :: BillingGroupListElement)++-- | The reason why the billing group is in its current status.+billingGroupListElement_statusReason :: Lens.Lens' BillingGroupListElement (Prelude.Maybe Prelude.Text)+billingGroupListElement_statusReason = Lens.lens (\BillingGroupListElement' {statusReason} -> statusReason) (\s@BillingGroupListElement' {} a -> s {statusReason = a} :: BillingGroupListElement)++instance Data.FromJSON BillingGroupListElement where+  parseJSON =+    Data.withObject+      "BillingGroupListElement"+      ( \x ->+          BillingGroupListElement'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "ComputationPreference")+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "LastModifiedTime")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "PrimaryAccountId")+            Prelude.<*> (x Data..:? "Size")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "StatusReason")+      )++instance Prelude.Hashable BillingGroupListElement where+  hashWithSalt _salt BillingGroupListElement' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` computationPreference+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastModifiedTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` primaryAccountId+      `Prelude.hashWithSalt` size+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` statusReason++instance Prelude.NFData BillingGroupListElement where+  rnf BillingGroupListElement' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf computationPreference+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf primaryAccountId+      `Prelude.seq` Prelude.rnf size+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf statusReason
+ gen/Amazonka/BillingConductor/Types/BillingGroupStatus.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.BillingGroupStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.BillingGroupStatus+  ( BillingGroupStatus+      ( ..,+        BillingGroupStatus_ACTIVE,+        BillingGroupStatus_PRIMARY_ACCOUNT_MISSING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BillingGroupStatus = BillingGroupStatus'+  { fromBillingGroupStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BillingGroupStatus_ACTIVE :: BillingGroupStatus+pattern BillingGroupStatus_ACTIVE = BillingGroupStatus' "ACTIVE"++pattern BillingGroupStatus_PRIMARY_ACCOUNT_MISSING :: BillingGroupStatus+pattern BillingGroupStatus_PRIMARY_ACCOUNT_MISSING = BillingGroupStatus' "PRIMARY_ACCOUNT_MISSING"++{-# COMPLETE+  BillingGroupStatus_ACTIVE,+  BillingGroupStatus_PRIMARY_ACCOUNT_MISSING,+  BillingGroupStatus'+  #-}
+ gen/Amazonka/BillingConductor/Types/ComputationPreference.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.ComputationPreference+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.ComputationPreference where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The preferences and settings that will be used to compute the Amazon Web+-- Services charges for a billing group.+--+-- /See:/ 'newComputationPreference' smart constructor.+data ComputationPreference = ComputationPreference'+  { -- | The Amazon Resource Name (ARN) of the pricing plan that\'s used to+    -- compute the Amazon Web Services charges for a billing group.+    pricingPlanArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComputationPreference' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'pricingPlanArn', 'computationPreference_pricingPlanArn' - The Amazon Resource Name (ARN) of the pricing plan that\'s used to+-- compute the Amazon Web Services charges for a billing group.+newComputationPreference ::+  -- | 'pricingPlanArn'+  Prelude.Text ->+  ComputationPreference+newComputationPreference pPricingPlanArn_ =+  ComputationPreference'+    { pricingPlanArn =+        pPricingPlanArn_+    }++-- | The Amazon Resource Name (ARN) of the pricing plan that\'s used to+-- compute the Amazon Web Services charges for a billing group.+computationPreference_pricingPlanArn :: Lens.Lens' ComputationPreference Prelude.Text+computationPreference_pricingPlanArn = Lens.lens (\ComputationPreference' {pricingPlanArn} -> pricingPlanArn) (\s@ComputationPreference' {} a -> s {pricingPlanArn = a} :: ComputationPreference)++instance Data.FromJSON ComputationPreference where+  parseJSON =+    Data.withObject+      "ComputationPreference"+      ( \x ->+          ComputationPreference'+            Prelude.<$> (x Data..: "PricingPlanArn")+      )++instance Prelude.Hashable ComputationPreference where+  hashWithSalt _salt ComputationPreference' {..} =+    _salt `Prelude.hashWithSalt` pricingPlanArn++instance Prelude.NFData ComputationPreference where+  rnf ComputationPreference' {..} =+    Prelude.rnf pricingPlanArn++instance Data.ToJSON ComputationPreference where+  toJSON ComputationPreference' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("PricingPlanArn" Data..= pricingPlanArn)+          ]+      )
+ gen/Amazonka/BillingConductor/Types/CreateFreeTierConfig.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.CreateFreeTierConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.CreateFreeTierConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The possible Amazon Web Services Free Tier configurations.+--+-- /See:/ 'newCreateFreeTierConfig' smart constructor.+data CreateFreeTierConfig = CreateFreeTierConfig'+  { -- | Activate or deactivate Amazon Web Services Free Tier.+    activated :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFreeTierConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'activated', 'createFreeTierConfig_activated' - Activate or deactivate Amazon Web Services Free Tier.+newCreateFreeTierConfig ::+  -- | 'activated'+  Prelude.Bool ->+  CreateFreeTierConfig+newCreateFreeTierConfig pActivated_ =+  CreateFreeTierConfig' {activated = pActivated_}++-- | Activate or deactivate Amazon Web Services Free Tier.+createFreeTierConfig_activated :: Lens.Lens' CreateFreeTierConfig Prelude.Bool+createFreeTierConfig_activated = Lens.lens (\CreateFreeTierConfig' {activated} -> activated) (\s@CreateFreeTierConfig' {} a -> s {activated = a} :: CreateFreeTierConfig)++instance Prelude.Hashable CreateFreeTierConfig where+  hashWithSalt _salt CreateFreeTierConfig' {..} =+    _salt `Prelude.hashWithSalt` activated++instance Prelude.NFData CreateFreeTierConfig where+  rnf CreateFreeTierConfig' {..} = Prelude.rnf activated++instance Data.ToJSON CreateFreeTierConfig where+  toJSON CreateFreeTierConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Activated" Data..= activated)]+      )
+ gen/Amazonka/BillingConductor/Types/CreateTieringInput.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.CreateTieringInput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.CreateTieringInput where++import Amazonka.BillingConductor.Types.CreateFreeTierConfig+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The set of tiering configurations for the pricing rule.+--+-- /See:/ 'newCreateTieringInput' smart constructor.+data CreateTieringInput = CreateTieringInput'+  { -- | The possible Amazon Web Services Free Tier configurations.+    freeTier :: CreateFreeTierConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateTieringInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'freeTier', 'createTieringInput_freeTier' - The possible Amazon Web Services Free Tier configurations.+newCreateTieringInput ::+  -- | 'freeTier'+  CreateFreeTierConfig ->+  CreateTieringInput+newCreateTieringInput pFreeTier_ =+  CreateTieringInput' {freeTier = pFreeTier_}++-- | The possible Amazon Web Services Free Tier configurations.+createTieringInput_freeTier :: Lens.Lens' CreateTieringInput CreateFreeTierConfig+createTieringInput_freeTier = Lens.lens (\CreateTieringInput' {freeTier} -> freeTier) (\s@CreateTieringInput' {} a -> s {freeTier = a} :: CreateTieringInput)++instance Prelude.Hashable CreateTieringInput where+  hashWithSalt _salt CreateTieringInput' {..} =+    _salt `Prelude.hashWithSalt` freeTier++instance Prelude.NFData CreateTieringInput where+  rnf CreateTieringInput' {..} = Prelude.rnf freeTier++instance Data.ToJSON CreateTieringInput where+  toJSON CreateTieringInput' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("FreeTier" Data..= freeTier)]+      )
+ gen/Amazonka/BillingConductor/Types/CurrencyCode.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.CurrencyCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.CurrencyCode+  ( CurrencyCode+      ( ..,+        CurrencyCode_CNY,+        CurrencyCode_USD+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CurrencyCode = CurrencyCode'+  { fromCurrencyCode ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern CurrencyCode_CNY :: CurrencyCode+pattern CurrencyCode_CNY = CurrencyCode' "CNY"++pattern CurrencyCode_USD :: CurrencyCode+pattern CurrencyCode_USD = CurrencyCode' "USD"++{-# COMPLETE+  CurrencyCode_CNY,+  CurrencyCode_USD,+  CurrencyCode'+  #-}
+ gen/Amazonka/BillingConductor/Types/CustomLineItemBillingPeriodRange.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.CustomLineItemBillingPeriodRange+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.CustomLineItemBillingPeriodRange where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The billing period range in which the custom line item request will be+-- applied.+--+-- /See:/ 'newCustomLineItemBillingPeriodRange' smart constructor.+data CustomLineItemBillingPeriodRange = CustomLineItemBillingPeriodRange'+  { -- | The inclusive end billing period that defines a billing period range+    -- where a custom line is applied.+    exclusiveEndBillingPeriod :: Prelude.Maybe Prelude.Text,+    -- | The inclusive start billing period that defines a billing period range+    -- where a custom line is applied.+    inclusiveStartBillingPeriod :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomLineItemBillingPeriodRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exclusiveEndBillingPeriod', 'customLineItemBillingPeriodRange_exclusiveEndBillingPeriod' - The inclusive end billing period that defines a billing period range+-- where a custom line is applied.+--+-- 'inclusiveStartBillingPeriod', 'customLineItemBillingPeriodRange_inclusiveStartBillingPeriod' - The inclusive start billing period that defines a billing period range+-- where a custom line is applied.+newCustomLineItemBillingPeriodRange ::+  -- | 'inclusiveStartBillingPeriod'+  Prelude.Text ->+  CustomLineItemBillingPeriodRange+newCustomLineItemBillingPeriodRange+  pInclusiveStartBillingPeriod_ =+    CustomLineItemBillingPeriodRange'+      { exclusiveEndBillingPeriod =+          Prelude.Nothing,+        inclusiveStartBillingPeriod =+          pInclusiveStartBillingPeriod_+      }++-- | The inclusive end billing period that defines a billing period range+-- where a custom line is applied.+customLineItemBillingPeriodRange_exclusiveEndBillingPeriod :: Lens.Lens' CustomLineItemBillingPeriodRange (Prelude.Maybe Prelude.Text)+customLineItemBillingPeriodRange_exclusiveEndBillingPeriod = Lens.lens (\CustomLineItemBillingPeriodRange' {exclusiveEndBillingPeriod} -> exclusiveEndBillingPeriod) (\s@CustomLineItemBillingPeriodRange' {} a -> s {exclusiveEndBillingPeriod = a} :: CustomLineItemBillingPeriodRange)++-- | The inclusive start billing period that defines a billing period range+-- where a custom line is applied.+customLineItemBillingPeriodRange_inclusiveStartBillingPeriod :: Lens.Lens' CustomLineItemBillingPeriodRange Prelude.Text+customLineItemBillingPeriodRange_inclusiveStartBillingPeriod = Lens.lens (\CustomLineItemBillingPeriodRange' {inclusiveStartBillingPeriod} -> inclusiveStartBillingPeriod) (\s@CustomLineItemBillingPeriodRange' {} a -> s {inclusiveStartBillingPeriod = a} :: CustomLineItemBillingPeriodRange)++instance+  Prelude.Hashable+    CustomLineItemBillingPeriodRange+  where+  hashWithSalt+    _salt+    CustomLineItemBillingPeriodRange' {..} =+      _salt+        `Prelude.hashWithSalt` exclusiveEndBillingPeriod+        `Prelude.hashWithSalt` inclusiveStartBillingPeriod++instance+  Prelude.NFData+    CustomLineItemBillingPeriodRange+  where+  rnf CustomLineItemBillingPeriodRange' {..} =+    Prelude.rnf exclusiveEndBillingPeriod+      `Prelude.seq` Prelude.rnf inclusiveStartBillingPeriod++instance Data.ToJSON CustomLineItemBillingPeriodRange where+  toJSON CustomLineItemBillingPeriodRange' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ExclusiveEndBillingPeriod" Data..=)+              Prelude.<$> exclusiveEndBillingPeriod,+            Prelude.Just+              ( "InclusiveStartBillingPeriod"+                  Data..= inclusiveStartBillingPeriod+              )+          ]+      )
+ gen/Amazonka/BillingConductor/Types/CustomLineItemChargeDetails.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.CustomLineItemChargeDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.CustomLineItemChargeDetails where++import Amazonka.BillingConductor.Types.CustomLineItemFlatChargeDetails+import Amazonka.BillingConductor.Types.CustomLineItemPercentageChargeDetails+import Amazonka.BillingConductor.Types.CustomLineItemType+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The charge details of a custom line item. It should contain only one of+-- @Flat@ or @Percentage@.+--+-- /See:/ 'newCustomLineItemChargeDetails' smart constructor.+data CustomLineItemChargeDetails = CustomLineItemChargeDetails'+  { -- | A @CustomLineItemFlatChargeDetails@ that describes the charge details of+    -- a flat custom line item.+    flat :: Prelude.Maybe CustomLineItemFlatChargeDetails,+    -- | A @CustomLineItemPercentageChargeDetails@ that describes the charge+    -- details of a percentage custom line item.+    percentage :: Prelude.Maybe CustomLineItemPercentageChargeDetails,+    -- | The type of the custom line item that indicates whether the charge is a+    -- fee or credit.+    type' :: CustomLineItemType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomLineItemChargeDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flat', 'customLineItemChargeDetails_flat' - A @CustomLineItemFlatChargeDetails@ that describes the charge details of+-- a flat custom line item.+--+-- 'percentage', 'customLineItemChargeDetails_percentage' - A @CustomLineItemPercentageChargeDetails@ that describes the charge+-- details of a percentage custom line item.+--+-- 'type'', 'customLineItemChargeDetails_type' - The type of the custom line item that indicates whether the charge is a+-- fee or credit.+newCustomLineItemChargeDetails ::+  -- | 'type''+  CustomLineItemType ->+  CustomLineItemChargeDetails+newCustomLineItemChargeDetails pType_ =+  CustomLineItemChargeDetails'+    { flat =+        Prelude.Nothing,+      percentage = Prelude.Nothing,+      type' = pType_+    }++-- | A @CustomLineItemFlatChargeDetails@ that describes the charge details of+-- a flat custom line item.+customLineItemChargeDetails_flat :: Lens.Lens' CustomLineItemChargeDetails (Prelude.Maybe CustomLineItemFlatChargeDetails)+customLineItemChargeDetails_flat = Lens.lens (\CustomLineItemChargeDetails' {flat} -> flat) (\s@CustomLineItemChargeDetails' {} a -> s {flat = a} :: CustomLineItemChargeDetails)++-- | A @CustomLineItemPercentageChargeDetails@ that describes the charge+-- details of a percentage custom line item.+customLineItemChargeDetails_percentage :: Lens.Lens' CustomLineItemChargeDetails (Prelude.Maybe CustomLineItemPercentageChargeDetails)+customLineItemChargeDetails_percentage = Lens.lens (\CustomLineItemChargeDetails' {percentage} -> percentage) (\s@CustomLineItemChargeDetails' {} a -> s {percentage = a} :: CustomLineItemChargeDetails)++-- | The type of the custom line item that indicates whether the charge is a+-- fee or credit.+customLineItemChargeDetails_type :: Lens.Lens' CustomLineItemChargeDetails CustomLineItemType+customLineItemChargeDetails_type = Lens.lens (\CustomLineItemChargeDetails' {type'} -> type') (\s@CustomLineItemChargeDetails' {} a -> s {type' = a} :: CustomLineItemChargeDetails)++instance Prelude.Hashable CustomLineItemChargeDetails where+  hashWithSalt _salt CustomLineItemChargeDetails' {..} =+    _salt+      `Prelude.hashWithSalt` flat+      `Prelude.hashWithSalt` percentage+      `Prelude.hashWithSalt` type'++instance Prelude.NFData CustomLineItemChargeDetails where+  rnf CustomLineItemChargeDetails' {..} =+    Prelude.rnf flat+      `Prelude.seq` Prelude.rnf percentage+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON CustomLineItemChargeDetails where+  toJSON CustomLineItemChargeDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Flat" Data..=) Prelude.<$> flat,+            ("Percentage" Data..=) Prelude.<$> percentage,+            Prelude.Just ("Type" Data..= type')+          ]+      )
+ gen/Amazonka/BillingConductor/Types/CustomLineItemFlatChargeDetails.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.CustomLineItemFlatChargeDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.CustomLineItemFlatChargeDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of the charge details that are associated with a flat+-- custom line item.+--+-- /See:/ 'newCustomLineItemFlatChargeDetails' smart constructor.+data CustomLineItemFlatChargeDetails = CustomLineItemFlatChargeDetails'+  { -- | The custom line item\'s fixed charge value in USD.+    chargeValue :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomLineItemFlatChargeDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'chargeValue', 'customLineItemFlatChargeDetails_chargeValue' - The custom line item\'s fixed charge value in USD.+newCustomLineItemFlatChargeDetails ::+  -- | 'chargeValue'+  Prelude.Double ->+  CustomLineItemFlatChargeDetails+newCustomLineItemFlatChargeDetails pChargeValue_ =+  CustomLineItemFlatChargeDetails'+    { chargeValue =+        pChargeValue_+    }++-- | The custom line item\'s fixed charge value in USD.+customLineItemFlatChargeDetails_chargeValue :: Lens.Lens' CustomLineItemFlatChargeDetails Prelude.Double+customLineItemFlatChargeDetails_chargeValue = Lens.lens (\CustomLineItemFlatChargeDetails' {chargeValue} -> chargeValue) (\s@CustomLineItemFlatChargeDetails' {} a -> s {chargeValue = a} :: CustomLineItemFlatChargeDetails)++instance+  Prelude.Hashable+    CustomLineItemFlatChargeDetails+  where+  hashWithSalt+    _salt+    CustomLineItemFlatChargeDetails' {..} =+      _salt `Prelude.hashWithSalt` chargeValue++instance+  Prelude.NFData+    CustomLineItemFlatChargeDetails+  where+  rnf CustomLineItemFlatChargeDetails' {..} =+    Prelude.rnf chargeValue++instance Data.ToJSON CustomLineItemFlatChargeDetails where+  toJSON CustomLineItemFlatChargeDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("ChargeValue" Data..= chargeValue)]+      )
+ gen/Amazonka/BillingConductor/Types/CustomLineItemListElement.hs view
@@ -0,0 +1,194 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.CustomLineItemListElement+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.CustomLineItemListElement where++import Amazonka.BillingConductor.Types.CurrencyCode+import Amazonka.BillingConductor.Types.ListCustomLineItemChargeDetails+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of a custom line item.+--+-- /See:/ 'newCustomLineItemListElement' smart constructor.+data CustomLineItemListElement = CustomLineItemListElement'+  { -- | The Amazon Resource Names (ARNs) for custom line items.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The number of resources that are associated to the custom line item.+    associationSize :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon Resource Name (ARN) that references the billing group where+    -- the custom line item applies to.+    billingGroupArn :: Prelude.Maybe Prelude.Text,+    -- | A @ListCustomLineItemChargeDetails@ that describes the charge details of+    -- a custom line item.+    chargeDetails :: Prelude.Maybe ListCustomLineItemChargeDetails,+    -- | The time created.+    creationTime :: Prelude.Maybe Prelude.Integer,+    -- | The custom line item\'s charge value currency. Only one of the valid+    -- values can be used.+    currencyCode :: Prelude.Maybe CurrencyCode,+    -- | The custom line item\'s description. This is shown on the Bills page in+    -- association with the charge value.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The most recent time when the custom line item was modified.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | The custom line item\'s name.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The product code that\'s associated with the custom line item.+    productCode :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomLineItemListElement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'customLineItemListElement_arn' - The Amazon Resource Names (ARNs) for custom line items.+--+-- 'associationSize', 'customLineItemListElement_associationSize' - The number of resources that are associated to the custom line item.+--+-- 'billingGroupArn', 'customLineItemListElement_billingGroupArn' - The Amazon Resource Name (ARN) that references the billing group where+-- the custom line item applies to.+--+-- 'chargeDetails', 'customLineItemListElement_chargeDetails' - A @ListCustomLineItemChargeDetails@ that describes the charge details of+-- a custom line item.+--+-- 'creationTime', 'customLineItemListElement_creationTime' - The time created.+--+-- 'currencyCode', 'customLineItemListElement_currencyCode' - The custom line item\'s charge value currency. Only one of the valid+-- values can be used.+--+-- 'description', 'customLineItemListElement_description' - The custom line item\'s description. This is shown on the Bills page in+-- association with the charge value.+--+-- 'lastModifiedTime', 'customLineItemListElement_lastModifiedTime' - The most recent time when the custom line item was modified.+--+-- 'name', 'customLineItemListElement_name' - The custom line item\'s name.+--+-- 'productCode', 'customLineItemListElement_productCode' - The product code that\'s associated with the custom line item.+newCustomLineItemListElement ::+  CustomLineItemListElement+newCustomLineItemListElement =+  CustomLineItemListElement'+    { arn = Prelude.Nothing,+      associationSize = Prelude.Nothing,+      billingGroupArn = Prelude.Nothing,+      chargeDetails = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      currencyCode = Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      name = Prelude.Nothing,+      productCode = Prelude.Nothing+    }++-- | The Amazon Resource Names (ARNs) for custom line items.+customLineItemListElement_arn :: Lens.Lens' CustomLineItemListElement (Prelude.Maybe Prelude.Text)+customLineItemListElement_arn = Lens.lens (\CustomLineItemListElement' {arn} -> arn) (\s@CustomLineItemListElement' {} a -> s {arn = a} :: CustomLineItemListElement)++-- | The number of resources that are associated to the custom line item.+customLineItemListElement_associationSize :: Lens.Lens' CustomLineItemListElement (Prelude.Maybe Prelude.Natural)+customLineItemListElement_associationSize = Lens.lens (\CustomLineItemListElement' {associationSize} -> associationSize) (\s@CustomLineItemListElement' {} a -> s {associationSize = a} :: CustomLineItemListElement)++-- | The Amazon Resource Name (ARN) that references the billing group where+-- the custom line item applies to.+customLineItemListElement_billingGroupArn :: Lens.Lens' CustomLineItemListElement (Prelude.Maybe Prelude.Text)+customLineItemListElement_billingGroupArn = Lens.lens (\CustomLineItemListElement' {billingGroupArn} -> billingGroupArn) (\s@CustomLineItemListElement' {} a -> s {billingGroupArn = a} :: CustomLineItemListElement)++-- | A @ListCustomLineItemChargeDetails@ that describes the charge details of+-- a custom line item.+customLineItemListElement_chargeDetails :: Lens.Lens' CustomLineItemListElement (Prelude.Maybe ListCustomLineItemChargeDetails)+customLineItemListElement_chargeDetails = Lens.lens (\CustomLineItemListElement' {chargeDetails} -> chargeDetails) (\s@CustomLineItemListElement' {} a -> s {chargeDetails = a} :: CustomLineItemListElement)++-- | The time created.+customLineItemListElement_creationTime :: Lens.Lens' CustomLineItemListElement (Prelude.Maybe Prelude.Integer)+customLineItemListElement_creationTime = Lens.lens (\CustomLineItemListElement' {creationTime} -> creationTime) (\s@CustomLineItemListElement' {} a -> s {creationTime = a} :: CustomLineItemListElement)++-- | The custom line item\'s charge value currency. Only one of the valid+-- values can be used.+customLineItemListElement_currencyCode :: Lens.Lens' CustomLineItemListElement (Prelude.Maybe CurrencyCode)+customLineItemListElement_currencyCode = Lens.lens (\CustomLineItemListElement' {currencyCode} -> currencyCode) (\s@CustomLineItemListElement' {} a -> s {currencyCode = a} :: CustomLineItemListElement)++-- | The custom line item\'s description. This is shown on the Bills page in+-- association with the charge value.+customLineItemListElement_description :: Lens.Lens' CustomLineItemListElement (Prelude.Maybe Prelude.Text)+customLineItemListElement_description = Lens.lens (\CustomLineItemListElement' {description} -> description) (\s@CustomLineItemListElement' {} a -> s {description = a} :: CustomLineItemListElement) Prelude.. Lens.mapping Data._Sensitive++-- | The most recent time when the custom line item was modified.+customLineItemListElement_lastModifiedTime :: Lens.Lens' CustomLineItemListElement (Prelude.Maybe Prelude.Integer)+customLineItemListElement_lastModifiedTime = Lens.lens (\CustomLineItemListElement' {lastModifiedTime} -> lastModifiedTime) (\s@CustomLineItemListElement' {} a -> s {lastModifiedTime = a} :: CustomLineItemListElement)++-- | The custom line item\'s name.+customLineItemListElement_name :: Lens.Lens' CustomLineItemListElement (Prelude.Maybe Prelude.Text)+customLineItemListElement_name = Lens.lens (\CustomLineItemListElement' {name} -> name) (\s@CustomLineItemListElement' {} a -> s {name = a} :: CustomLineItemListElement) Prelude.. Lens.mapping Data._Sensitive++-- | The product code that\'s associated with the custom line item.+customLineItemListElement_productCode :: Lens.Lens' CustomLineItemListElement (Prelude.Maybe Prelude.Text)+customLineItemListElement_productCode = Lens.lens (\CustomLineItemListElement' {productCode} -> productCode) (\s@CustomLineItemListElement' {} a -> s {productCode = a} :: CustomLineItemListElement)++instance Data.FromJSON CustomLineItemListElement where+  parseJSON =+    Data.withObject+      "CustomLineItemListElement"+      ( \x ->+          CustomLineItemListElement'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "AssociationSize")+            Prelude.<*> (x Data..:? "BillingGroupArn")+            Prelude.<*> (x Data..:? "ChargeDetails")+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "CurrencyCode")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "LastModifiedTime")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "ProductCode")+      )++instance Prelude.Hashable CustomLineItemListElement where+  hashWithSalt _salt CustomLineItemListElement' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` associationSize+      `Prelude.hashWithSalt` billingGroupArn+      `Prelude.hashWithSalt` chargeDetails+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` currencyCode+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastModifiedTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` productCode++instance Prelude.NFData CustomLineItemListElement where+  rnf CustomLineItemListElement' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf associationSize+      `Prelude.seq` Prelude.rnf billingGroupArn+      `Prelude.seq` Prelude.rnf chargeDetails+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf currencyCode+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf productCode
+ gen/Amazonka/BillingConductor/Types/CustomLineItemPercentageChargeDetails.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.CustomLineItemPercentageChargeDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.CustomLineItemPercentageChargeDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of the charge details that are associated with a+-- percentage custom line item.+--+-- /See:/ 'newCustomLineItemPercentageChargeDetails' smart constructor.+data CustomLineItemPercentageChargeDetails = CustomLineItemPercentageChargeDetails'+  { -- | A list of resource ARNs to associate to the percentage custom line item.+    associatedValues :: Prelude.Maybe [Prelude.Text],+    -- | The custom line item\'s percentage value. This will be multiplied+    -- against the combined value of its associated resources to determine its+    -- charge value.+    percentageValue :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomLineItemPercentageChargeDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associatedValues', 'customLineItemPercentageChargeDetails_associatedValues' - A list of resource ARNs to associate to the percentage custom line item.+--+-- 'percentageValue', 'customLineItemPercentageChargeDetails_percentageValue' - The custom line item\'s percentage value. This will be multiplied+-- against the combined value of its associated resources to determine its+-- charge value.+newCustomLineItemPercentageChargeDetails ::+  -- | 'percentageValue'+  Prelude.Double ->+  CustomLineItemPercentageChargeDetails+newCustomLineItemPercentageChargeDetails+  pPercentageValue_ =+    CustomLineItemPercentageChargeDetails'+      { associatedValues =+          Prelude.Nothing,+        percentageValue = pPercentageValue_+      }++-- | A list of resource ARNs to associate to the percentage custom line item.+customLineItemPercentageChargeDetails_associatedValues :: Lens.Lens' CustomLineItemPercentageChargeDetails (Prelude.Maybe [Prelude.Text])+customLineItemPercentageChargeDetails_associatedValues = Lens.lens (\CustomLineItemPercentageChargeDetails' {associatedValues} -> associatedValues) (\s@CustomLineItemPercentageChargeDetails' {} a -> s {associatedValues = a} :: CustomLineItemPercentageChargeDetails) Prelude.. Lens.mapping Lens.coerced++-- | The custom line item\'s percentage value. This will be multiplied+-- against the combined value of its associated resources to determine its+-- charge value.+customLineItemPercentageChargeDetails_percentageValue :: Lens.Lens' CustomLineItemPercentageChargeDetails Prelude.Double+customLineItemPercentageChargeDetails_percentageValue = Lens.lens (\CustomLineItemPercentageChargeDetails' {percentageValue} -> percentageValue) (\s@CustomLineItemPercentageChargeDetails' {} a -> s {percentageValue = a} :: CustomLineItemPercentageChargeDetails)++instance+  Prelude.Hashable+    CustomLineItemPercentageChargeDetails+  where+  hashWithSalt+    _salt+    CustomLineItemPercentageChargeDetails' {..} =+      _salt+        `Prelude.hashWithSalt` associatedValues+        `Prelude.hashWithSalt` percentageValue++instance+  Prelude.NFData+    CustomLineItemPercentageChargeDetails+  where+  rnf CustomLineItemPercentageChargeDetails' {..} =+    Prelude.rnf associatedValues+      `Prelude.seq` Prelude.rnf percentageValue++instance+  Data.ToJSON+    CustomLineItemPercentageChargeDetails+  where+  toJSON CustomLineItemPercentageChargeDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AssociatedValues" Data..=)+              Prelude.<$> associatedValues,+            Prelude.Just+              ("PercentageValue" Data..= percentageValue)+          ]+      )
+ gen/Amazonka/BillingConductor/Types/CustomLineItemRelationship.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.CustomLineItemRelationship+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.CustomLineItemRelationship+  ( CustomLineItemRelationship+      ( ..,+        CustomLineItemRelationship_CHILD,+        CustomLineItemRelationship_PARENT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CustomLineItemRelationship = CustomLineItemRelationship'+  { fromCustomLineItemRelationship ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern CustomLineItemRelationship_CHILD :: CustomLineItemRelationship+pattern CustomLineItemRelationship_CHILD = CustomLineItemRelationship' "CHILD"++pattern CustomLineItemRelationship_PARENT :: CustomLineItemRelationship+pattern CustomLineItemRelationship_PARENT = CustomLineItemRelationship' "PARENT"++{-# COMPLETE+  CustomLineItemRelationship_CHILD,+  CustomLineItemRelationship_PARENT,+  CustomLineItemRelationship'+  #-}
+ gen/Amazonka/BillingConductor/Types/CustomLineItemType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.CustomLineItemType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.CustomLineItemType+  ( CustomLineItemType+      ( ..,+        CustomLineItemType_CREDIT,+        CustomLineItemType_FEE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CustomLineItemType = CustomLineItemType'+  { fromCustomLineItemType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern CustomLineItemType_CREDIT :: CustomLineItemType+pattern CustomLineItemType_CREDIT = CustomLineItemType' "CREDIT"++pattern CustomLineItemType_FEE :: CustomLineItemType+pattern CustomLineItemType_FEE = CustomLineItemType' "FEE"++{-# COMPLETE+  CustomLineItemType_CREDIT,+  CustomLineItemType_FEE,+  CustomLineItemType'+  #-}
+ gen/Amazonka/BillingConductor/Types/CustomLineItemVersionListElement.hs view
@@ -0,0 +1,208 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.CustomLineItemVersionListElement+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.CustomLineItemVersionListElement where++import Amazonka.BillingConductor.Types.CurrencyCode+import Amazonka.BillingConductor.Types.ListCustomLineItemChargeDetails+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of a custom line item version.+--+-- /See:/ 'newCustomLineItemVersionListElement' smart constructor.+data CustomLineItemVersionListElement = CustomLineItemVersionListElement'+  { -- | The number of resources that are associated with the custom line item.+    associationSize :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon Resource Name (ARN) of the billing group that the custom line+    -- item applies to.+    billingGroupArn :: Prelude.Maybe Prelude.Text,+    chargeDetails :: Prelude.Maybe ListCustomLineItemChargeDetails,+    -- | The time when the custom line item version was created.+    creationTime :: Prelude.Maybe Prelude.Integer,+    -- | The charge value currency of the custom line item.+    currencyCode :: Prelude.Maybe CurrencyCode,+    -- | The description of the custom line item.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The end billing period of the custom line item version.+    endBillingPeriod :: Prelude.Maybe Prelude.Text,+    -- | The most recent time that the custom line item version was modified.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | The name of the custom line item.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The product code that’s associated with the custom line item.+    productCode :: Prelude.Maybe Prelude.Text,+    -- | The start billing period of the custom line item version.+    startBillingPeriod :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomLineItemVersionListElement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associationSize', 'customLineItemVersionListElement_associationSize' - The number of resources that are associated with the custom line item.+--+-- 'billingGroupArn', 'customLineItemVersionListElement_billingGroupArn' - The Amazon Resource Name (ARN) of the billing group that the custom line+-- item applies to.+--+-- 'chargeDetails', 'customLineItemVersionListElement_chargeDetails' - Undocumented member.+--+-- 'creationTime', 'customLineItemVersionListElement_creationTime' - The time when the custom line item version was created.+--+-- 'currencyCode', 'customLineItemVersionListElement_currencyCode' - The charge value currency of the custom line item.+--+-- 'description', 'customLineItemVersionListElement_description' - The description of the custom line item.+--+-- 'endBillingPeriod', 'customLineItemVersionListElement_endBillingPeriod' - The end billing period of the custom line item version.+--+-- 'lastModifiedTime', 'customLineItemVersionListElement_lastModifiedTime' - The most recent time that the custom line item version was modified.+--+-- 'name', 'customLineItemVersionListElement_name' - The name of the custom line item.+--+-- 'productCode', 'customLineItemVersionListElement_productCode' - The product code that’s associated with the custom line item.+--+-- 'startBillingPeriod', 'customLineItemVersionListElement_startBillingPeriod' - The start billing period of the custom line item version.+newCustomLineItemVersionListElement ::+  CustomLineItemVersionListElement+newCustomLineItemVersionListElement =+  CustomLineItemVersionListElement'+    { associationSize =+        Prelude.Nothing,+      billingGroupArn = Prelude.Nothing,+      chargeDetails = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      currencyCode = Prelude.Nothing,+      description = Prelude.Nothing,+      endBillingPeriod = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      name = Prelude.Nothing,+      productCode = Prelude.Nothing,+      startBillingPeriod = Prelude.Nothing+    }++-- | The number of resources that are associated with the custom line item.+customLineItemVersionListElement_associationSize :: Lens.Lens' CustomLineItemVersionListElement (Prelude.Maybe Prelude.Natural)+customLineItemVersionListElement_associationSize = Lens.lens (\CustomLineItemVersionListElement' {associationSize} -> associationSize) (\s@CustomLineItemVersionListElement' {} a -> s {associationSize = a} :: CustomLineItemVersionListElement)++-- | The Amazon Resource Name (ARN) of the billing group that the custom line+-- item applies to.+customLineItemVersionListElement_billingGroupArn :: Lens.Lens' CustomLineItemVersionListElement (Prelude.Maybe Prelude.Text)+customLineItemVersionListElement_billingGroupArn = Lens.lens (\CustomLineItemVersionListElement' {billingGroupArn} -> billingGroupArn) (\s@CustomLineItemVersionListElement' {} a -> s {billingGroupArn = a} :: CustomLineItemVersionListElement)++-- | Undocumented member.+customLineItemVersionListElement_chargeDetails :: Lens.Lens' CustomLineItemVersionListElement (Prelude.Maybe ListCustomLineItemChargeDetails)+customLineItemVersionListElement_chargeDetails = Lens.lens (\CustomLineItemVersionListElement' {chargeDetails} -> chargeDetails) (\s@CustomLineItemVersionListElement' {} a -> s {chargeDetails = a} :: CustomLineItemVersionListElement)++-- | The time when the custom line item version was created.+customLineItemVersionListElement_creationTime :: Lens.Lens' CustomLineItemVersionListElement (Prelude.Maybe Prelude.Integer)+customLineItemVersionListElement_creationTime = Lens.lens (\CustomLineItemVersionListElement' {creationTime} -> creationTime) (\s@CustomLineItemVersionListElement' {} a -> s {creationTime = a} :: CustomLineItemVersionListElement)++-- | The charge value currency of the custom line item.+customLineItemVersionListElement_currencyCode :: Lens.Lens' CustomLineItemVersionListElement (Prelude.Maybe CurrencyCode)+customLineItemVersionListElement_currencyCode = Lens.lens (\CustomLineItemVersionListElement' {currencyCode} -> currencyCode) (\s@CustomLineItemVersionListElement' {} a -> s {currencyCode = a} :: CustomLineItemVersionListElement)++-- | The description of the custom line item.+customLineItemVersionListElement_description :: Lens.Lens' CustomLineItemVersionListElement (Prelude.Maybe Prelude.Text)+customLineItemVersionListElement_description = Lens.lens (\CustomLineItemVersionListElement' {description} -> description) (\s@CustomLineItemVersionListElement' {} a -> s {description = a} :: CustomLineItemVersionListElement) Prelude.. Lens.mapping Data._Sensitive++-- | The end billing period of the custom line item version.+customLineItemVersionListElement_endBillingPeriod :: Lens.Lens' CustomLineItemVersionListElement (Prelude.Maybe Prelude.Text)+customLineItemVersionListElement_endBillingPeriod = Lens.lens (\CustomLineItemVersionListElement' {endBillingPeriod} -> endBillingPeriod) (\s@CustomLineItemVersionListElement' {} a -> s {endBillingPeriod = a} :: CustomLineItemVersionListElement)++-- | The most recent time that the custom line item version was modified.+customLineItemVersionListElement_lastModifiedTime :: Lens.Lens' CustomLineItemVersionListElement (Prelude.Maybe Prelude.Integer)+customLineItemVersionListElement_lastModifiedTime = Lens.lens (\CustomLineItemVersionListElement' {lastModifiedTime} -> lastModifiedTime) (\s@CustomLineItemVersionListElement' {} a -> s {lastModifiedTime = a} :: CustomLineItemVersionListElement)++-- | The name of the custom line item.+customLineItemVersionListElement_name :: Lens.Lens' CustomLineItemVersionListElement (Prelude.Maybe Prelude.Text)+customLineItemVersionListElement_name = Lens.lens (\CustomLineItemVersionListElement' {name} -> name) (\s@CustomLineItemVersionListElement' {} a -> s {name = a} :: CustomLineItemVersionListElement) Prelude.. Lens.mapping Data._Sensitive++-- | The product code that’s associated with the custom line item.+customLineItemVersionListElement_productCode :: Lens.Lens' CustomLineItemVersionListElement (Prelude.Maybe Prelude.Text)+customLineItemVersionListElement_productCode = Lens.lens (\CustomLineItemVersionListElement' {productCode} -> productCode) (\s@CustomLineItemVersionListElement' {} a -> s {productCode = a} :: CustomLineItemVersionListElement)++-- | The start billing period of the custom line item version.+customLineItemVersionListElement_startBillingPeriod :: Lens.Lens' CustomLineItemVersionListElement (Prelude.Maybe Prelude.Text)+customLineItemVersionListElement_startBillingPeriod = Lens.lens (\CustomLineItemVersionListElement' {startBillingPeriod} -> startBillingPeriod) (\s@CustomLineItemVersionListElement' {} a -> s {startBillingPeriod = a} :: CustomLineItemVersionListElement)++instance+  Data.FromJSON+    CustomLineItemVersionListElement+  where+  parseJSON =+    Data.withObject+      "CustomLineItemVersionListElement"+      ( \x ->+          CustomLineItemVersionListElement'+            Prelude.<$> (x Data..:? "AssociationSize")+            Prelude.<*> (x Data..:? "BillingGroupArn")+            Prelude.<*> (x Data..:? "ChargeDetails")+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "CurrencyCode")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "EndBillingPeriod")+            Prelude.<*> (x Data..:? "LastModifiedTime")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "ProductCode")+            Prelude.<*> (x Data..:? "StartBillingPeriod")+      )++instance+  Prelude.Hashable+    CustomLineItemVersionListElement+  where+  hashWithSalt+    _salt+    CustomLineItemVersionListElement' {..} =+      _salt+        `Prelude.hashWithSalt` associationSize+        `Prelude.hashWithSalt` billingGroupArn+        `Prelude.hashWithSalt` chargeDetails+        `Prelude.hashWithSalt` creationTime+        `Prelude.hashWithSalt` currencyCode+        `Prelude.hashWithSalt` description+        `Prelude.hashWithSalt` endBillingPeriod+        `Prelude.hashWithSalt` lastModifiedTime+        `Prelude.hashWithSalt` name+        `Prelude.hashWithSalt` productCode+        `Prelude.hashWithSalt` startBillingPeriod++instance+  Prelude.NFData+    CustomLineItemVersionListElement+  where+  rnf CustomLineItemVersionListElement' {..} =+    Prelude.rnf associationSize+      `Prelude.seq` Prelude.rnf billingGroupArn+      `Prelude.seq` Prelude.rnf chargeDetails+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf currencyCode+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf endBillingPeriod+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf productCode+      `Prelude.seq` Prelude.rnf startBillingPeriod
+ gen/Amazonka/BillingConductor/Types/DisassociateResourceResponseElement.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.DisassociateResourceResponseElement+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.DisassociateResourceResponseElement where++import Amazonka.BillingConductor.Types.AssociateResourceError+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A resource disassociation result for a percentage custom line item.+--+-- /See:/ 'newDisassociateResourceResponseElement' smart constructor.+data DisassociateResourceResponseElement = DisassociateResourceResponseElement'+  { -- | The resource ARN that was disassociated from the custom line item.+    arn :: Prelude.Maybe Prelude.Text,+    -- | An @AssociateResourceError@ that\'s shown if the resource disassociation+    -- fails.+    error :: Prelude.Maybe AssociateResourceError+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateResourceResponseElement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'disassociateResourceResponseElement_arn' - The resource ARN that was disassociated from the custom line item.+--+-- 'error', 'disassociateResourceResponseElement_error' - An @AssociateResourceError@ that\'s shown if the resource disassociation+-- fails.+newDisassociateResourceResponseElement ::+  DisassociateResourceResponseElement+newDisassociateResourceResponseElement =+  DisassociateResourceResponseElement'+    { arn =+        Prelude.Nothing,+      error = Prelude.Nothing+    }++-- | The resource ARN that was disassociated from the custom line item.+disassociateResourceResponseElement_arn :: Lens.Lens' DisassociateResourceResponseElement (Prelude.Maybe Prelude.Text)+disassociateResourceResponseElement_arn = Lens.lens (\DisassociateResourceResponseElement' {arn} -> arn) (\s@DisassociateResourceResponseElement' {} a -> s {arn = a} :: DisassociateResourceResponseElement)++-- | An @AssociateResourceError@ that\'s shown if the resource disassociation+-- fails.+disassociateResourceResponseElement_error :: Lens.Lens' DisassociateResourceResponseElement (Prelude.Maybe AssociateResourceError)+disassociateResourceResponseElement_error = Lens.lens (\DisassociateResourceResponseElement' {error} -> error) (\s@DisassociateResourceResponseElement' {} a -> s {error = a} :: DisassociateResourceResponseElement)++instance+  Data.FromJSON+    DisassociateResourceResponseElement+  where+  parseJSON =+    Data.withObject+      "DisassociateResourceResponseElement"+      ( \x ->+          DisassociateResourceResponseElement'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "Error")+      )++instance+  Prelude.Hashable+    DisassociateResourceResponseElement+  where+  hashWithSalt+    _salt+    DisassociateResourceResponseElement' {..} =+      _salt+        `Prelude.hashWithSalt` arn+        `Prelude.hashWithSalt` error++instance+  Prelude.NFData+    DisassociateResourceResponseElement+  where+  rnf DisassociateResourceResponseElement' {..} =+    Prelude.rnf arn `Prelude.seq` Prelude.rnf error
+ gen/Amazonka/BillingConductor/Types/FreeTierConfig.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.FreeTierConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.FreeTierConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The possible Amazon Web Services Free Tier configurations.+--+-- /See:/ 'newFreeTierConfig' smart constructor.+data FreeTierConfig = FreeTierConfig'+  { -- | Activate or deactivate Amazon Web Services Free Tier application.+    activated :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FreeTierConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'activated', 'freeTierConfig_activated' - Activate or deactivate Amazon Web Services Free Tier application.+newFreeTierConfig ::+  -- | 'activated'+  Prelude.Bool ->+  FreeTierConfig+newFreeTierConfig pActivated_ =+  FreeTierConfig' {activated = pActivated_}++-- | Activate or deactivate Amazon Web Services Free Tier application.+freeTierConfig_activated :: Lens.Lens' FreeTierConfig Prelude.Bool+freeTierConfig_activated = Lens.lens (\FreeTierConfig' {activated} -> activated) (\s@FreeTierConfig' {} a -> s {activated = a} :: FreeTierConfig)++instance Data.FromJSON FreeTierConfig where+  parseJSON =+    Data.withObject+      "FreeTierConfig"+      ( \x ->+          FreeTierConfig' Prelude.<$> (x Data..: "Activated")+      )++instance Prelude.Hashable FreeTierConfig where+  hashWithSalt _salt FreeTierConfig' {..} =+    _salt `Prelude.hashWithSalt` activated++instance Prelude.NFData FreeTierConfig where+  rnf FreeTierConfig' {..} = Prelude.rnf activated
+ gen/Amazonka/BillingConductor/Types/ListAccountAssociationsFilter.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.ListAccountAssociationsFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.ListAccountAssociationsFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The filter on the account ID of the linked account, or any of the+-- following:+--+-- @MONITORED@: linked accounts that are associated to billing groups.+--+-- @UNMONITORED@: linked accounts that are not associated to billing+-- groups.+--+-- @Billing Group Arn@: linked accounts that are associated to the provided+-- Billing Group Arn.+--+-- /See:/ 'newListAccountAssociationsFilter' smart constructor.+data ListAccountAssociationsFilter = ListAccountAssociationsFilter'+  { -- | The Amazon Web Services account ID to filter on.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | @MONITORED@: linked accounts that are associated to billing groups.+    --+    -- @UNMONITORED@: linked accounts that are not associated to billing+    -- groups.+    --+    -- @Billing Group Arn@: linked accounts that are associated to the provided+    -- Billing Group Arn.+    association :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAccountAssociationsFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'listAccountAssociationsFilter_accountId' - The Amazon Web Services account ID to filter on.+--+-- 'association', 'listAccountAssociationsFilter_association' - @MONITORED@: linked accounts that are associated to billing groups.+--+-- @UNMONITORED@: linked accounts that are not associated to billing+-- groups.+--+-- @Billing Group Arn@: linked accounts that are associated to the provided+-- Billing Group Arn.+newListAccountAssociationsFilter ::+  ListAccountAssociationsFilter+newListAccountAssociationsFilter =+  ListAccountAssociationsFilter'+    { accountId =+        Prelude.Nothing,+      association = Prelude.Nothing+    }++-- | The Amazon Web Services account ID to filter on.+listAccountAssociationsFilter_accountId :: Lens.Lens' ListAccountAssociationsFilter (Prelude.Maybe Prelude.Text)+listAccountAssociationsFilter_accountId = Lens.lens (\ListAccountAssociationsFilter' {accountId} -> accountId) (\s@ListAccountAssociationsFilter' {} a -> s {accountId = a} :: ListAccountAssociationsFilter)++-- | @MONITORED@: linked accounts that are associated to billing groups.+--+-- @UNMONITORED@: linked accounts that are not associated to billing+-- groups.+--+-- @Billing Group Arn@: linked accounts that are associated to the provided+-- Billing Group Arn.+listAccountAssociationsFilter_association :: Lens.Lens' ListAccountAssociationsFilter (Prelude.Maybe Prelude.Text)+listAccountAssociationsFilter_association = Lens.lens (\ListAccountAssociationsFilter' {association} -> association) (\s@ListAccountAssociationsFilter' {} a -> s {association = a} :: ListAccountAssociationsFilter)++instance+  Prelude.Hashable+    ListAccountAssociationsFilter+  where+  hashWithSalt _salt ListAccountAssociationsFilter' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` association++instance Prelude.NFData ListAccountAssociationsFilter where+  rnf ListAccountAssociationsFilter' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf association++instance Data.ToJSON ListAccountAssociationsFilter where+  toJSON ListAccountAssociationsFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccountId" Data..=) Prelude.<$> accountId,+            ("Association" Data..=) Prelude.<$> association+          ]+      )
+ gen/Amazonka/BillingConductor/Types/ListBillingGroupCostReportsFilter.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.ListBillingGroupCostReportsFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.ListBillingGroupCostReportsFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The filter used to retrieve specific @BillingGroupCostReportElements@.+--+-- /See:/ 'newListBillingGroupCostReportsFilter' smart constructor.+data ListBillingGroupCostReportsFilter = ListBillingGroupCostReportsFilter'+  { -- | The list of Amazon Resource Names (ARNs) used to filter billing groups+    -- to retrieve reports.+    billingGroupArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBillingGroupCostReportsFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingGroupArns', 'listBillingGroupCostReportsFilter_billingGroupArns' - The list of Amazon Resource Names (ARNs) used to filter billing groups+-- to retrieve reports.+newListBillingGroupCostReportsFilter ::+  ListBillingGroupCostReportsFilter+newListBillingGroupCostReportsFilter =+  ListBillingGroupCostReportsFilter'+    { billingGroupArns =+        Prelude.Nothing+    }++-- | The list of Amazon Resource Names (ARNs) used to filter billing groups+-- to retrieve reports.+listBillingGroupCostReportsFilter_billingGroupArns :: Lens.Lens' ListBillingGroupCostReportsFilter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listBillingGroupCostReportsFilter_billingGroupArns = Lens.lens (\ListBillingGroupCostReportsFilter' {billingGroupArns} -> billingGroupArns) (\s@ListBillingGroupCostReportsFilter' {} a -> s {billingGroupArns = a} :: ListBillingGroupCostReportsFilter) Prelude.. Lens.mapping Lens.coerced++instance+  Prelude.Hashable+    ListBillingGroupCostReportsFilter+  where+  hashWithSalt+    _salt+    ListBillingGroupCostReportsFilter' {..} =+      _salt `Prelude.hashWithSalt` billingGroupArns++instance+  Prelude.NFData+    ListBillingGroupCostReportsFilter+  where+  rnf ListBillingGroupCostReportsFilter' {..} =+    Prelude.rnf billingGroupArns++instance+  Data.ToJSON+    ListBillingGroupCostReportsFilter+  where+  toJSON ListBillingGroupCostReportsFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingGroupArns" Data..=)+              Prelude.<$> billingGroupArns+          ]+      )
+ gen/Amazonka/BillingConductor/Types/ListBillingGroupsFilter.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.ListBillingGroupsFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.ListBillingGroupsFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The filter that specifies the billing groups and pricing plans to+-- retrieve billing group information.+--+-- /See:/ 'newListBillingGroupsFilter' smart constructor.+data ListBillingGroupsFilter = ListBillingGroupsFilter'+  { -- | The list of billing group Amazon Resource Names (ARNs) to retrieve+    -- information.+    arns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The pricing plan Amazon Resource Names (ARNs) to retrieve information.+    pricingPlan :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBillingGroupsFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arns', 'listBillingGroupsFilter_arns' - The list of billing group Amazon Resource Names (ARNs) to retrieve+-- information.+--+-- 'pricingPlan', 'listBillingGroupsFilter_pricingPlan' - The pricing plan Amazon Resource Names (ARNs) to retrieve information.+newListBillingGroupsFilter ::+  ListBillingGroupsFilter+newListBillingGroupsFilter =+  ListBillingGroupsFilter'+    { arns = Prelude.Nothing,+      pricingPlan = Prelude.Nothing+    }++-- | The list of billing group Amazon Resource Names (ARNs) to retrieve+-- information.+listBillingGroupsFilter_arns :: Lens.Lens' ListBillingGroupsFilter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listBillingGroupsFilter_arns = Lens.lens (\ListBillingGroupsFilter' {arns} -> arns) (\s@ListBillingGroupsFilter' {} a -> s {arns = a} :: ListBillingGroupsFilter) Prelude.. Lens.mapping Lens.coerced++-- | The pricing plan Amazon Resource Names (ARNs) to retrieve information.+listBillingGroupsFilter_pricingPlan :: Lens.Lens' ListBillingGroupsFilter (Prelude.Maybe Prelude.Text)+listBillingGroupsFilter_pricingPlan = Lens.lens (\ListBillingGroupsFilter' {pricingPlan} -> pricingPlan) (\s@ListBillingGroupsFilter' {} a -> s {pricingPlan = a} :: ListBillingGroupsFilter)++instance Prelude.Hashable ListBillingGroupsFilter where+  hashWithSalt _salt ListBillingGroupsFilter' {..} =+    _salt+      `Prelude.hashWithSalt` arns+      `Prelude.hashWithSalt` pricingPlan++instance Prelude.NFData ListBillingGroupsFilter where+  rnf ListBillingGroupsFilter' {..} =+    Prelude.rnf arns+      `Prelude.seq` Prelude.rnf pricingPlan++instance Data.ToJSON ListBillingGroupsFilter where+  toJSON ListBillingGroupsFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Arns" Data..=) Prelude.<$> arns,+            ("PricingPlan" Data..=) Prelude.<$> pricingPlan+          ]+      )
+ gen/Amazonka/BillingConductor/Types/ListCustomLineItemChargeDetails.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.ListCustomLineItemChargeDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.ListCustomLineItemChargeDetails where++import Amazonka.BillingConductor.Types.CustomLineItemType+import Amazonka.BillingConductor.Types.ListCustomLineItemFlatChargeDetails+import Amazonka.BillingConductor.Types.ListCustomLineItemPercentageChargeDetails+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of the charge details of a custom line item.+--+-- /See:/ 'newListCustomLineItemChargeDetails' smart constructor.+data ListCustomLineItemChargeDetails = ListCustomLineItemChargeDetails'+  { -- | A @ListCustomLineItemFlatChargeDetails@ that describes the charge+    -- details of a flat custom line item.+    flat :: Prelude.Maybe ListCustomLineItemFlatChargeDetails,+    -- | A @ListCustomLineItemPercentageChargeDetails@ that describes the charge+    -- details of a percentage custom line item.+    percentage :: Prelude.Maybe ListCustomLineItemPercentageChargeDetails,+    -- | The type of the custom line item that indicates whether the charge is a+    -- @fee@ or @credit@.+    type' :: CustomLineItemType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomLineItemChargeDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flat', 'listCustomLineItemChargeDetails_flat' - A @ListCustomLineItemFlatChargeDetails@ that describes the charge+-- details of a flat custom line item.+--+-- 'percentage', 'listCustomLineItemChargeDetails_percentage' - A @ListCustomLineItemPercentageChargeDetails@ that describes the charge+-- details of a percentage custom line item.+--+-- 'type'', 'listCustomLineItemChargeDetails_type' - The type of the custom line item that indicates whether the charge is a+-- @fee@ or @credit@.+newListCustomLineItemChargeDetails ::+  -- | 'type''+  CustomLineItemType ->+  ListCustomLineItemChargeDetails+newListCustomLineItemChargeDetails pType_ =+  ListCustomLineItemChargeDetails'+    { flat =+        Prelude.Nothing,+      percentage = Prelude.Nothing,+      type' = pType_+    }++-- | A @ListCustomLineItemFlatChargeDetails@ that describes the charge+-- details of a flat custom line item.+listCustomLineItemChargeDetails_flat :: Lens.Lens' ListCustomLineItemChargeDetails (Prelude.Maybe ListCustomLineItemFlatChargeDetails)+listCustomLineItemChargeDetails_flat = Lens.lens (\ListCustomLineItemChargeDetails' {flat} -> flat) (\s@ListCustomLineItemChargeDetails' {} a -> s {flat = a} :: ListCustomLineItemChargeDetails)++-- | A @ListCustomLineItemPercentageChargeDetails@ that describes the charge+-- details of a percentage custom line item.+listCustomLineItemChargeDetails_percentage :: Lens.Lens' ListCustomLineItemChargeDetails (Prelude.Maybe ListCustomLineItemPercentageChargeDetails)+listCustomLineItemChargeDetails_percentage = Lens.lens (\ListCustomLineItemChargeDetails' {percentage} -> percentage) (\s@ListCustomLineItemChargeDetails' {} a -> s {percentage = a} :: ListCustomLineItemChargeDetails)++-- | The type of the custom line item that indicates whether the charge is a+-- @fee@ or @credit@.+listCustomLineItemChargeDetails_type :: Lens.Lens' ListCustomLineItemChargeDetails CustomLineItemType+listCustomLineItemChargeDetails_type = Lens.lens (\ListCustomLineItemChargeDetails' {type'} -> type') (\s@ListCustomLineItemChargeDetails' {} a -> s {type' = a} :: ListCustomLineItemChargeDetails)++instance+  Data.FromJSON+    ListCustomLineItemChargeDetails+  where+  parseJSON =+    Data.withObject+      "ListCustomLineItemChargeDetails"+      ( \x ->+          ListCustomLineItemChargeDetails'+            Prelude.<$> (x Data..:? "Flat")+            Prelude.<*> (x Data..:? "Percentage")+            Prelude.<*> (x Data..: "Type")+      )++instance+  Prelude.Hashable+    ListCustomLineItemChargeDetails+  where+  hashWithSalt+    _salt+    ListCustomLineItemChargeDetails' {..} =+      _salt+        `Prelude.hashWithSalt` flat+        `Prelude.hashWithSalt` percentage+        `Prelude.hashWithSalt` type'++instance+  Prelude.NFData+    ListCustomLineItemChargeDetails+  where+  rnf ListCustomLineItemChargeDetails' {..} =+    Prelude.rnf flat+      `Prelude.seq` Prelude.rnf percentage+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/BillingConductor/Types/ListCustomLineItemFlatChargeDetails.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.ListCustomLineItemFlatChargeDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.ListCustomLineItemFlatChargeDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of the charge details that are associated with a flat+-- custom line item.+--+-- /See:/ 'newListCustomLineItemFlatChargeDetails' smart constructor.+data ListCustomLineItemFlatChargeDetails = ListCustomLineItemFlatChargeDetails'+  { -- | The custom line item\'s fixed charge value in USD.+    chargeValue :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomLineItemFlatChargeDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'chargeValue', 'listCustomLineItemFlatChargeDetails_chargeValue' - The custom line item\'s fixed charge value in USD.+newListCustomLineItemFlatChargeDetails ::+  -- | 'chargeValue'+  Prelude.Double ->+  ListCustomLineItemFlatChargeDetails+newListCustomLineItemFlatChargeDetails pChargeValue_ =+  ListCustomLineItemFlatChargeDetails'+    { chargeValue =+        pChargeValue_+    }++-- | The custom line item\'s fixed charge value in USD.+listCustomLineItemFlatChargeDetails_chargeValue :: Lens.Lens' ListCustomLineItemFlatChargeDetails Prelude.Double+listCustomLineItemFlatChargeDetails_chargeValue = Lens.lens (\ListCustomLineItemFlatChargeDetails' {chargeValue} -> chargeValue) (\s@ListCustomLineItemFlatChargeDetails' {} a -> s {chargeValue = a} :: ListCustomLineItemFlatChargeDetails)++instance+  Data.FromJSON+    ListCustomLineItemFlatChargeDetails+  where+  parseJSON =+    Data.withObject+      "ListCustomLineItemFlatChargeDetails"+      ( \x ->+          ListCustomLineItemFlatChargeDetails'+            Prelude.<$> (x Data..: "ChargeValue")+      )++instance+  Prelude.Hashable+    ListCustomLineItemFlatChargeDetails+  where+  hashWithSalt+    _salt+    ListCustomLineItemFlatChargeDetails' {..} =+      _salt `Prelude.hashWithSalt` chargeValue++instance+  Prelude.NFData+    ListCustomLineItemFlatChargeDetails+  where+  rnf ListCustomLineItemFlatChargeDetails' {..} =+    Prelude.rnf chargeValue
+ gen/Amazonka/BillingConductor/Types/ListCustomLineItemPercentageChargeDetails.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.ListCustomLineItemPercentageChargeDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.ListCustomLineItemPercentageChargeDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of the charge details that are associated with a+-- percentage custom line item.+--+-- /See:/ 'newListCustomLineItemPercentageChargeDetails' smart constructor.+data ListCustomLineItemPercentageChargeDetails = ListCustomLineItemPercentageChargeDetails'+  { -- | The custom line item\'s percentage value. This will be multiplied+    -- against the combined value of its associated resources to determine its+    -- charge value.+    percentageValue :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomLineItemPercentageChargeDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'percentageValue', 'listCustomLineItemPercentageChargeDetails_percentageValue' - The custom line item\'s percentage value. This will be multiplied+-- against the combined value of its associated resources to determine its+-- charge value.+newListCustomLineItemPercentageChargeDetails ::+  -- | 'percentageValue'+  Prelude.Double ->+  ListCustomLineItemPercentageChargeDetails+newListCustomLineItemPercentageChargeDetails+  pPercentageValue_ =+    ListCustomLineItemPercentageChargeDetails'+      { percentageValue =+          pPercentageValue_+      }++-- | The custom line item\'s percentage value. This will be multiplied+-- against the combined value of its associated resources to determine its+-- charge value.+listCustomLineItemPercentageChargeDetails_percentageValue :: Lens.Lens' ListCustomLineItemPercentageChargeDetails Prelude.Double+listCustomLineItemPercentageChargeDetails_percentageValue = Lens.lens (\ListCustomLineItemPercentageChargeDetails' {percentageValue} -> percentageValue) (\s@ListCustomLineItemPercentageChargeDetails' {} a -> s {percentageValue = a} :: ListCustomLineItemPercentageChargeDetails)++instance+  Data.FromJSON+    ListCustomLineItemPercentageChargeDetails+  where+  parseJSON =+    Data.withObject+      "ListCustomLineItemPercentageChargeDetails"+      ( \x ->+          ListCustomLineItemPercentageChargeDetails'+            Prelude.<$> (x Data..: "PercentageValue")+      )++instance+  Prelude.Hashable+    ListCustomLineItemPercentageChargeDetails+  where+  hashWithSalt+    _salt+    ListCustomLineItemPercentageChargeDetails' {..} =+      _salt `Prelude.hashWithSalt` percentageValue++instance+  Prelude.NFData+    ListCustomLineItemPercentageChargeDetails+  where+  rnf ListCustomLineItemPercentageChargeDetails' {..} =+    Prelude.rnf percentageValue
+ gen/Amazonka/BillingConductor/Types/ListCustomLineItemVersionsBillingPeriodRangeFilter.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.ListCustomLineItemVersionsBillingPeriodRangeFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.ListCustomLineItemVersionsBillingPeriodRangeFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A billing period filter that specifies the custom line item versions to+-- retrieve.+--+-- /See:/ 'newListCustomLineItemVersionsBillingPeriodRangeFilter' smart constructor.+data ListCustomLineItemVersionsBillingPeriodRangeFilter = ListCustomLineItemVersionsBillingPeriodRangeFilter'+  { -- | The exclusive end billing period that defines a billing period range+    -- where a custom line item version is applied.+    endBillingPeriod :: Prelude.Maybe Prelude.Text,+    -- | The inclusive start billing period that defines a billing period range+    -- where a custom line item version is applied.+    startBillingPeriod :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomLineItemVersionsBillingPeriodRangeFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endBillingPeriod', 'listCustomLineItemVersionsBillingPeriodRangeFilter_endBillingPeriod' - The exclusive end billing period that defines a billing period range+-- where a custom line item version is applied.+--+-- 'startBillingPeriod', 'listCustomLineItemVersionsBillingPeriodRangeFilter_startBillingPeriod' - The inclusive start billing period that defines a billing period range+-- where a custom line item version is applied.+newListCustomLineItemVersionsBillingPeriodRangeFilter ::+  ListCustomLineItemVersionsBillingPeriodRangeFilter+newListCustomLineItemVersionsBillingPeriodRangeFilter =+  ListCustomLineItemVersionsBillingPeriodRangeFilter'+    { endBillingPeriod =+        Prelude.Nothing,+      startBillingPeriod =+        Prelude.Nothing+    }++-- | The exclusive end billing period that defines a billing period range+-- where a custom line item version is applied.+listCustomLineItemVersionsBillingPeriodRangeFilter_endBillingPeriod :: Lens.Lens' ListCustomLineItemVersionsBillingPeriodRangeFilter (Prelude.Maybe Prelude.Text)+listCustomLineItemVersionsBillingPeriodRangeFilter_endBillingPeriod = Lens.lens (\ListCustomLineItemVersionsBillingPeriodRangeFilter' {endBillingPeriod} -> endBillingPeriod) (\s@ListCustomLineItemVersionsBillingPeriodRangeFilter' {} a -> s {endBillingPeriod = a} :: ListCustomLineItemVersionsBillingPeriodRangeFilter)++-- | The inclusive start billing period that defines a billing period range+-- where a custom line item version is applied.+listCustomLineItemVersionsBillingPeriodRangeFilter_startBillingPeriod :: Lens.Lens' ListCustomLineItemVersionsBillingPeriodRangeFilter (Prelude.Maybe Prelude.Text)+listCustomLineItemVersionsBillingPeriodRangeFilter_startBillingPeriod = Lens.lens (\ListCustomLineItemVersionsBillingPeriodRangeFilter' {startBillingPeriod} -> startBillingPeriod) (\s@ListCustomLineItemVersionsBillingPeriodRangeFilter' {} a -> s {startBillingPeriod = a} :: ListCustomLineItemVersionsBillingPeriodRangeFilter)++instance+  Prelude.Hashable+    ListCustomLineItemVersionsBillingPeriodRangeFilter+  where+  hashWithSalt+    _salt+    ListCustomLineItemVersionsBillingPeriodRangeFilter' {..} =+      _salt+        `Prelude.hashWithSalt` endBillingPeriod+        `Prelude.hashWithSalt` startBillingPeriod++instance+  Prelude.NFData+    ListCustomLineItemVersionsBillingPeriodRangeFilter+  where+  rnf+    ListCustomLineItemVersionsBillingPeriodRangeFilter' {..} =+      Prelude.rnf endBillingPeriod+        `Prelude.seq` Prelude.rnf startBillingPeriod++instance+  Data.ToJSON+    ListCustomLineItemVersionsBillingPeriodRangeFilter+  where+  toJSON+    ListCustomLineItemVersionsBillingPeriodRangeFilter' {..} =+      Data.object+        ( Prelude.catMaybes+            [ ("EndBillingPeriod" Data..=)+                Prelude.<$> endBillingPeriod,+              ("StartBillingPeriod" Data..=)+                Prelude.<$> startBillingPeriod+            ]+        )
+ gen/Amazonka/BillingConductor/Types/ListCustomLineItemVersionsFilter.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.ListCustomLineItemVersionsFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.ListCustomLineItemVersionsFilter where++import Amazonka.BillingConductor.Types.ListCustomLineItemVersionsBillingPeriodRangeFilter+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A filter that specifies the billing period range where the custom line+-- item versions reside.+--+-- /See:/ 'newListCustomLineItemVersionsFilter' smart constructor.+data ListCustomLineItemVersionsFilter = ListCustomLineItemVersionsFilter'+  { -- | The billing period range in which the custom line item version is+    -- applied.+    billingPeriodRange :: Prelude.Maybe ListCustomLineItemVersionsBillingPeriodRangeFilter+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomLineItemVersionsFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriodRange', 'listCustomLineItemVersionsFilter_billingPeriodRange' - The billing period range in which the custom line item version is+-- applied.+newListCustomLineItemVersionsFilter ::+  ListCustomLineItemVersionsFilter+newListCustomLineItemVersionsFilter =+  ListCustomLineItemVersionsFilter'+    { billingPeriodRange =+        Prelude.Nothing+    }++-- | The billing period range in which the custom line item version is+-- applied.+listCustomLineItemVersionsFilter_billingPeriodRange :: Lens.Lens' ListCustomLineItemVersionsFilter (Prelude.Maybe ListCustomLineItemVersionsBillingPeriodRangeFilter)+listCustomLineItemVersionsFilter_billingPeriodRange = Lens.lens (\ListCustomLineItemVersionsFilter' {billingPeriodRange} -> billingPeriodRange) (\s@ListCustomLineItemVersionsFilter' {} a -> s {billingPeriodRange = a} :: ListCustomLineItemVersionsFilter)++instance+  Prelude.Hashable+    ListCustomLineItemVersionsFilter+  where+  hashWithSalt+    _salt+    ListCustomLineItemVersionsFilter' {..} =+      _salt `Prelude.hashWithSalt` billingPeriodRange++instance+  Prelude.NFData+    ListCustomLineItemVersionsFilter+  where+  rnf ListCustomLineItemVersionsFilter' {..} =+    Prelude.rnf billingPeriodRange++instance Data.ToJSON ListCustomLineItemVersionsFilter where+  toJSON ListCustomLineItemVersionsFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingPeriodRange" Data..=)+              Prelude.<$> billingPeriodRange+          ]+      )
+ gen/Amazonka/BillingConductor/Types/ListCustomLineItemsFilter.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.ListCustomLineItemsFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.ListCustomLineItemsFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A filter that specifies the custom line items and billing groups to+-- retrieve FFLI information.+--+-- /See:/ 'newListCustomLineItemsFilter' smart constructor.+data ListCustomLineItemsFilter = ListCustomLineItemsFilter'+  { -- | A list of custom line item ARNs to retrieve information.+    arns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The billing group Amazon Resource Names (ARNs) to retrieve information.+    billingGroups :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | A list of custom line items to retrieve information.+    names :: Prelude.Maybe (Prelude.NonEmpty (Data.Sensitive Prelude.Text))+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomLineItemsFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arns', 'listCustomLineItemsFilter_arns' - A list of custom line item ARNs to retrieve information.+--+-- 'billingGroups', 'listCustomLineItemsFilter_billingGroups' - The billing group Amazon Resource Names (ARNs) to retrieve information.+--+-- 'names', 'listCustomLineItemsFilter_names' - A list of custom line items to retrieve information.+newListCustomLineItemsFilter ::+  ListCustomLineItemsFilter+newListCustomLineItemsFilter =+  ListCustomLineItemsFilter'+    { arns = Prelude.Nothing,+      billingGroups = Prelude.Nothing,+      names = Prelude.Nothing+    }++-- | A list of custom line item ARNs to retrieve information.+listCustomLineItemsFilter_arns :: Lens.Lens' ListCustomLineItemsFilter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listCustomLineItemsFilter_arns = Lens.lens (\ListCustomLineItemsFilter' {arns} -> arns) (\s@ListCustomLineItemsFilter' {} a -> s {arns = a} :: ListCustomLineItemsFilter) Prelude.. Lens.mapping Lens.coerced++-- | The billing group Amazon Resource Names (ARNs) to retrieve information.+listCustomLineItemsFilter_billingGroups :: Lens.Lens' ListCustomLineItemsFilter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listCustomLineItemsFilter_billingGroups = Lens.lens (\ListCustomLineItemsFilter' {billingGroups} -> billingGroups) (\s@ListCustomLineItemsFilter' {} a -> s {billingGroups = a} :: ListCustomLineItemsFilter) Prelude.. Lens.mapping Lens.coerced++-- | A list of custom line items to retrieve information.+listCustomLineItemsFilter_names :: Lens.Lens' ListCustomLineItemsFilter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listCustomLineItemsFilter_names = Lens.lens (\ListCustomLineItemsFilter' {names} -> names) (\s@ListCustomLineItemsFilter' {} a -> s {names = a} :: ListCustomLineItemsFilter) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable ListCustomLineItemsFilter where+  hashWithSalt _salt ListCustomLineItemsFilter' {..} =+    _salt+      `Prelude.hashWithSalt` arns+      `Prelude.hashWithSalt` billingGroups+      `Prelude.hashWithSalt` names++instance Prelude.NFData ListCustomLineItemsFilter where+  rnf ListCustomLineItemsFilter' {..} =+    Prelude.rnf arns+      `Prelude.seq` Prelude.rnf billingGroups+      `Prelude.seq` Prelude.rnf names++instance Data.ToJSON ListCustomLineItemsFilter where+  toJSON ListCustomLineItemsFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Arns" Data..=) Prelude.<$> arns,+            ("BillingGroups" Data..=) Prelude.<$> billingGroups,+            ("Names" Data..=) Prelude.<$> names+          ]+      )
+ gen/Amazonka/BillingConductor/Types/ListPricingPlansFilter.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.ListPricingPlansFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.ListPricingPlansFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The filter that specifies the Amazon Resource Names (ARNs) of pricing+-- plans, to retrieve pricing plan information.+--+-- /See:/ 'newListPricingPlansFilter' smart constructor.+data ListPricingPlansFilter = ListPricingPlansFilter'+  { -- | A list of pricing plan Amazon Resource Names (ARNs) to retrieve+    -- information.+    arns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPricingPlansFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arns', 'listPricingPlansFilter_arns' - A list of pricing plan Amazon Resource Names (ARNs) to retrieve+-- information.+newListPricingPlansFilter ::+  ListPricingPlansFilter+newListPricingPlansFilter =+  ListPricingPlansFilter' {arns = Prelude.Nothing}++-- | A list of pricing plan Amazon Resource Names (ARNs) to retrieve+-- information.+listPricingPlansFilter_arns :: Lens.Lens' ListPricingPlansFilter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listPricingPlansFilter_arns = Lens.lens (\ListPricingPlansFilter' {arns} -> arns) (\s@ListPricingPlansFilter' {} a -> s {arns = a} :: ListPricingPlansFilter) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable ListPricingPlansFilter where+  hashWithSalt _salt ListPricingPlansFilter' {..} =+    _salt `Prelude.hashWithSalt` arns++instance Prelude.NFData ListPricingPlansFilter where+  rnf ListPricingPlansFilter' {..} = Prelude.rnf arns++instance Data.ToJSON ListPricingPlansFilter where+  toJSON ListPricingPlansFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Arns" Data..=) Prelude.<$> arns]+      )
+ gen/Amazonka/BillingConductor/Types/ListPricingRulesFilter.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.ListPricingRulesFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.ListPricingRulesFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The filter that specifies criteria that the pricing rules returned by+-- the @ListPricingRules@ API will adhere to.+--+-- /See:/ 'newListPricingRulesFilter' smart constructor.+data ListPricingRulesFilter = ListPricingRulesFilter'+  { -- | A list containing the pricing rule Amazon Resource Names (ARNs) to+    -- include in the API response.+    arns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPricingRulesFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arns', 'listPricingRulesFilter_arns' - A list containing the pricing rule Amazon Resource Names (ARNs) to+-- include in the API response.+newListPricingRulesFilter ::+  ListPricingRulesFilter+newListPricingRulesFilter =+  ListPricingRulesFilter' {arns = Prelude.Nothing}++-- | A list containing the pricing rule Amazon Resource Names (ARNs) to+-- include in the API response.+listPricingRulesFilter_arns :: Lens.Lens' ListPricingRulesFilter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listPricingRulesFilter_arns = Lens.lens (\ListPricingRulesFilter' {arns} -> arns) (\s@ListPricingRulesFilter' {} a -> s {arns = a} :: ListPricingRulesFilter) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable ListPricingRulesFilter where+  hashWithSalt _salt ListPricingRulesFilter' {..} =+    _salt `Prelude.hashWithSalt` arns++instance Prelude.NFData ListPricingRulesFilter where+  rnf ListPricingRulesFilter' {..} = Prelude.rnf arns++instance Data.ToJSON ListPricingRulesFilter where+  toJSON ListPricingRulesFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Arns" Data..=) Prelude.<$> arns]+      )
+ gen/Amazonka/BillingConductor/Types/ListResourcesAssociatedToCustomLineItemFilter.hs view
@@ -0,0 +1,88 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.ListResourcesAssociatedToCustomLineItemFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.ListResourcesAssociatedToCustomLineItemFilter where++import Amazonka.BillingConductor.Types.CustomLineItemRelationship+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A filter that specifies the type of resource associations that should be+-- retrieved for a custom line item.+--+-- /See:/ 'newListResourcesAssociatedToCustomLineItemFilter' smart constructor.+data ListResourcesAssociatedToCustomLineItemFilter = ListResourcesAssociatedToCustomLineItemFilter'+  { -- | The type of relationship between the custom line item and the associated+    -- resource.+    relationship :: Prelude.Maybe CustomLineItemRelationship+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListResourcesAssociatedToCustomLineItemFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'relationship', 'listResourcesAssociatedToCustomLineItemFilter_relationship' - The type of relationship between the custom line item and the associated+-- resource.+newListResourcesAssociatedToCustomLineItemFilter ::+  ListResourcesAssociatedToCustomLineItemFilter+newListResourcesAssociatedToCustomLineItemFilter =+  ListResourcesAssociatedToCustomLineItemFilter'+    { relationship =+        Prelude.Nothing+    }++-- | The type of relationship between the custom line item and the associated+-- resource.+listResourcesAssociatedToCustomLineItemFilter_relationship :: Lens.Lens' ListResourcesAssociatedToCustomLineItemFilter (Prelude.Maybe CustomLineItemRelationship)+listResourcesAssociatedToCustomLineItemFilter_relationship = Lens.lens (\ListResourcesAssociatedToCustomLineItemFilter' {relationship} -> relationship) (\s@ListResourcesAssociatedToCustomLineItemFilter' {} a -> s {relationship = a} :: ListResourcesAssociatedToCustomLineItemFilter)++instance+  Prelude.Hashable+    ListResourcesAssociatedToCustomLineItemFilter+  where+  hashWithSalt+    _salt+    ListResourcesAssociatedToCustomLineItemFilter' {..} =+      _salt `Prelude.hashWithSalt` relationship++instance+  Prelude.NFData+    ListResourcesAssociatedToCustomLineItemFilter+  where+  rnf+    ListResourcesAssociatedToCustomLineItemFilter' {..} =+      Prelude.rnf relationship++instance+  Data.ToJSON+    ListResourcesAssociatedToCustomLineItemFilter+  where+  toJSON+    ListResourcesAssociatedToCustomLineItemFilter' {..} =+      Data.object+        ( Prelude.catMaybes+            [("Relationship" Data..=) Prelude.<$> relationship]+        )
+ gen/Amazonka/BillingConductor/Types/ListResourcesAssociatedToCustomLineItemResponseElement.hs view
@@ -0,0 +1,115 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.ListResourcesAssociatedToCustomLineItemResponseElement+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.ListResourcesAssociatedToCustomLineItemResponseElement where++import Amazonka.BillingConductor.Types.CustomLineItemRelationship+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of a resource association for a custom line item.+--+-- /See:/ 'newListResourcesAssociatedToCustomLineItemResponseElement' smart constructor.+data ListResourcesAssociatedToCustomLineItemResponseElement = ListResourcesAssociatedToCustomLineItemResponseElement'+  { -- | The ARN of the associated resource.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The end billing period of the associated resource.+    endBillingPeriod :: Prelude.Maybe Prelude.Text,+    -- | The type of relationship between the custom line item and the associated+    -- resource.+    relationship :: Prelude.Maybe CustomLineItemRelationship+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListResourcesAssociatedToCustomLineItemResponseElement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'listResourcesAssociatedToCustomLineItemResponseElement_arn' - The ARN of the associated resource.+--+-- 'endBillingPeriod', 'listResourcesAssociatedToCustomLineItemResponseElement_endBillingPeriod' - The end billing period of the associated resource.+--+-- 'relationship', 'listResourcesAssociatedToCustomLineItemResponseElement_relationship' - The type of relationship between the custom line item and the associated+-- resource.+newListResourcesAssociatedToCustomLineItemResponseElement ::+  ListResourcesAssociatedToCustomLineItemResponseElement+newListResourcesAssociatedToCustomLineItemResponseElement =+  ListResourcesAssociatedToCustomLineItemResponseElement'+    { arn =+        Prelude.Nothing,+      endBillingPeriod =+        Prelude.Nothing,+      relationship =+        Prelude.Nothing+    }++-- | The ARN of the associated resource.+listResourcesAssociatedToCustomLineItemResponseElement_arn :: Lens.Lens' ListResourcesAssociatedToCustomLineItemResponseElement (Prelude.Maybe Prelude.Text)+listResourcesAssociatedToCustomLineItemResponseElement_arn = Lens.lens (\ListResourcesAssociatedToCustomLineItemResponseElement' {arn} -> arn) (\s@ListResourcesAssociatedToCustomLineItemResponseElement' {} a -> s {arn = a} :: ListResourcesAssociatedToCustomLineItemResponseElement)++-- | The end billing period of the associated resource.+listResourcesAssociatedToCustomLineItemResponseElement_endBillingPeriod :: Lens.Lens' ListResourcesAssociatedToCustomLineItemResponseElement (Prelude.Maybe Prelude.Text)+listResourcesAssociatedToCustomLineItemResponseElement_endBillingPeriod = Lens.lens (\ListResourcesAssociatedToCustomLineItemResponseElement' {endBillingPeriod} -> endBillingPeriod) (\s@ListResourcesAssociatedToCustomLineItemResponseElement' {} a -> s {endBillingPeriod = a} :: ListResourcesAssociatedToCustomLineItemResponseElement)++-- | The type of relationship between the custom line item and the associated+-- resource.+listResourcesAssociatedToCustomLineItemResponseElement_relationship :: Lens.Lens' ListResourcesAssociatedToCustomLineItemResponseElement (Prelude.Maybe CustomLineItemRelationship)+listResourcesAssociatedToCustomLineItemResponseElement_relationship = Lens.lens (\ListResourcesAssociatedToCustomLineItemResponseElement' {relationship} -> relationship) (\s@ListResourcesAssociatedToCustomLineItemResponseElement' {} a -> s {relationship = a} :: ListResourcesAssociatedToCustomLineItemResponseElement)++instance+  Data.FromJSON+    ListResourcesAssociatedToCustomLineItemResponseElement+  where+  parseJSON =+    Data.withObject+      "ListResourcesAssociatedToCustomLineItemResponseElement"+      ( \x ->+          ListResourcesAssociatedToCustomLineItemResponseElement'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "EndBillingPeriod")+            Prelude.<*> (x Data..:? "Relationship")+      )++instance+  Prelude.Hashable+    ListResourcesAssociatedToCustomLineItemResponseElement+  where+  hashWithSalt+    _salt+    ListResourcesAssociatedToCustomLineItemResponseElement' {..} =+      _salt+        `Prelude.hashWithSalt` arn+        `Prelude.hashWithSalt` endBillingPeriod+        `Prelude.hashWithSalt` relationship++instance+  Prelude.NFData+    ListResourcesAssociatedToCustomLineItemResponseElement+  where+  rnf+    ListResourcesAssociatedToCustomLineItemResponseElement' {..} =+      Prelude.rnf arn+        `Prelude.seq` Prelude.rnf endBillingPeriod+        `Prelude.seq` Prelude.rnf relationship
+ gen/Amazonka/BillingConductor/Types/PricingPlanListElement.hs view
@@ -0,0 +1,138 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.PricingPlanListElement+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.PricingPlanListElement where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of a pricing plan.+--+-- /See:/ 'newPricingPlanListElement' smart constructor.+data PricingPlanListElement = PricingPlanListElement'+  { -- | The pricing plan Amazon Resource Names (ARN). This can be used to+    -- uniquely identify a pricing plan.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time when the pricing plan was created.+    creationTime :: Prelude.Maybe Prelude.Integer,+    -- | The pricing plan description.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The most recent time when the pricing plan was modified.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | The name of a pricing plan.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The pricing rules count that\'s currently associated with this pricing+    -- plan list element.+    size :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PricingPlanListElement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'pricingPlanListElement_arn' - The pricing plan Amazon Resource Names (ARN). This can be used to+-- uniquely identify a pricing plan.+--+-- 'creationTime', 'pricingPlanListElement_creationTime' - The time when the pricing plan was created.+--+-- 'description', 'pricingPlanListElement_description' - The pricing plan description.+--+-- 'lastModifiedTime', 'pricingPlanListElement_lastModifiedTime' - The most recent time when the pricing plan was modified.+--+-- 'name', 'pricingPlanListElement_name' - The name of a pricing plan.+--+-- 'size', 'pricingPlanListElement_size' - The pricing rules count that\'s currently associated with this pricing+-- plan list element.+newPricingPlanListElement ::+  PricingPlanListElement+newPricingPlanListElement =+  PricingPlanListElement'+    { arn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      name = Prelude.Nothing,+      size = Prelude.Nothing+    }++-- | The pricing plan Amazon Resource Names (ARN). This can be used to+-- uniquely identify a pricing plan.+pricingPlanListElement_arn :: Lens.Lens' PricingPlanListElement (Prelude.Maybe Prelude.Text)+pricingPlanListElement_arn = Lens.lens (\PricingPlanListElement' {arn} -> arn) (\s@PricingPlanListElement' {} a -> s {arn = a} :: PricingPlanListElement)++-- | The time when the pricing plan was created.+pricingPlanListElement_creationTime :: Lens.Lens' PricingPlanListElement (Prelude.Maybe Prelude.Integer)+pricingPlanListElement_creationTime = Lens.lens (\PricingPlanListElement' {creationTime} -> creationTime) (\s@PricingPlanListElement' {} a -> s {creationTime = a} :: PricingPlanListElement)++-- | The pricing plan description.+pricingPlanListElement_description :: Lens.Lens' PricingPlanListElement (Prelude.Maybe Prelude.Text)+pricingPlanListElement_description = Lens.lens (\PricingPlanListElement' {description} -> description) (\s@PricingPlanListElement' {} a -> s {description = a} :: PricingPlanListElement) Prelude.. Lens.mapping Data._Sensitive++-- | The most recent time when the pricing plan was modified.+pricingPlanListElement_lastModifiedTime :: Lens.Lens' PricingPlanListElement (Prelude.Maybe Prelude.Integer)+pricingPlanListElement_lastModifiedTime = Lens.lens (\PricingPlanListElement' {lastModifiedTime} -> lastModifiedTime) (\s@PricingPlanListElement' {} a -> s {lastModifiedTime = a} :: PricingPlanListElement)++-- | The name of a pricing plan.+pricingPlanListElement_name :: Lens.Lens' PricingPlanListElement (Prelude.Maybe Prelude.Text)+pricingPlanListElement_name = Lens.lens (\PricingPlanListElement' {name} -> name) (\s@PricingPlanListElement' {} a -> s {name = a} :: PricingPlanListElement) Prelude.. Lens.mapping Data._Sensitive++-- | The pricing rules count that\'s currently associated with this pricing+-- plan list element.+pricingPlanListElement_size :: Lens.Lens' PricingPlanListElement (Prelude.Maybe Prelude.Natural)+pricingPlanListElement_size = Lens.lens (\PricingPlanListElement' {size} -> size) (\s@PricingPlanListElement' {} a -> s {size = a} :: PricingPlanListElement)++instance Data.FromJSON PricingPlanListElement where+  parseJSON =+    Data.withObject+      "PricingPlanListElement"+      ( \x ->+          PricingPlanListElement'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "LastModifiedTime")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Size")+      )++instance Prelude.Hashable PricingPlanListElement where+  hashWithSalt _salt PricingPlanListElement' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastModifiedTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` size++instance Prelude.NFData PricingPlanListElement where+  rnf PricingPlanListElement' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf size
+ gen/Amazonka/BillingConductor/Types/PricingRuleListElement.hs view
@@ -0,0 +1,219 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.PricingRuleListElement+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.PricingRuleListElement where++import Amazonka.BillingConductor.Types.PricingRuleScope+import Amazonka.BillingConductor.Types.PricingRuleType+import Amazonka.BillingConductor.Types.Tiering+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of a pricing rule.+--+-- /See:/ 'newPricingRuleListElement' smart constructor.+data PricingRuleListElement = PricingRuleListElement'+  { -- | The Amazon Resource Name (ARN) used to uniquely identify a pricing rule.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The pricing plans count that this pricing rule is associated with.+    associatedPricingPlanCount :: Prelude.Maybe Prelude.Natural,+    -- | The seller of services provided by Amazon Web Services, their+    -- affiliates, or third-party providers selling services via Amazon Web+    -- Services Marketplace.+    billingEntity :: Prelude.Maybe Prelude.Text,+    -- | The time when the pricing rule was created.+    creationTime :: Prelude.Maybe Prelude.Integer,+    -- | The pricing rule description.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The most recent time when the pricing rule was modified.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | A percentage modifier applied on the public pricing rates.+    modifierPercentage :: Prelude.Maybe Prelude.Double,+    -- | The name of a pricing rule.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The scope of pricing rule that indicates if it is globally applicable,+    -- or if it is service-specific.+    scope :: Prelude.Maybe PricingRuleScope,+    -- | If the @Scope@ attribute is @SERVICE@, this attribute indicates which+    -- service the @PricingRule@ is applicable for.+    service :: Prelude.Maybe Prelude.Text,+    -- | The set of tiering configurations for the pricing rule.+    tiering :: Prelude.Maybe Tiering,+    -- | The type of pricing rule.+    type' :: Prelude.Maybe PricingRuleType+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PricingRuleListElement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'pricingRuleListElement_arn' - The Amazon Resource Name (ARN) used to uniquely identify a pricing rule.+--+-- 'associatedPricingPlanCount', 'pricingRuleListElement_associatedPricingPlanCount' - The pricing plans count that this pricing rule is associated with.+--+-- 'billingEntity', 'pricingRuleListElement_billingEntity' - The seller of services provided by Amazon Web Services, their+-- affiliates, or third-party providers selling services via Amazon Web+-- Services Marketplace.+--+-- 'creationTime', 'pricingRuleListElement_creationTime' - The time when the pricing rule was created.+--+-- 'description', 'pricingRuleListElement_description' - The pricing rule description.+--+-- 'lastModifiedTime', 'pricingRuleListElement_lastModifiedTime' - The most recent time when the pricing rule was modified.+--+-- 'modifierPercentage', 'pricingRuleListElement_modifierPercentage' - A percentage modifier applied on the public pricing rates.+--+-- 'name', 'pricingRuleListElement_name' - The name of a pricing rule.+--+-- 'scope', 'pricingRuleListElement_scope' - The scope of pricing rule that indicates if it is globally applicable,+-- or if it is service-specific.+--+-- 'service', 'pricingRuleListElement_service' - If the @Scope@ attribute is @SERVICE@, this attribute indicates which+-- service the @PricingRule@ is applicable for.+--+-- 'tiering', 'pricingRuleListElement_tiering' - The set of tiering configurations for the pricing rule.+--+-- 'type'', 'pricingRuleListElement_type' - The type of pricing rule.+newPricingRuleListElement ::+  PricingRuleListElement+newPricingRuleListElement =+  PricingRuleListElement'+    { arn = Prelude.Nothing,+      associatedPricingPlanCount = Prelude.Nothing,+      billingEntity = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      modifierPercentage = Prelude.Nothing,+      name = Prelude.Nothing,+      scope = Prelude.Nothing,+      service = Prelude.Nothing,+      tiering = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) used to uniquely identify a pricing rule.+pricingRuleListElement_arn :: Lens.Lens' PricingRuleListElement (Prelude.Maybe Prelude.Text)+pricingRuleListElement_arn = Lens.lens (\PricingRuleListElement' {arn} -> arn) (\s@PricingRuleListElement' {} a -> s {arn = a} :: PricingRuleListElement)++-- | The pricing plans count that this pricing rule is associated with.+pricingRuleListElement_associatedPricingPlanCount :: Lens.Lens' PricingRuleListElement (Prelude.Maybe Prelude.Natural)+pricingRuleListElement_associatedPricingPlanCount = Lens.lens (\PricingRuleListElement' {associatedPricingPlanCount} -> associatedPricingPlanCount) (\s@PricingRuleListElement' {} a -> s {associatedPricingPlanCount = a} :: PricingRuleListElement)++-- | The seller of services provided by Amazon Web Services, their+-- affiliates, or third-party providers selling services via Amazon Web+-- Services Marketplace.+pricingRuleListElement_billingEntity :: Lens.Lens' PricingRuleListElement (Prelude.Maybe Prelude.Text)+pricingRuleListElement_billingEntity = Lens.lens (\PricingRuleListElement' {billingEntity} -> billingEntity) (\s@PricingRuleListElement' {} a -> s {billingEntity = a} :: PricingRuleListElement)++-- | The time when the pricing rule was created.+pricingRuleListElement_creationTime :: Lens.Lens' PricingRuleListElement (Prelude.Maybe Prelude.Integer)+pricingRuleListElement_creationTime = Lens.lens (\PricingRuleListElement' {creationTime} -> creationTime) (\s@PricingRuleListElement' {} a -> s {creationTime = a} :: PricingRuleListElement)++-- | The pricing rule description.+pricingRuleListElement_description :: Lens.Lens' PricingRuleListElement (Prelude.Maybe Prelude.Text)+pricingRuleListElement_description = Lens.lens (\PricingRuleListElement' {description} -> description) (\s@PricingRuleListElement' {} a -> s {description = a} :: PricingRuleListElement) Prelude.. Lens.mapping Data._Sensitive++-- | The most recent time when the pricing rule was modified.+pricingRuleListElement_lastModifiedTime :: Lens.Lens' PricingRuleListElement (Prelude.Maybe Prelude.Integer)+pricingRuleListElement_lastModifiedTime = Lens.lens (\PricingRuleListElement' {lastModifiedTime} -> lastModifiedTime) (\s@PricingRuleListElement' {} a -> s {lastModifiedTime = a} :: PricingRuleListElement)++-- | A percentage modifier applied on the public pricing rates.+pricingRuleListElement_modifierPercentage :: Lens.Lens' PricingRuleListElement (Prelude.Maybe Prelude.Double)+pricingRuleListElement_modifierPercentage = Lens.lens (\PricingRuleListElement' {modifierPercentage} -> modifierPercentage) (\s@PricingRuleListElement' {} a -> s {modifierPercentage = a} :: PricingRuleListElement)++-- | The name of a pricing rule.+pricingRuleListElement_name :: Lens.Lens' PricingRuleListElement (Prelude.Maybe Prelude.Text)+pricingRuleListElement_name = Lens.lens (\PricingRuleListElement' {name} -> name) (\s@PricingRuleListElement' {} a -> s {name = a} :: PricingRuleListElement) Prelude.. Lens.mapping Data._Sensitive++-- | The scope of pricing rule that indicates if it is globally applicable,+-- or if it is service-specific.+pricingRuleListElement_scope :: Lens.Lens' PricingRuleListElement (Prelude.Maybe PricingRuleScope)+pricingRuleListElement_scope = Lens.lens (\PricingRuleListElement' {scope} -> scope) (\s@PricingRuleListElement' {} a -> s {scope = a} :: PricingRuleListElement)++-- | If the @Scope@ attribute is @SERVICE@, this attribute indicates which+-- service the @PricingRule@ is applicable for.+pricingRuleListElement_service :: Lens.Lens' PricingRuleListElement (Prelude.Maybe Prelude.Text)+pricingRuleListElement_service = Lens.lens (\PricingRuleListElement' {service} -> service) (\s@PricingRuleListElement' {} a -> s {service = a} :: PricingRuleListElement)++-- | The set of tiering configurations for the pricing rule.+pricingRuleListElement_tiering :: Lens.Lens' PricingRuleListElement (Prelude.Maybe Tiering)+pricingRuleListElement_tiering = Lens.lens (\PricingRuleListElement' {tiering} -> tiering) (\s@PricingRuleListElement' {} a -> s {tiering = a} :: PricingRuleListElement)++-- | The type of pricing rule.+pricingRuleListElement_type :: Lens.Lens' PricingRuleListElement (Prelude.Maybe PricingRuleType)+pricingRuleListElement_type = Lens.lens (\PricingRuleListElement' {type'} -> type') (\s@PricingRuleListElement' {} a -> s {type' = a} :: PricingRuleListElement)++instance Data.FromJSON PricingRuleListElement where+  parseJSON =+    Data.withObject+      "PricingRuleListElement"+      ( \x ->+          PricingRuleListElement'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "AssociatedPricingPlanCount")+            Prelude.<*> (x Data..:? "BillingEntity")+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "LastModifiedTime")+            Prelude.<*> (x Data..:? "ModifierPercentage")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Scope")+            Prelude.<*> (x Data..:? "Service")+            Prelude.<*> (x Data..:? "Tiering")+            Prelude.<*> (x Data..:? "Type")+      )++instance Prelude.Hashable PricingRuleListElement where+  hashWithSalt _salt PricingRuleListElement' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` associatedPricingPlanCount+      `Prelude.hashWithSalt` billingEntity+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastModifiedTime+      `Prelude.hashWithSalt` modifierPercentage+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` scope+      `Prelude.hashWithSalt` service+      `Prelude.hashWithSalt` tiering+      `Prelude.hashWithSalt` type'++instance Prelude.NFData PricingRuleListElement where+  rnf PricingRuleListElement' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf associatedPricingPlanCount+      `Prelude.seq` Prelude.rnf billingEntity+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf modifierPercentage+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf scope+      `Prelude.seq` Prelude.rnf service+      `Prelude.seq` Prelude.rnf tiering+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/BillingConductor/Types/PricingRuleScope.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.PricingRuleScope+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.PricingRuleScope+  ( PricingRuleScope+      ( ..,+        PricingRuleScope_BILLING_ENTITY,+        PricingRuleScope_GLOBAL,+        PricingRuleScope_SERVICE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PricingRuleScope = PricingRuleScope'+  { fromPricingRuleScope ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern PricingRuleScope_BILLING_ENTITY :: PricingRuleScope+pattern PricingRuleScope_BILLING_ENTITY = PricingRuleScope' "BILLING_ENTITY"++pattern PricingRuleScope_GLOBAL :: PricingRuleScope+pattern PricingRuleScope_GLOBAL = PricingRuleScope' "GLOBAL"++pattern PricingRuleScope_SERVICE :: PricingRuleScope+pattern PricingRuleScope_SERVICE = PricingRuleScope' "SERVICE"++{-# COMPLETE+  PricingRuleScope_BILLING_ENTITY,+  PricingRuleScope_GLOBAL,+  PricingRuleScope_SERVICE,+  PricingRuleScope'+  #-}
+ gen/Amazonka/BillingConductor/Types/PricingRuleType.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.PricingRuleType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.PricingRuleType+  ( PricingRuleType+      ( ..,+        PricingRuleType_DISCOUNT,+        PricingRuleType_MARKUP,+        PricingRuleType_TIERING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PricingRuleType = PricingRuleType'+  { fromPricingRuleType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern PricingRuleType_DISCOUNT :: PricingRuleType+pattern PricingRuleType_DISCOUNT = PricingRuleType' "DISCOUNT"++pattern PricingRuleType_MARKUP :: PricingRuleType+pattern PricingRuleType_MARKUP = PricingRuleType' "MARKUP"++pattern PricingRuleType_TIERING :: PricingRuleType+pattern PricingRuleType_TIERING = PricingRuleType' "TIERING"++{-# COMPLETE+  PricingRuleType_DISCOUNT,+  PricingRuleType_MARKUP,+  PricingRuleType_TIERING,+  PricingRuleType'+  #-}
+ gen/Amazonka/BillingConductor/Types/Tiering.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.Tiering+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.Tiering where++import Amazonka.BillingConductor.Types.FreeTierConfig+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The set of tiering configurations for the pricing rule.+--+-- /See:/ 'newTiering' smart constructor.+data Tiering = Tiering'+  { -- | The possible Amazon Web Services Free Tier configurations.+    freeTier :: FreeTierConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Tiering' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'freeTier', 'tiering_freeTier' - The possible Amazon Web Services Free Tier configurations.+newTiering ::+  -- | 'freeTier'+  FreeTierConfig ->+  Tiering+newTiering pFreeTier_ =+  Tiering' {freeTier = pFreeTier_}++-- | The possible Amazon Web Services Free Tier configurations.+tiering_freeTier :: Lens.Lens' Tiering FreeTierConfig+tiering_freeTier = Lens.lens (\Tiering' {freeTier} -> freeTier) (\s@Tiering' {} a -> s {freeTier = a} :: Tiering)++instance Data.FromJSON Tiering where+  parseJSON =+    Data.withObject+      "Tiering"+      (\x -> Tiering' Prelude.<$> (x Data..: "FreeTier"))++instance Prelude.Hashable Tiering where+  hashWithSalt _salt Tiering' {..} =+    _salt `Prelude.hashWithSalt` freeTier++instance Prelude.NFData Tiering where+  rnf Tiering' {..} = Prelude.rnf freeTier
+ gen/Amazonka/BillingConductor/Types/UpdateCustomLineItemChargeDetails.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.UpdateCustomLineItemChargeDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.UpdateCustomLineItemChargeDetails where++import Amazonka.BillingConductor.Types.UpdateCustomLineItemFlatChargeDetails+import Amazonka.BillingConductor.Types.UpdateCustomLineItemPercentageChargeDetails+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of the new charge details of a custom line item. This+-- should contain only one of @Flat@ or @Percentage@.+--+-- /See:/ 'newUpdateCustomLineItemChargeDetails' smart constructor.+data UpdateCustomLineItemChargeDetails = UpdateCustomLineItemChargeDetails'+  { -- | An @UpdateCustomLineItemFlatChargeDetails@ that describes the new charge+    -- details of a flat custom line item.+    flat :: Prelude.Maybe UpdateCustomLineItemFlatChargeDetails,+    -- | An @UpdateCustomLineItemPercentageChargeDetails@ that describes the new+    -- charge details of a percentage custom line item.+    percentage :: Prelude.Maybe UpdateCustomLineItemPercentageChargeDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCustomLineItemChargeDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flat', 'updateCustomLineItemChargeDetails_flat' - An @UpdateCustomLineItemFlatChargeDetails@ that describes the new charge+-- details of a flat custom line item.+--+-- 'percentage', 'updateCustomLineItemChargeDetails_percentage' - An @UpdateCustomLineItemPercentageChargeDetails@ that describes the new+-- charge details of a percentage custom line item.+newUpdateCustomLineItemChargeDetails ::+  UpdateCustomLineItemChargeDetails+newUpdateCustomLineItemChargeDetails =+  UpdateCustomLineItemChargeDetails'+    { flat =+        Prelude.Nothing,+      percentage = Prelude.Nothing+    }++-- | An @UpdateCustomLineItemFlatChargeDetails@ that describes the new charge+-- details of a flat custom line item.+updateCustomLineItemChargeDetails_flat :: Lens.Lens' UpdateCustomLineItemChargeDetails (Prelude.Maybe UpdateCustomLineItemFlatChargeDetails)+updateCustomLineItemChargeDetails_flat = Lens.lens (\UpdateCustomLineItemChargeDetails' {flat} -> flat) (\s@UpdateCustomLineItemChargeDetails' {} a -> s {flat = a} :: UpdateCustomLineItemChargeDetails)++-- | An @UpdateCustomLineItemPercentageChargeDetails@ that describes the new+-- charge details of a percentage custom line item.+updateCustomLineItemChargeDetails_percentage :: Lens.Lens' UpdateCustomLineItemChargeDetails (Prelude.Maybe UpdateCustomLineItemPercentageChargeDetails)+updateCustomLineItemChargeDetails_percentage = Lens.lens (\UpdateCustomLineItemChargeDetails' {percentage} -> percentage) (\s@UpdateCustomLineItemChargeDetails' {} a -> s {percentage = a} :: UpdateCustomLineItemChargeDetails)++instance+  Prelude.Hashable+    UpdateCustomLineItemChargeDetails+  where+  hashWithSalt+    _salt+    UpdateCustomLineItemChargeDetails' {..} =+      _salt+        `Prelude.hashWithSalt` flat+        `Prelude.hashWithSalt` percentage++instance+  Prelude.NFData+    UpdateCustomLineItemChargeDetails+  where+  rnf UpdateCustomLineItemChargeDetails' {..} =+    Prelude.rnf flat+      `Prelude.seq` Prelude.rnf percentage++instance+  Data.ToJSON+    UpdateCustomLineItemChargeDetails+  where+  toJSON UpdateCustomLineItemChargeDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Flat" Data..=) Prelude.<$> flat,+            ("Percentage" Data..=) Prelude.<$> percentage+          ]+      )
+ gen/Amazonka/BillingConductor/Types/UpdateCustomLineItemFlatChargeDetails.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.UpdateCustomLineItemFlatChargeDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.UpdateCustomLineItemFlatChargeDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of the new charge details that are associated with a+-- flat custom line item.+--+-- /See:/ 'newUpdateCustomLineItemFlatChargeDetails' smart constructor.+data UpdateCustomLineItemFlatChargeDetails = UpdateCustomLineItemFlatChargeDetails'+  { -- | The custom line item\'s new fixed charge value in USD.+    chargeValue :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCustomLineItemFlatChargeDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'chargeValue', 'updateCustomLineItemFlatChargeDetails_chargeValue' - The custom line item\'s new fixed charge value in USD.+newUpdateCustomLineItemFlatChargeDetails ::+  -- | 'chargeValue'+  Prelude.Double ->+  UpdateCustomLineItemFlatChargeDetails+newUpdateCustomLineItemFlatChargeDetails+  pChargeValue_ =+    UpdateCustomLineItemFlatChargeDetails'+      { chargeValue =+          pChargeValue_+      }++-- | The custom line item\'s new fixed charge value in USD.+updateCustomLineItemFlatChargeDetails_chargeValue :: Lens.Lens' UpdateCustomLineItemFlatChargeDetails Prelude.Double+updateCustomLineItemFlatChargeDetails_chargeValue = Lens.lens (\UpdateCustomLineItemFlatChargeDetails' {chargeValue} -> chargeValue) (\s@UpdateCustomLineItemFlatChargeDetails' {} a -> s {chargeValue = a} :: UpdateCustomLineItemFlatChargeDetails)++instance+  Prelude.Hashable+    UpdateCustomLineItemFlatChargeDetails+  where+  hashWithSalt+    _salt+    UpdateCustomLineItemFlatChargeDetails' {..} =+      _salt `Prelude.hashWithSalt` chargeValue++instance+  Prelude.NFData+    UpdateCustomLineItemFlatChargeDetails+  where+  rnf UpdateCustomLineItemFlatChargeDetails' {..} =+    Prelude.rnf chargeValue++instance+  Data.ToJSON+    UpdateCustomLineItemFlatChargeDetails+  where+  toJSON UpdateCustomLineItemFlatChargeDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("ChargeValue" Data..= chargeValue)]+      )
+ gen/Amazonka/BillingConductor/Types/UpdateCustomLineItemPercentageChargeDetails.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.UpdateCustomLineItemPercentageChargeDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.UpdateCustomLineItemPercentageChargeDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A representation of the new charge details that are associated with a+-- percentage custom line item.+--+-- /See:/ 'newUpdateCustomLineItemPercentageChargeDetails' smart constructor.+data UpdateCustomLineItemPercentageChargeDetails = UpdateCustomLineItemPercentageChargeDetails'+  { -- | The custom line item\'s new percentage value. This will be multiplied+    -- against the combined value of its associated resources to determine its+    -- charge value.+    percentageValue :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCustomLineItemPercentageChargeDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'percentageValue', 'updateCustomLineItemPercentageChargeDetails_percentageValue' - The custom line item\'s new percentage value. This will be multiplied+-- against the combined value of its associated resources to determine its+-- charge value.+newUpdateCustomLineItemPercentageChargeDetails ::+  -- | 'percentageValue'+  Prelude.Double ->+  UpdateCustomLineItemPercentageChargeDetails+newUpdateCustomLineItemPercentageChargeDetails+  pPercentageValue_ =+    UpdateCustomLineItemPercentageChargeDetails'+      { percentageValue =+          pPercentageValue_+      }++-- | The custom line item\'s new percentage value. This will be multiplied+-- against the combined value of its associated resources to determine its+-- charge value.+updateCustomLineItemPercentageChargeDetails_percentageValue :: Lens.Lens' UpdateCustomLineItemPercentageChargeDetails Prelude.Double+updateCustomLineItemPercentageChargeDetails_percentageValue = Lens.lens (\UpdateCustomLineItemPercentageChargeDetails' {percentageValue} -> percentageValue) (\s@UpdateCustomLineItemPercentageChargeDetails' {} a -> s {percentageValue = a} :: UpdateCustomLineItemPercentageChargeDetails)++instance+  Prelude.Hashable+    UpdateCustomLineItemPercentageChargeDetails+  where+  hashWithSalt+    _salt+    UpdateCustomLineItemPercentageChargeDetails' {..} =+      _salt `Prelude.hashWithSalt` percentageValue++instance+  Prelude.NFData+    UpdateCustomLineItemPercentageChargeDetails+  where+  rnf UpdateCustomLineItemPercentageChargeDetails' {..} =+    Prelude.rnf percentageValue++instance+  Data.ToJSON+    UpdateCustomLineItemPercentageChargeDetails+  where+  toJSON+    UpdateCustomLineItemPercentageChargeDetails' {..} =+      Data.object+        ( Prelude.catMaybes+            [ Prelude.Just+                ("PercentageValue" Data..= percentageValue)+            ]+        )
+ gen/Amazonka/BillingConductor/Types/UpdateFreeTierConfig.hs view
@@ -0,0 +1,77 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.UpdateFreeTierConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.UpdateFreeTierConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The possible Amazon Web Services Free Tier configurations.+--+-- /See:/ 'newUpdateFreeTierConfig' smart constructor.+data UpdateFreeTierConfig = UpdateFreeTierConfig'+  { -- | Activate or deactivate application of Amazon Web Services Free Tier.+    activated :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFreeTierConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'activated', 'updateFreeTierConfig_activated' - Activate or deactivate application of Amazon Web Services Free Tier.+newUpdateFreeTierConfig ::+  -- | 'activated'+  Prelude.Bool ->+  UpdateFreeTierConfig+newUpdateFreeTierConfig pActivated_ =+  UpdateFreeTierConfig' {activated = pActivated_}++-- | Activate or deactivate application of Amazon Web Services Free Tier.+updateFreeTierConfig_activated :: Lens.Lens' UpdateFreeTierConfig Prelude.Bool+updateFreeTierConfig_activated = Lens.lens (\UpdateFreeTierConfig' {activated} -> activated) (\s@UpdateFreeTierConfig' {} a -> s {activated = a} :: UpdateFreeTierConfig)++instance Data.FromJSON UpdateFreeTierConfig where+  parseJSON =+    Data.withObject+      "UpdateFreeTierConfig"+      ( \x ->+          UpdateFreeTierConfig'+            Prelude.<$> (x Data..: "Activated")+      )++instance Prelude.Hashable UpdateFreeTierConfig where+  hashWithSalt _salt UpdateFreeTierConfig' {..} =+    _salt `Prelude.hashWithSalt` activated++instance Prelude.NFData UpdateFreeTierConfig where+  rnf UpdateFreeTierConfig' {..} = Prelude.rnf activated++instance Data.ToJSON UpdateFreeTierConfig where+  toJSON UpdateFreeTierConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Activated" Data..= activated)]+      )
+ gen/Amazonka/BillingConductor/Types/UpdateTieringInput.hs view
@@ -0,0 +1,78 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Types.UpdateTieringInput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Types.UpdateTieringInput where++import Amazonka.BillingConductor.Types.UpdateFreeTierConfig+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The set of tiering configurations for the pricing rule.+--+-- /See:/ 'newUpdateTieringInput' smart constructor.+data UpdateTieringInput = UpdateTieringInput'+  { -- | The possible Amazon Web Services Free Tier configurations.+    freeTier :: UpdateFreeTierConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateTieringInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'freeTier', 'updateTieringInput_freeTier' - The possible Amazon Web Services Free Tier configurations.+newUpdateTieringInput ::+  -- | 'freeTier'+  UpdateFreeTierConfig ->+  UpdateTieringInput+newUpdateTieringInput pFreeTier_ =+  UpdateTieringInput' {freeTier = pFreeTier_}++-- | The possible Amazon Web Services Free Tier configurations.+updateTieringInput_freeTier :: Lens.Lens' UpdateTieringInput UpdateFreeTierConfig+updateTieringInput_freeTier = Lens.lens (\UpdateTieringInput' {freeTier} -> freeTier) (\s@UpdateTieringInput' {} a -> s {freeTier = a} :: UpdateTieringInput)++instance Data.FromJSON UpdateTieringInput where+  parseJSON =+    Data.withObject+      "UpdateTieringInput"+      ( \x ->+          UpdateTieringInput'+            Prelude.<$> (x Data..: "FreeTier")+      )++instance Prelude.Hashable UpdateTieringInput where+  hashWithSalt _salt UpdateTieringInput' {..} =+    _salt `Prelude.hashWithSalt` freeTier++instance Prelude.NFData UpdateTieringInput where+  rnf UpdateTieringInput' {..} = Prelude.rnf freeTier++instance Data.ToJSON UpdateTieringInput where+  toJSON UpdateTieringInput' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("FreeTier" Data..= freeTier)]+      )
+ gen/Amazonka/BillingConductor/UntagResource.hs view
@@ -0,0 +1,163 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes specified tags from a resource.+module Amazonka.BillingConductor.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,++    -- * Response Lenses+    untagResourceResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The Amazon Resource Name (ARN) of the resource to which to delete tags.+    resourceArn :: Prelude.Text,+    -- | The tags to delete from the resource as a list of key-value pairs.+    tagKeys :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource to which to delete tags.+--+-- 'tagKeys', 'untagResource_tagKeys' - The tags to delete from the resource as a list of key-value pairs.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  -- | 'tagKeys'+  Prelude.NonEmpty Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ pTagKeys_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Lens.coerced Lens.# pTagKeys_+    }++-- | The Amazon Resource Name (ARN) of the resource to which to delete tags.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The tags to delete from the resource as a list of key-value pairs.+untagResource_tagKeys :: Lens.Lens' UntagResource (Prelude.NonEmpty Prelude.Text)+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+  UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+  rnf UntagResourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/UpdateBillingGroup.hs view
@@ -0,0 +1,336 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.UpdateBillingGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This updates an existing billing group.+module Amazonka.BillingConductor.UpdateBillingGroup+  ( -- * Creating a Request+    UpdateBillingGroup (..),+    newUpdateBillingGroup,++    -- * Request Lenses+    updateBillingGroup_computationPreference,+    updateBillingGroup_description,+    updateBillingGroup_name,+    updateBillingGroup_status,+    updateBillingGroup_arn,++    -- * Destructuring the Response+    UpdateBillingGroupResponse (..),+    newUpdateBillingGroupResponse,++    -- * Response Lenses+    updateBillingGroupResponse_arn,+    updateBillingGroupResponse_description,+    updateBillingGroupResponse_lastModifiedTime,+    updateBillingGroupResponse_name,+    updateBillingGroupResponse_pricingPlanArn,+    updateBillingGroupResponse_primaryAccountId,+    updateBillingGroupResponse_size,+    updateBillingGroupResponse_status,+    updateBillingGroupResponse_statusReason,+    updateBillingGroupResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateBillingGroup' smart constructor.+data UpdateBillingGroup = UpdateBillingGroup'+  { -- | The preferences and settings that will be used to compute the Amazon Web+    -- Services charges for a billing group.+    computationPreference :: Prelude.Maybe ComputationPreference,+    -- | A description of the billing group.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The name of the billing group. The names must be unique to each billing+    -- group.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The status of the billing group. Only one of the valid values can be+    -- used.+    status :: Prelude.Maybe BillingGroupStatus,+    -- | The Amazon Resource Name (ARN) of the billing group being updated.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateBillingGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'computationPreference', 'updateBillingGroup_computationPreference' - The preferences and settings that will be used to compute the Amazon Web+-- Services charges for a billing group.+--+-- 'description', 'updateBillingGroup_description' - A description of the billing group.+--+-- 'name', 'updateBillingGroup_name' - The name of the billing group. The names must be unique to each billing+-- group.+--+-- 'status', 'updateBillingGroup_status' - The status of the billing group. Only one of the valid values can be+-- used.+--+-- 'arn', 'updateBillingGroup_arn' - The Amazon Resource Name (ARN) of the billing group being updated.+newUpdateBillingGroup ::+  -- | 'arn'+  Prelude.Text ->+  UpdateBillingGroup+newUpdateBillingGroup pArn_ =+  UpdateBillingGroup'+    { computationPreference =+        Prelude.Nothing,+      description = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing,+      arn = pArn_+    }++-- | The preferences and settings that will be used to compute the Amazon Web+-- Services charges for a billing group.+updateBillingGroup_computationPreference :: Lens.Lens' UpdateBillingGroup (Prelude.Maybe ComputationPreference)+updateBillingGroup_computationPreference = Lens.lens (\UpdateBillingGroup' {computationPreference} -> computationPreference) (\s@UpdateBillingGroup' {} a -> s {computationPreference = a} :: UpdateBillingGroup)++-- | A description of the billing group.+updateBillingGroup_description :: Lens.Lens' UpdateBillingGroup (Prelude.Maybe Prelude.Text)+updateBillingGroup_description = Lens.lens (\UpdateBillingGroup' {description} -> description) (\s@UpdateBillingGroup' {} a -> s {description = a} :: UpdateBillingGroup) Prelude.. Lens.mapping Data._Sensitive++-- | The name of the billing group. The names must be unique to each billing+-- group.+updateBillingGroup_name :: Lens.Lens' UpdateBillingGroup (Prelude.Maybe Prelude.Text)+updateBillingGroup_name = Lens.lens (\UpdateBillingGroup' {name} -> name) (\s@UpdateBillingGroup' {} a -> s {name = a} :: UpdateBillingGroup) Prelude.. Lens.mapping Data._Sensitive++-- | The status of the billing group. Only one of the valid values can be+-- used.+updateBillingGroup_status :: Lens.Lens' UpdateBillingGroup (Prelude.Maybe BillingGroupStatus)+updateBillingGroup_status = Lens.lens (\UpdateBillingGroup' {status} -> status) (\s@UpdateBillingGroup' {} a -> s {status = a} :: UpdateBillingGroup)++-- | The Amazon Resource Name (ARN) of the billing group being updated.+updateBillingGroup_arn :: Lens.Lens' UpdateBillingGroup Prelude.Text+updateBillingGroup_arn = Lens.lens (\UpdateBillingGroup' {arn} -> arn) (\s@UpdateBillingGroup' {} a -> s {arn = a} :: UpdateBillingGroup)++instance Core.AWSRequest UpdateBillingGroup where+  type+    AWSResponse UpdateBillingGroup =+      UpdateBillingGroupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateBillingGroupResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "PricingPlanArn")+            Prelude.<*> (x Data..?> "PrimaryAccountId")+            Prelude.<*> (x Data..?> "Size")+            Prelude.<*> (x Data..?> "Status")+            Prelude.<*> (x Data..?> "StatusReason")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateBillingGroup where+  hashWithSalt _salt UpdateBillingGroup' {..} =+    _salt+      `Prelude.hashWithSalt` computationPreference+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` arn++instance Prelude.NFData UpdateBillingGroup where+  rnf UpdateBillingGroup' {..} =+    Prelude.rnf computationPreference+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf arn++instance Data.ToHeaders UpdateBillingGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateBillingGroup where+  toJSON UpdateBillingGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ComputationPreference" Data..=)+              Prelude.<$> computationPreference,+            ("Description" Data..=) Prelude.<$> description,+            ("Name" Data..=) Prelude.<$> name,+            ("Status" Data..=) Prelude.<$> status,+            Prelude.Just ("Arn" Data..= arn)+          ]+      )++instance Data.ToPath UpdateBillingGroup where+  toPath = Prelude.const "/update-billing-group"++instance Data.ToQuery UpdateBillingGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateBillingGroupResponse' smart constructor.+data UpdateBillingGroupResponse = UpdateBillingGroupResponse'+  { -- | The Amazon Resource Name (ARN) of the billing group that was updated.+    arn :: Prelude.Maybe Prelude.Text,+    -- | A description of the billing group.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The most recent time when the billing group was modified.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | The name of the billing group. The names must be unique to each billing+    -- group.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The Amazon Resource Name (ARN) of the pricing plan to compute Amazon Web+    -- Services charges for the billing group.+    pricingPlanArn :: Prelude.Maybe Prelude.Text,+    -- | The account ID that serves as the main account in a billing group.+    primaryAccountId :: Prelude.Maybe Prelude.Text,+    -- | The number of accounts in the particular billing group.+    size :: Prelude.Maybe Prelude.Natural,+    -- | The status of the billing group. Only one of the valid values can be+    -- used.+    status :: Prelude.Maybe BillingGroupStatus,+    -- | The reason why the billing group is in its current status.+    statusReason :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateBillingGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'updateBillingGroupResponse_arn' - The Amazon Resource Name (ARN) of the billing group that was updated.+--+-- 'description', 'updateBillingGroupResponse_description' - A description of the billing group.+--+-- 'lastModifiedTime', 'updateBillingGroupResponse_lastModifiedTime' - The most recent time when the billing group was modified.+--+-- 'name', 'updateBillingGroupResponse_name' - The name of the billing group. The names must be unique to each billing+-- group.+--+-- 'pricingPlanArn', 'updateBillingGroupResponse_pricingPlanArn' - The Amazon Resource Name (ARN) of the pricing plan to compute Amazon Web+-- Services charges for the billing group.+--+-- 'primaryAccountId', 'updateBillingGroupResponse_primaryAccountId' - The account ID that serves as the main account in a billing group.+--+-- 'size', 'updateBillingGroupResponse_size' - The number of accounts in the particular billing group.+--+-- 'status', 'updateBillingGroupResponse_status' - The status of the billing group. Only one of the valid values can be+-- used.+--+-- 'statusReason', 'updateBillingGroupResponse_statusReason' - The reason why the billing group is in its current status.+--+-- 'httpStatus', 'updateBillingGroupResponse_httpStatus' - The response's http status code.+newUpdateBillingGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateBillingGroupResponse+newUpdateBillingGroupResponse pHttpStatus_ =+  UpdateBillingGroupResponse'+    { arn = Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      name = Prelude.Nothing,+      pricingPlanArn = Prelude.Nothing,+      primaryAccountId = Prelude.Nothing,+      size = Prelude.Nothing,+      status = Prelude.Nothing,+      statusReason = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the billing group that was updated.+updateBillingGroupResponse_arn :: Lens.Lens' UpdateBillingGroupResponse (Prelude.Maybe Prelude.Text)+updateBillingGroupResponse_arn = Lens.lens (\UpdateBillingGroupResponse' {arn} -> arn) (\s@UpdateBillingGroupResponse' {} a -> s {arn = a} :: UpdateBillingGroupResponse)++-- | A description of the billing group.+updateBillingGroupResponse_description :: Lens.Lens' UpdateBillingGroupResponse (Prelude.Maybe Prelude.Text)+updateBillingGroupResponse_description = Lens.lens (\UpdateBillingGroupResponse' {description} -> description) (\s@UpdateBillingGroupResponse' {} a -> s {description = a} :: UpdateBillingGroupResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The most recent time when the billing group was modified.+updateBillingGroupResponse_lastModifiedTime :: Lens.Lens' UpdateBillingGroupResponse (Prelude.Maybe Prelude.Integer)+updateBillingGroupResponse_lastModifiedTime = Lens.lens (\UpdateBillingGroupResponse' {lastModifiedTime} -> lastModifiedTime) (\s@UpdateBillingGroupResponse' {} a -> s {lastModifiedTime = a} :: UpdateBillingGroupResponse)++-- | The name of the billing group. The names must be unique to each billing+-- group.+updateBillingGroupResponse_name :: Lens.Lens' UpdateBillingGroupResponse (Prelude.Maybe Prelude.Text)+updateBillingGroupResponse_name = Lens.lens (\UpdateBillingGroupResponse' {name} -> name) (\s@UpdateBillingGroupResponse' {} a -> s {name = a} :: UpdateBillingGroupResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The Amazon Resource Name (ARN) of the pricing plan to compute Amazon Web+-- Services charges for the billing group.+updateBillingGroupResponse_pricingPlanArn :: Lens.Lens' UpdateBillingGroupResponse (Prelude.Maybe Prelude.Text)+updateBillingGroupResponse_pricingPlanArn = Lens.lens (\UpdateBillingGroupResponse' {pricingPlanArn} -> pricingPlanArn) (\s@UpdateBillingGroupResponse' {} a -> s {pricingPlanArn = a} :: UpdateBillingGroupResponse)++-- | The account ID that serves as the main account in a billing group.+updateBillingGroupResponse_primaryAccountId :: Lens.Lens' UpdateBillingGroupResponse (Prelude.Maybe Prelude.Text)+updateBillingGroupResponse_primaryAccountId = Lens.lens (\UpdateBillingGroupResponse' {primaryAccountId} -> primaryAccountId) (\s@UpdateBillingGroupResponse' {} a -> s {primaryAccountId = a} :: UpdateBillingGroupResponse)++-- | The number of accounts in the particular billing group.+updateBillingGroupResponse_size :: Lens.Lens' UpdateBillingGroupResponse (Prelude.Maybe Prelude.Natural)+updateBillingGroupResponse_size = Lens.lens (\UpdateBillingGroupResponse' {size} -> size) (\s@UpdateBillingGroupResponse' {} a -> s {size = a} :: UpdateBillingGroupResponse)++-- | The status of the billing group. Only one of the valid values can be+-- used.+updateBillingGroupResponse_status :: Lens.Lens' UpdateBillingGroupResponse (Prelude.Maybe BillingGroupStatus)+updateBillingGroupResponse_status = Lens.lens (\UpdateBillingGroupResponse' {status} -> status) (\s@UpdateBillingGroupResponse' {} a -> s {status = a} :: UpdateBillingGroupResponse)++-- | The reason why the billing group is in its current status.+updateBillingGroupResponse_statusReason :: Lens.Lens' UpdateBillingGroupResponse (Prelude.Maybe Prelude.Text)+updateBillingGroupResponse_statusReason = Lens.lens (\UpdateBillingGroupResponse' {statusReason} -> statusReason) (\s@UpdateBillingGroupResponse' {} a -> s {statusReason = a} :: UpdateBillingGroupResponse)++-- | The response's http status code.+updateBillingGroupResponse_httpStatus :: Lens.Lens' UpdateBillingGroupResponse Prelude.Int+updateBillingGroupResponse_httpStatus = Lens.lens (\UpdateBillingGroupResponse' {httpStatus} -> httpStatus) (\s@UpdateBillingGroupResponse' {} a -> s {httpStatus = a} :: UpdateBillingGroupResponse)++instance Prelude.NFData UpdateBillingGroupResponse where+  rnf UpdateBillingGroupResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf pricingPlanArn+      `Prelude.seq` Prelude.rnf primaryAccountId+      `Prelude.seq` Prelude.rnf size+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf statusReason+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/UpdateCustomLineItem.hs view
@@ -0,0 +1,301 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.UpdateCustomLineItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update an existing custom line item in the current or previous billing+-- period.+module Amazonka.BillingConductor.UpdateCustomLineItem+  ( -- * Creating a Request+    UpdateCustomLineItem (..),+    newUpdateCustomLineItem,++    -- * Request Lenses+    updateCustomLineItem_billingPeriodRange,+    updateCustomLineItem_chargeDetails,+    updateCustomLineItem_description,+    updateCustomLineItem_name,+    updateCustomLineItem_arn,++    -- * Destructuring the Response+    UpdateCustomLineItemResponse (..),+    newUpdateCustomLineItemResponse,++    -- * Response Lenses+    updateCustomLineItemResponse_arn,+    updateCustomLineItemResponse_associationSize,+    updateCustomLineItemResponse_billingGroupArn,+    updateCustomLineItemResponse_chargeDetails,+    updateCustomLineItemResponse_description,+    updateCustomLineItemResponse_lastModifiedTime,+    updateCustomLineItemResponse_name,+    updateCustomLineItemResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateCustomLineItem' smart constructor.+data UpdateCustomLineItem = UpdateCustomLineItem'+  { billingPeriodRange :: Prelude.Maybe CustomLineItemBillingPeriodRange,+    -- | A @ListCustomLineItemChargeDetails@ containing the new charge details+    -- for the custom line item.+    chargeDetails :: Prelude.Maybe UpdateCustomLineItemChargeDetails,+    -- | The new line item description of the custom line item.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The new name for the custom line item.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The ARN of the custom line item to be updated.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCustomLineItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'billingPeriodRange', 'updateCustomLineItem_billingPeriodRange' - Undocumented member.+--+-- 'chargeDetails', 'updateCustomLineItem_chargeDetails' - A @ListCustomLineItemChargeDetails@ containing the new charge details+-- for the custom line item.+--+-- 'description', 'updateCustomLineItem_description' - The new line item description of the custom line item.+--+-- 'name', 'updateCustomLineItem_name' - The new name for the custom line item.+--+-- 'arn', 'updateCustomLineItem_arn' - The ARN of the custom line item to be updated.+newUpdateCustomLineItem ::+  -- | 'arn'+  Prelude.Text ->+  UpdateCustomLineItem+newUpdateCustomLineItem pArn_ =+  UpdateCustomLineItem'+    { billingPeriodRange =+        Prelude.Nothing,+      chargeDetails = Prelude.Nothing,+      description = Prelude.Nothing,+      name = Prelude.Nothing,+      arn = pArn_+    }++-- | Undocumented member.+updateCustomLineItem_billingPeriodRange :: Lens.Lens' UpdateCustomLineItem (Prelude.Maybe CustomLineItemBillingPeriodRange)+updateCustomLineItem_billingPeriodRange = Lens.lens (\UpdateCustomLineItem' {billingPeriodRange} -> billingPeriodRange) (\s@UpdateCustomLineItem' {} a -> s {billingPeriodRange = a} :: UpdateCustomLineItem)++-- | A @ListCustomLineItemChargeDetails@ containing the new charge details+-- for the custom line item.+updateCustomLineItem_chargeDetails :: Lens.Lens' UpdateCustomLineItem (Prelude.Maybe UpdateCustomLineItemChargeDetails)+updateCustomLineItem_chargeDetails = Lens.lens (\UpdateCustomLineItem' {chargeDetails} -> chargeDetails) (\s@UpdateCustomLineItem' {} a -> s {chargeDetails = a} :: UpdateCustomLineItem)++-- | The new line item description of the custom line item.+updateCustomLineItem_description :: Lens.Lens' UpdateCustomLineItem (Prelude.Maybe Prelude.Text)+updateCustomLineItem_description = Lens.lens (\UpdateCustomLineItem' {description} -> description) (\s@UpdateCustomLineItem' {} a -> s {description = a} :: UpdateCustomLineItem) Prelude.. Lens.mapping Data._Sensitive++-- | The new name for the custom line item.+updateCustomLineItem_name :: Lens.Lens' UpdateCustomLineItem (Prelude.Maybe Prelude.Text)+updateCustomLineItem_name = Lens.lens (\UpdateCustomLineItem' {name} -> name) (\s@UpdateCustomLineItem' {} a -> s {name = a} :: UpdateCustomLineItem) Prelude.. Lens.mapping Data._Sensitive++-- | The ARN of the custom line item to be updated.+updateCustomLineItem_arn :: Lens.Lens' UpdateCustomLineItem Prelude.Text+updateCustomLineItem_arn = Lens.lens (\UpdateCustomLineItem' {arn} -> arn) (\s@UpdateCustomLineItem' {} a -> s {arn = a} :: UpdateCustomLineItem)++instance Core.AWSRequest UpdateCustomLineItem where+  type+    AWSResponse UpdateCustomLineItem =+      UpdateCustomLineItemResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateCustomLineItemResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "AssociationSize")+            Prelude.<*> (x Data..?> "BillingGroupArn")+            Prelude.<*> (x Data..?> "ChargeDetails")+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateCustomLineItem where+  hashWithSalt _salt UpdateCustomLineItem' {..} =+    _salt+      `Prelude.hashWithSalt` billingPeriodRange+      `Prelude.hashWithSalt` chargeDetails+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` arn++instance Prelude.NFData UpdateCustomLineItem where+  rnf UpdateCustomLineItem' {..} =+    Prelude.rnf billingPeriodRange+      `Prelude.seq` Prelude.rnf chargeDetails+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn++instance Data.ToHeaders UpdateCustomLineItem where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateCustomLineItem where+  toJSON UpdateCustomLineItem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BillingPeriodRange" Data..=)+              Prelude.<$> billingPeriodRange,+            ("ChargeDetails" Data..=) Prelude.<$> chargeDetails,+            ("Description" Data..=) Prelude.<$> description,+            ("Name" Data..=) Prelude.<$> name,+            Prelude.Just ("Arn" Data..= arn)+          ]+      )++instance Data.ToPath UpdateCustomLineItem where+  toPath = Prelude.const "/update-custom-line-item"++instance Data.ToQuery UpdateCustomLineItem where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateCustomLineItemResponse' smart constructor.+data UpdateCustomLineItemResponse = UpdateCustomLineItemResponse'+  { -- | The ARN of the successfully updated custom line item.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The number of resources that are associated to the custom line item.+    associationSize :: Prelude.Maybe Prelude.Natural,+    -- | The ARN of the billing group that the custom line item is applied to.+    billingGroupArn :: Prelude.Maybe Prelude.Text,+    -- | A @ListCustomLineItemChargeDetails@ containing the charge details of the+    -- successfully updated custom line item.+    chargeDetails :: Prelude.Maybe ListCustomLineItemChargeDetails,+    -- | The description of the successfully updated custom line item.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The most recent time when the custom line item was modified.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | The name of the successfully updated custom line item.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCustomLineItemResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'updateCustomLineItemResponse_arn' - The ARN of the successfully updated custom line item.+--+-- 'associationSize', 'updateCustomLineItemResponse_associationSize' - The number of resources that are associated to the custom line item.+--+-- 'billingGroupArn', 'updateCustomLineItemResponse_billingGroupArn' - The ARN of the billing group that the custom line item is applied to.+--+-- 'chargeDetails', 'updateCustomLineItemResponse_chargeDetails' - A @ListCustomLineItemChargeDetails@ containing the charge details of the+-- successfully updated custom line item.+--+-- 'description', 'updateCustomLineItemResponse_description' - The description of the successfully updated custom line item.+--+-- 'lastModifiedTime', 'updateCustomLineItemResponse_lastModifiedTime' - The most recent time when the custom line item was modified.+--+-- 'name', 'updateCustomLineItemResponse_name' - The name of the successfully updated custom line item.+--+-- 'httpStatus', 'updateCustomLineItemResponse_httpStatus' - The response's http status code.+newUpdateCustomLineItemResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateCustomLineItemResponse+newUpdateCustomLineItemResponse pHttpStatus_ =+  UpdateCustomLineItemResponse'+    { arn =+        Prelude.Nothing,+      associationSize = Prelude.Nothing,+      billingGroupArn = Prelude.Nothing,+      chargeDetails = Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      name = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the successfully updated custom line item.+updateCustomLineItemResponse_arn :: Lens.Lens' UpdateCustomLineItemResponse (Prelude.Maybe Prelude.Text)+updateCustomLineItemResponse_arn = Lens.lens (\UpdateCustomLineItemResponse' {arn} -> arn) (\s@UpdateCustomLineItemResponse' {} a -> s {arn = a} :: UpdateCustomLineItemResponse)++-- | The number of resources that are associated to the custom line item.+updateCustomLineItemResponse_associationSize :: Lens.Lens' UpdateCustomLineItemResponse (Prelude.Maybe Prelude.Natural)+updateCustomLineItemResponse_associationSize = Lens.lens (\UpdateCustomLineItemResponse' {associationSize} -> associationSize) (\s@UpdateCustomLineItemResponse' {} a -> s {associationSize = a} :: UpdateCustomLineItemResponse)++-- | The ARN of the billing group that the custom line item is applied to.+updateCustomLineItemResponse_billingGroupArn :: Lens.Lens' UpdateCustomLineItemResponse (Prelude.Maybe Prelude.Text)+updateCustomLineItemResponse_billingGroupArn = Lens.lens (\UpdateCustomLineItemResponse' {billingGroupArn} -> billingGroupArn) (\s@UpdateCustomLineItemResponse' {} a -> s {billingGroupArn = a} :: UpdateCustomLineItemResponse)++-- | A @ListCustomLineItemChargeDetails@ containing the charge details of the+-- successfully updated custom line item.+updateCustomLineItemResponse_chargeDetails :: Lens.Lens' UpdateCustomLineItemResponse (Prelude.Maybe ListCustomLineItemChargeDetails)+updateCustomLineItemResponse_chargeDetails = Lens.lens (\UpdateCustomLineItemResponse' {chargeDetails} -> chargeDetails) (\s@UpdateCustomLineItemResponse' {} a -> s {chargeDetails = a} :: UpdateCustomLineItemResponse)++-- | The description of the successfully updated custom line item.+updateCustomLineItemResponse_description :: Lens.Lens' UpdateCustomLineItemResponse (Prelude.Maybe Prelude.Text)+updateCustomLineItemResponse_description = Lens.lens (\UpdateCustomLineItemResponse' {description} -> description) (\s@UpdateCustomLineItemResponse' {} a -> s {description = a} :: UpdateCustomLineItemResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The most recent time when the custom line item was modified.+updateCustomLineItemResponse_lastModifiedTime :: Lens.Lens' UpdateCustomLineItemResponse (Prelude.Maybe Prelude.Integer)+updateCustomLineItemResponse_lastModifiedTime = Lens.lens (\UpdateCustomLineItemResponse' {lastModifiedTime} -> lastModifiedTime) (\s@UpdateCustomLineItemResponse' {} a -> s {lastModifiedTime = a} :: UpdateCustomLineItemResponse)++-- | The name of the successfully updated custom line item.+updateCustomLineItemResponse_name :: Lens.Lens' UpdateCustomLineItemResponse (Prelude.Maybe Prelude.Text)+updateCustomLineItemResponse_name = Lens.lens (\UpdateCustomLineItemResponse' {name} -> name) (\s@UpdateCustomLineItemResponse' {} a -> s {name = a} :: UpdateCustomLineItemResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The response's http status code.+updateCustomLineItemResponse_httpStatus :: Lens.Lens' UpdateCustomLineItemResponse Prelude.Int+updateCustomLineItemResponse_httpStatus = Lens.lens (\UpdateCustomLineItemResponse' {httpStatus} -> httpStatus) (\s@UpdateCustomLineItemResponse' {} a -> s {httpStatus = a} :: UpdateCustomLineItemResponse)++instance Prelude.NFData UpdateCustomLineItemResponse where+  rnf UpdateCustomLineItemResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf associationSize+      `Prelude.seq` Prelude.rnf billingGroupArn+      `Prelude.seq` Prelude.rnf chargeDetails+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/UpdatePricingPlan.hs view
@@ -0,0 +1,254 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.UpdatePricingPlan+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This updates an existing pricing plan.+module Amazonka.BillingConductor.UpdatePricingPlan+  ( -- * Creating a Request+    UpdatePricingPlan (..),+    newUpdatePricingPlan,++    -- * Request Lenses+    updatePricingPlan_description,+    updatePricingPlan_name,+    updatePricingPlan_arn,++    -- * Destructuring the Response+    UpdatePricingPlanResponse (..),+    newUpdatePricingPlanResponse,++    -- * Response Lenses+    updatePricingPlanResponse_arn,+    updatePricingPlanResponse_description,+    updatePricingPlanResponse_lastModifiedTime,+    updatePricingPlanResponse_name,+    updatePricingPlanResponse_size,+    updatePricingPlanResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdatePricingPlan' smart constructor.+data UpdatePricingPlan = UpdatePricingPlan'+  { -- | The description of the pricing plan.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The name of the pricing plan. The name must be unique to each pricing+    -- plan.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The Amazon Resource Name (ARN) of the pricing plan that you\'re+    -- updating.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdatePricingPlan' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updatePricingPlan_description' - The description of the pricing plan.+--+-- 'name', 'updatePricingPlan_name' - The name of the pricing plan. The name must be unique to each pricing+-- plan.+--+-- 'arn', 'updatePricingPlan_arn' - The Amazon Resource Name (ARN) of the pricing plan that you\'re+-- updating.+newUpdatePricingPlan ::+  -- | 'arn'+  Prelude.Text ->+  UpdatePricingPlan+newUpdatePricingPlan pArn_ =+  UpdatePricingPlan'+    { description = Prelude.Nothing,+      name = Prelude.Nothing,+      arn = pArn_+    }++-- | The description of the pricing plan.+updatePricingPlan_description :: Lens.Lens' UpdatePricingPlan (Prelude.Maybe Prelude.Text)+updatePricingPlan_description = Lens.lens (\UpdatePricingPlan' {description} -> description) (\s@UpdatePricingPlan' {} a -> s {description = a} :: UpdatePricingPlan) Prelude.. Lens.mapping Data._Sensitive++-- | The name of the pricing plan. The name must be unique to each pricing+-- plan.+updatePricingPlan_name :: Lens.Lens' UpdatePricingPlan (Prelude.Maybe Prelude.Text)+updatePricingPlan_name = Lens.lens (\UpdatePricingPlan' {name} -> name) (\s@UpdatePricingPlan' {} a -> s {name = a} :: UpdatePricingPlan) Prelude.. Lens.mapping Data._Sensitive++-- | The Amazon Resource Name (ARN) of the pricing plan that you\'re+-- updating.+updatePricingPlan_arn :: Lens.Lens' UpdatePricingPlan Prelude.Text+updatePricingPlan_arn = Lens.lens (\UpdatePricingPlan' {arn} -> arn) (\s@UpdatePricingPlan' {} a -> s {arn = a} :: UpdatePricingPlan)++instance Core.AWSRequest UpdatePricingPlan where+  type+    AWSResponse UpdatePricingPlan =+      UpdatePricingPlanResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdatePricingPlanResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "Size")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdatePricingPlan where+  hashWithSalt _salt UpdatePricingPlan' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` arn++instance Prelude.NFData UpdatePricingPlan where+  rnf UpdatePricingPlan' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn++instance Data.ToHeaders UpdatePricingPlan where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdatePricingPlan where+  toJSON UpdatePricingPlan' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Name" Data..=) Prelude.<$> name,+            Prelude.Just ("Arn" Data..= arn)+          ]+      )++instance Data.ToPath UpdatePricingPlan where+  toPath = Prelude.const "/update-pricing-plan"++instance Data.ToQuery UpdatePricingPlan where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdatePricingPlanResponse' smart constructor.+data UpdatePricingPlanResponse = UpdatePricingPlanResponse'+  { -- | The Amazon Resource Name (ARN) of the updated pricing plan.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The new description for the pricing rule.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The most recent time when the pricing plan was modified.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | The name of the pricing plan. The name must be unique to each pricing+    -- plan.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The pricing rules count that\'s currently associated with this pricing+    -- plan list.+    size :: Prelude.Maybe Prelude.Natural,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdatePricingPlanResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'updatePricingPlanResponse_arn' - The Amazon Resource Name (ARN) of the updated pricing plan.+--+-- 'description', 'updatePricingPlanResponse_description' - The new description for the pricing rule.+--+-- 'lastModifiedTime', 'updatePricingPlanResponse_lastModifiedTime' - The most recent time when the pricing plan was modified.+--+-- 'name', 'updatePricingPlanResponse_name' - The name of the pricing plan. The name must be unique to each pricing+-- plan.+--+-- 'size', 'updatePricingPlanResponse_size' - The pricing rules count that\'s currently associated with this pricing+-- plan list.+--+-- 'httpStatus', 'updatePricingPlanResponse_httpStatus' - The response's http status code.+newUpdatePricingPlanResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdatePricingPlanResponse+newUpdatePricingPlanResponse pHttpStatus_ =+  UpdatePricingPlanResponse'+    { arn = Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      name = Prelude.Nothing,+      size = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the updated pricing plan.+updatePricingPlanResponse_arn :: Lens.Lens' UpdatePricingPlanResponse (Prelude.Maybe Prelude.Text)+updatePricingPlanResponse_arn = Lens.lens (\UpdatePricingPlanResponse' {arn} -> arn) (\s@UpdatePricingPlanResponse' {} a -> s {arn = a} :: UpdatePricingPlanResponse)++-- | The new description for the pricing rule.+updatePricingPlanResponse_description :: Lens.Lens' UpdatePricingPlanResponse (Prelude.Maybe Prelude.Text)+updatePricingPlanResponse_description = Lens.lens (\UpdatePricingPlanResponse' {description} -> description) (\s@UpdatePricingPlanResponse' {} a -> s {description = a} :: UpdatePricingPlanResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The most recent time when the pricing plan was modified.+updatePricingPlanResponse_lastModifiedTime :: Lens.Lens' UpdatePricingPlanResponse (Prelude.Maybe Prelude.Integer)+updatePricingPlanResponse_lastModifiedTime = Lens.lens (\UpdatePricingPlanResponse' {lastModifiedTime} -> lastModifiedTime) (\s@UpdatePricingPlanResponse' {} a -> s {lastModifiedTime = a} :: UpdatePricingPlanResponse)++-- | The name of the pricing plan. The name must be unique to each pricing+-- plan.+updatePricingPlanResponse_name :: Lens.Lens' UpdatePricingPlanResponse (Prelude.Maybe Prelude.Text)+updatePricingPlanResponse_name = Lens.lens (\UpdatePricingPlanResponse' {name} -> name) (\s@UpdatePricingPlanResponse' {} a -> s {name = a} :: UpdatePricingPlanResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The pricing rules count that\'s currently associated with this pricing+-- plan list.+updatePricingPlanResponse_size :: Lens.Lens' UpdatePricingPlanResponse (Prelude.Maybe Prelude.Natural)+updatePricingPlanResponse_size = Lens.lens (\UpdatePricingPlanResponse' {size} -> size) (\s@UpdatePricingPlanResponse' {} a -> s {size = a} :: UpdatePricingPlanResponse)++-- | The response's http status code.+updatePricingPlanResponse_httpStatus :: Lens.Lens' UpdatePricingPlanResponse Prelude.Int+updatePricingPlanResponse_httpStatus = Lens.lens (\UpdatePricingPlanResponse' {httpStatus} -> httpStatus) (\s@UpdatePricingPlanResponse' {} a -> s {httpStatus = a} :: UpdatePricingPlanResponse)++instance Prelude.NFData UpdatePricingPlanResponse where+  rnf UpdatePricingPlanResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf size+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/UpdatePricingRule.hs view
@@ -0,0 +1,372 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.UpdatePricingRule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing pricing rule.+module Amazonka.BillingConductor.UpdatePricingRule+  ( -- * Creating a Request+    UpdatePricingRule (..),+    newUpdatePricingRule,++    -- * Request Lenses+    updatePricingRule_description,+    updatePricingRule_modifierPercentage,+    updatePricingRule_name,+    updatePricingRule_tiering,+    updatePricingRule_type,+    updatePricingRule_arn,++    -- * Destructuring the Response+    UpdatePricingRuleResponse (..),+    newUpdatePricingRuleResponse,++    -- * Response Lenses+    updatePricingRuleResponse_arn,+    updatePricingRuleResponse_associatedPricingPlanCount,+    updatePricingRuleResponse_billingEntity,+    updatePricingRuleResponse_description,+    updatePricingRuleResponse_lastModifiedTime,+    updatePricingRuleResponse_modifierPercentage,+    updatePricingRuleResponse_name,+    updatePricingRuleResponse_scope,+    updatePricingRuleResponse_service,+    updatePricingRuleResponse_tiering,+    updatePricingRuleResponse_type,+    updatePricingRuleResponse_httpStatus,+  )+where++import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdatePricingRule' smart constructor.+data UpdatePricingRule = UpdatePricingRule'+  { -- | The new description for the pricing rule.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The new modifier to show pricing plan rates as a percentage.+    modifierPercentage :: Prelude.Maybe Prelude.Double,+    -- | The new name of the pricing rule. The name must be unique to each+    -- pricing rule.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The set of tiering configurations for the pricing rule.+    tiering :: Prelude.Maybe UpdateTieringInput,+    -- | The new pricing rule type.+    type' :: Prelude.Maybe PricingRuleType,+    -- | The Amazon Resource Name (ARN) of the pricing rule to update.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdatePricingRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updatePricingRule_description' - The new description for the pricing rule.+--+-- 'modifierPercentage', 'updatePricingRule_modifierPercentage' - The new modifier to show pricing plan rates as a percentage.+--+-- 'name', 'updatePricingRule_name' - The new name of the pricing rule. The name must be unique to each+-- pricing rule.+--+-- 'tiering', 'updatePricingRule_tiering' - The set of tiering configurations for the pricing rule.+--+-- 'type'', 'updatePricingRule_type' - The new pricing rule type.+--+-- 'arn', 'updatePricingRule_arn' - The Amazon Resource Name (ARN) of the pricing rule to update.+newUpdatePricingRule ::+  -- | 'arn'+  Prelude.Text ->+  UpdatePricingRule+newUpdatePricingRule pArn_ =+  UpdatePricingRule'+    { description = Prelude.Nothing,+      modifierPercentage = Prelude.Nothing,+      name = Prelude.Nothing,+      tiering = Prelude.Nothing,+      type' = Prelude.Nothing,+      arn = pArn_+    }++-- | The new description for the pricing rule.+updatePricingRule_description :: Lens.Lens' UpdatePricingRule (Prelude.Maybe Prelude.Text)+updatePricingRule_description = Lens.lens (\UpdatePricingRule' {description} -> description) (\s@UpdatePricingRule' {} a -> s {description = a} :: UpdatePricingRule) Prelude.. Lens.mapping Data._Sensitive++-- | The new modifier to show pricing plan rates as a percentage.+updatePricingRule_modifierPercentage :: Lens.Lens' UpdatePricingRule (Prelude.Maybe Prelude.Double)+updatePricingRule_modifierPercentage = Lens.lens (\UpdatePricingRule' {modifierPercentage} -> modifierPercentage) (\s@UpdatePricingRule' {} a -> s {modifierPercentage = a} :: UpdatePricingRule)++-- | The new name of the pricing rule. The name must be unique to each+-- pricing rule.+updatePricingRule_name :: Lens.Lens' UpdatePricingRule (Prelude.Maybe Prelude.Text)+updatePricingRule_name = Lens.lens (\UpdatePricingRule' {name} -> name) (\s@UpdatePricingRule' {} a -> s {name = a} :: UpdatePricingRule) Prelude.. Lens.mapping Data._Sensitive++-- | The set of tiering configurations for the pricing rule.+updatePricingRule_tiering :: Lens.Lens' UpdatePricingRule (Prelude.Maybe UpdateTieringInput)+updatePricingRule_tiering = Lens.lens (\UpdatePricingRule' {tiering} -> tiering) (\s@UpdatePricingRule' {} a -> s {tiering = a} :: UpdatePricingRule)++-- | The new pricing rule type.+updatePricingRule_type :: Lens.Lens' UpdatePricingRule (Prelude.Maybe PricingRuleType)+updatePricingRule_type = Lens.lens (\UpdatePricingRule' {type'} -> type') (\s@UpdatePricingRule' {} a -> s {type' = a} :: UpdatePricingRule)++-- | The Amazon Resource Name (ARN) of the pricing rule to update.+updatePricingRule_arn :: Lens.Lens' UpdatePricingRule Prelude.Text+updatePricingRule_arn = Lens.lens (\UpdatePricingRule' {arn} -> arn) (\s@UpdatePricingRule' {} a -> s {arn = a} :: UpdatePricingRule)++instance Core.AWSRequest UpdatePricingRule where+  type+    AWSResponse UpdatePricingRule =+      UpdatePricingRuleResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdatePricingRuleResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "AssociatedPricingPlanCount")+            Prelude.<*> (x Data..?> "BillingEntity")+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> (x Data..?> "ModifierPercentage")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "Scope")+            Prelude.<*> (x Data..?> "Service")+            Prelude.<*> (x Data..?> "Tiering")+            Prelude.<*> (x Data..?> "Type")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdatePricingRule where+  hashWithSalt _salt UpdatePricingRule' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` modifierPercentage+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` tiering+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` arn++instance Prelude.NFData UpdatePricingRule where+  rnf UpdatePricingRule' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf modifierPercentage+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf tiering+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf arn++instance Data.ToHeaders UpdatePricingRule where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdatePricingRule where+  toJSON UpdatePricingRule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("ModifierPercentage" Data..=)+              Prelude.<$> modifierPercentage,+            ("Name" Data..=) Prelude.<$> name,+            ("Tiering" Data..=) Prelude.<$> tiering,+            ("Type" Data..=) Prelude.<$> type',+            Prelude.Just ("Arn" Data..= arn)+          ]+      )++instance Data.ToPath UpdatePricingRule where+  toPath = Prelude.const "/update-pricing-rule"++instance Data.ToQuery UpdatePricingRule where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdatePricingRuleResponse' smart constructor.+data UpdatePricingRuleResponse = UpdatePricingRuleResponse'+  { -- | The Amazon Resource Name (ARN) of the successfully updated pricing rule.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The pricing plans count that this pricing rule is associated with.+    associatedPricingPlanCount :: Prelude.Maybe Prelude.Natural,+    -- | The seller of services provided by Amazon Web Services, their+    -- affiliates, or third-party providers selling services via Amazon Web+    -- Services Marketplace.+    billingEntity :: Prelude.Maybe Prelude.Text,+    -- | The new description for the pricing rule.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The most recent time the pricing rule was modified.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | The new modifier to show pricing plan rates as a percentage.+    modifierPercentage :: Prelude.Maybe Prelude.Double,+    -- | The new name of the pricing rule. The name must be unique to each+    -- pricing rule.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The scope of pricing rule that indicates if it\'s globally applicable,+    -- or it\'s service-specific.+    scope :: Prelude.Maybe PricingRuleScope,+    -- | If the @Scope@ attribute is set to @SERVICE@, the attribute indicates+    -- which service the @PricingRule@ is applicable for.+    service :: Prelude.Maybe Prelude.Text,+    -- | The set of tiering configurations for the pricing rule.+    tiering :: Prelude.Maybe UpdateTieringInput,+    -- | The new pricing rule type.+    type' :: Prelude.Maybe PricingRuleType,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdatePricingRuleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'updatePricingRuleResponse_arn' - The Amazon Resource Name (ARN) of the successfully updated pricing rule.+--+-- 'associatedPricingPlanCount', 'updatePricingRuleResponse_associatedPricingPlanCount' - The pricing plans count that this pricing rule is associated with.+--+-- 'billingEntity', 'updatePricingRuleResponse_billingEntity' - The seller of services provided by Amazon Web Services, their+-- affiliates, or third-party providers selling services via Amazon Web+-- Services Marketplace.+--+-- 'description', 'updatePricingRuleResponse_description' - The new description for the pricing rule.+--+-- 'lastModifiedTime', 'updatePricingRuleResponse_lastModifiedTime' - The most recent time the pricing rule was modified.+--+-- 'modifierPercentage', 'updatePricingRuleResponse_modifierPercentage' - The new modifier to show pricing plan rates as a percentage.+--+-- 'name', 'updatePricingRuleResponse_name' - The new name of the pricing rule. The name must be unique to each+-- pricing rule.+--+-- 'scope', 'updatePricingRuleResponse_scope' - The scope of pricing rule that indicates if it\'s globally applicable,+-- or it\'s service-specific.+--+-- 'service', 'updatePricingRuleResponse_service' - If the @Scope@ attribute is set to @SERVICE@, the attribute indicates+-- which service the @PricingRule@ is applicable for.+--+-- 'tiering', 'updatePricingRuleResponse_tiering' - The set of tiering configurations for the pricing rule.+--+-- 'type'', 'updatePricingRuleResponse_type' - The new pricing rule type.+--+-- 'httpStatus', 'updatePricingRuleResponse_httpStatus' - The response's http status code.+newUpdatePricingRuleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdatePricingRuleResponse+newUpdatePricingRuleResponse pHttpStatus_ =+  UpdatePricingRuleResponse'+    { arn = Prelude.Nothing,+      associatedPricingPlanCount = Prelude.Nothing,+      billingEntity = Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      modifierPercentage = Prelude.Nothing,+      name = Prelude.Nothing,+      scope = Prelude.Nothing,+      service = Prelude.Nothing,+      tiering = Prelude.Nothing,+      type' = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the successfully updated pricing rule.+updatePricingRuleResponse_arn :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Text)+updatePricingRuleResponse_arn = Lens.lens (\UpdatePricingRuleResponse' {arn} -> arn) (\s@UpdatePricingRuleResponse' {} a -> s {arn = a} :: UpdatePricingRuleResponse)++-- | The pricing plans count that this pricing rule is associated with.+updatePricingRuleResponse_associatedPricingPlanCount :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Natural)+updatePricingRuleResponse_associatedPricingPlanCount = Lens.lens (\UpdatePricingRuleResponse' {associatedPricingPlanCount} -> associatedPricingPlanCount) (\s@UpdatePricingRuleResponse' {} a -> s {associatedPricingPlanCount = a} :: UpdatePricingRuleResponse)++-- | The seller of services provided by Amazon Web Services, their+-- affiliates, or third-party providers selling services via Amazon Web+-- Services Marketplace.+updatePricingRuleResponse_billingEntity :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Text)+updatePricingRuleResponse_billingEntity = Lens.lens (\UpdatePricingRuleResponse' {billingEntity} -> billingEntity) (\s@UpdatePricingRuleResponse' {} a -> s {billingEntity = a} :: UpdatePricingRuleResponse)++-- | The new description for the pricing rule.+updatePricingRuleResponse_description :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Text)+updatePricingRuleResponse_description = Lens.lens (\UpdatePricingRuleResponse' {description} -> description) (\s@UpdatePricingRuleResponse' {} a -> s {description = a} :: UpdatePricingRuleResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The most recent time the pricing rule was modified.+updatePricingRuleResponse_lastModifiedTime :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Integer)+updatePricingRuleResponse_lastModifiedTime = Lens.lens (\UpdatePricingRuleResponse' {lastModifiedTime} -> lastModifiedTime) (\s@UpdatePricingRuleResponse' {} a -> s {lastModifiedTime = a} :: UpdatePricingRuleResponse)++-- | The new modifier to show pricing plan rates as a percentage.+updatePricingRuleResponse_modifierPercentage :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Double)+updatePricingRuleResponse_modifierPercentage = Lens.lens (\UpdatePricingRuleResponse' {modifierPercentage} -> modifierPercentage) (\s@UpdatePricingRuleResponse' {} a -> s {modifierPercentage = a} :: UpdatePricingRuleResponse)++-- | The new name of the pricing rule. The name must be unique to each+-- pricing rule.+updatePricingRuleResponse_name :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Text)+updatePricingRuleResponse_name = Lens.lens (\UpdatePricingRuleResponse' {name} -> name) (\s@UpdatePricingRuleResponse' {} a -> s {name = a} :: UpdatePricingRuleResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The scope of pricing rule that indicates if it\'s globally applicable,+-- or it\'s service-specific.+updatePricingRuleResponse_scope :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe PricingRuleScope)+updatePricingRuleResponse_scope = Lens.lens (\UpdatePricingRuleResponse' {scope} -> scope) (\s@UpdatePricingRuleResponse' {} a -> s {scope = a} :: UpdatePricingRuleResponse)++-- | If the @Scope@ attribute is set to @SERVICE@, the attribute indicates+-- which service the @PricingRule@ is applicable for.+updatePricingRuleResponse_service :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Text)+updatePricingRuleResponse_service = Lens.lens (\UpdatePricingRuleResponse' {service} -> service) (\s@UpdatePricingRuleResponse' {} a -> s {service = a} :: UpdatePricingRuleResponse)++-- | The set of tiering configurations for the pricing rule.+updatePricingRuleResponse_tiering :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe UpdateTieringInput)+updatePricingRuleResponse_tiering = Lens.lens (\UpdatePricingRuleResponse' {tiering} -> tiering) (\s@UpdatePricingRuleResponse' {} a -> s {tiering = a} :: UpdatePricingRuleResponse)++-- | The new pricing rule type.+updatePricingRuleResponse_type :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe PricingRuleType)+updatePricingRuleResponse_type = Lens.lens (\UpdatePricingRuleResponse' {type'} -> type') (\s@UpdatePricingRuleResponse' {} a -> s {type' = a} :: UpdatePricingRuleResponse)++-- | The response's http status code.+updatePricingRuleResponse_httpStatus :: Lens.Lens' UpdatePricingRuleResponse Prelude.Int+updatePricingRuleResponse_httpStatus = Lens.lens (\UpdatePricingRuleResponse' {httpStatus} -> httpStatus) (\s@UpdatePricingRuleResponse' {} a -> s {httpStatus = a} :: UpdatePricingRuleResponse)++instance Prelude.NFData UpdatePricingRuleResponse where+  rnf UpdatePricingRuleResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf associatedPricingPlanCount+      `Prelude.seq` Prelude.rnf billingEntity+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf modifierPercentage+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf scope+      `Prelude.seq` Prelude.rnf service+      `Prelude.seq` Prelude.rnf tiering+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/BillingConductor/Waiters.hs view
@@ -0,0 +1,24 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.BillingConductor.Waiters+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.BillingConductor.Waiters where++import Amazonka.BillingConductor.Lens+import Amazonka.BillingConductor.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.BillingConductor+import Test.Amazonka.BillingConductor.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "BillingConductor"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/BillingConductor.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.BillingConductor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.BillingConductor+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/BillingConductor/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.BillingConductor.Internal+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.BillingConductor.Internal where
+ test/Test/Amazonka/Gen/BillingConductor.hs view
@@ -0,0 +1,658 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.Amazonka.Gen.BillingConductor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.Gen.BillingConductor where++import Amazonka.BillingConductor+import qualified Data.Proxy as Proxy+import Test.Amazonka.BillingConductor.Internal+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Tasty++-- 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"+--         [ requestAssociateAccounts $+--             newAssociateAccounts+--+--         , requestAssociatePricingRules $+--             newAssociatePricingRules+--+--         , requestBatchAssociateResourcesToCustomLineItem $+--             newBatchAssociateResourcesToCustomLineItem+--+--         , requestBatchDisassociateResourcesFromCustomLineItem $+--             newBatchDisassociateResourcesFromCustomLineItem+--+--         , requestCreateBillingGroup $+--             newCreateBillingGroup+--+--         , requestCreateCustomLineItem $+--             newCreateCustomLineItem+--+--         , requestCreatePricingPlan $+--             newCreatePricingPlan+--+--         , requestCreatePricingRule $+--             newCreatePricingRule+--+--         , requestDeleteBillingGroup $+--             newDeleteBillingGroup+--+--         , requestDeleteCustomLineItem $+--             newDeleteCustomLineItem+--+--         , requestDeletePricingPlan $+--             newDeletePricingPlan+--+--         , requestDeletePricingRule $+--             newDeletePricingRule+--+--         , requestDisassociateAccounts $+--             newDisassociateAccounts+--+--         , requestDisassociatePricingRules $+--             newDisassociatePricingRules+--+--         , requestListAccountAssociations $+--             newListAccountAssociations+--+--         , requestListBillingGroupCostReports $+--             newListBillingGroupCostReports+--+--         , requestListBillingGroups $+--             newListBillingGroups+--+--         , requestListCustomLineItemVersions $+--             newListCustomLineItemVersions+--+--         , requestListCustomLineItems $+--             newListCustomLineItems+--+--         , requestListPricingPlans $+--             newListPricingPlans+--+--         , requestListPricingPlansAssociatedWithPricingRule $+--             newListPricingPlansAssociatedWithPricingRule+--+--         , requestListPricingRules $+--             newListPricingRules+--+--         , requestListPricingRulesAssociatedToPricingPlan $+--             newListPricingRulesAssociatedToPricingPlan+--+--         , requestListResourcesAssociatedToCustomLineItem $+--             newListResourcesAssociatedToCustomLineItem+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateBillingGroup $+--             newUpdateBillingGroup+--+--         , requestUpdateCustomLineItem $+--             newUpdateCustomLineItem+--+--         , requestUpdatePricingPlan $+--             newUpdatePricingPlan+--+--         , requestUpdatePricingRule $+--             newUpdatePricingRule+--+--           ]++--     , testGroup "response"+--         [ responseAssociateAccounts $+--             newAssociateAccountsResponse+--+--         , responseAssociatePricingRules $+--             newAssociatePricingRulesResponse+--+--         , responseBatchAssociateResourcesToCustomLineItem $+--             newBatchAssociateResourcesToCustomLineItemResponse+--+--         , responseBatchDisassociateResourcesFromCustomLineItem $+--             newBatchDisassociateResourcesFromCustomLineItemResponse+--+--         , responseCreateBillingGroup $+--             newCreateBillingGroupResponse+--+--         , responseCreateCustomLineItem $+--             newCreateCustomLineItemResponse+--+--         , responseCreatePricingPlan $+--             newCreatePricingPlanResponse+--+--         , responseCreatePricingRule $+--             newCreatePricingRuleResponse+--+--         , responseDeleteBillingGroup $+--             newDeleteBillingGroupResponse+--+--         , responseDeleteCustomLineItem $+--             newDeleteCustomLineItemResponse+--+--         , responseDeletePricingPlan $+--             newDeletePricingPlanResponse+--+--         , responseDeletePricingRule $+--             newDeletePricingRuleResponse+--+--         , responseDisassociateAccounts $+--             newDisassociateAccountsResponse+--+--         , responseDisassociatePricingRules $+--             newDisassociatePricingRulesResponse+--+--         , responseListAccountAssociations $+--             newListAccountAssociationsResponse+--+--         , responseListBillingGroupCostReports $+--             newListBillingGroupCostReportsResponse+--+--         , responseListBillingGroups $+--             newListBillingGroupsResponse+--+--         , responseListCustomLineItemVersions $+--             newListCustomLineItemVersionsResponse+--+--         , responseListCustomLineItems $+--             newListCustomLineItemsResponse+--+--         , responseListPricingPlans $+--             newListPricingPlansResponse+--+--         , responseListPricingPlansAssociatedWithPricingRule $+--             newListPricingPlansAssociatedWithPricingRuleResponse+--+--         , responseListPricingRules $+--             newListPricingRulesResponse+--+--         , responseListPricingRulesAssociatedToPricingPlan $+--             newListPricingRulesAssociatedToPricingPlanResponse+--+--         , responseListResourcesAssociatedToCustomLineItem $+--             newListResourcesAssociatedToCustomLineItemResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateBillingGroup $+--             newUpdateBillingGroupResponse+--+--         , responseUpdateCustomLineItem $+--             newUpdateCustomLineItemResponse+--+--         , responseUpdatePricingPlan $+--             newUpdatePricingPlanResponse+--+--         , responseUpdatePricingRule $+--             newUpdatePricingRuleResponse+--+--           ]+--     ]++-- Requests++requestAssociateAccounts :: AssociateAccounts -> TestTree+requestAssociateAccounts =+  req+    "AssociateAccounts"+    "fixture/AssociateAccounts.yaml"++requestAssociatePricingRules :: AssociatePricingRules -> TestTree+requestAssociatePricingRules =+  req+    "AssociatePricingRules"+    "fixture/AssociatePricingRules.yaml"++requestBatchAssociateResourcesToCustomLineItem :: BatchAssociateResourcesToCustomLineItem -> TestTree+requestBatchAssociateResourcesToCustomLineItem =+  req+    "BatchAssociateResourcesToCustomLineItem"+    "fixture/BatchAssociateResourcesToCustomLineItem.yaml"++requestBatchDisassociateResourcesFromCustomLineItem :: BatchDisassociateResourcesFromCustomLineItem -> TestTree+requestBatchDisassociateResourcesFromCustomLineItem =+  req+    "BatchDisassociateResourcesFromCustomLineItem"+    "fixture/BatchDisassociateResourcesFromCustomLineItem.yaml"++requestCreateBillingGroup :: CreateBillingGroup -> TestTree+requestCreateBillingGroup =+  req+    "CreateBillingGroup"+    "fixture/CreateBillingGroup.yaml"++requestCreateCustomLineItem :: CreateCustomLineItem -> TestTree+requestCreateCustomLineItem =+  req+    "CreateCustomLineItem"+    "fixture/CreateCustomLineItem.yaml"++requestCreatePricingPlan :: CreatePricingPlan -> TestTree+requestCreatePricingPlan =+  req+    "CreatePricingPlan"+    "fixture/CreatePricingPlan.yaml"++requestCreatePricingRule :: CreatePricingRule -> TestTree+requestCreatePricingRule =+  req+    "CreatePricingRule"+    "fixture/CreatePricingRule.yaml"++requestDeleteBillingGroup :: DeleteBillingGroup -> TestTree+requestDeleteBillingGroup =+  req+    "DeleteBillingGroup"+    "fixture/DeleteBillingGroup.yaml"++requestDeleteCustomLineItem :: DeleteCustomLineItem -> TestTree+requestDeleteCustomLineItem =+  req+    "DeleteCustomLineItem"+    "fixture/DeleteCustomLineItem.yaml"++requestDeletePricingPlan :: DeletePricingPlan -> TestTree+requestDeletePricingPlan =+  req+    "DeletePricingPlan"+    "fixture/DeletePricingPlan.yaml"++requestDeletePricingRule :: DeletePricingRule -> TestTree+requestDeletePricingRule =+  req+    "DeletePricingRule"+    "fixture/DeletePricingRule.yaml"++requestDisassociateAccounts :: DisassociateAccounts -> TestTree+requestDisassociateAccounts =+  req+    "DisassociateAccounts"+    "fixture/DisassociateAccounts.yaml"++requestDisassociatePricingRules :: DisassociatePricingRules -> TestTree+requestDisassociatePricingRules =+  req+    "DisassociatePricingRules"+    "fixture/DisassociatePricingRules.yaml"++requestListAccountAssociations :: ListAccountAssociations -> TestTree+requestListAccountAssociations =+  req+    "ListAccountAssociations"+    "fixture/ListAccountAssociations.yaml"++requestListBillingGroupCostReports :: ListBillingGroupCostReports -> TestTree+requestListBillingGroupCostReports =+  req+    "ListBillingGroupCostReports"+    "fixture/ListBillingGroupCostReports.yaml"++requestListBillingGroups :: ListBillingGroups -> TestTree+requestListBillingGroups =+  req+    "ListBillingGroups"+    "fixture/ListBillingGroups.yaml"++requestListCustomLineItemVersions :: ListCustomLineItemVersions -> TestTree+requestListCustomLineItemVersions =+  req+    "ListCustomLineItemVersions"+    "fixture/ListCustomLineItemVersions.yaml"++requestListCustomLineItems :: ListCustomLineItems -> TestTree+requestListCustomLineItems =+  req+    "ListCustomLineItems"+    "fixture/ListCustomLineItems.yaml"++requestListPricingPlans :: ListPricingPlans -> TestTree+requestListPricingPlans =+  req+    "ListPricingPlans"+    "fixture/ListPricingPlans.yaml"++requestListPricingPlansAssociatedWithPricingRule :: ListPricingPlansAssociatedWithPricingRule -> TestTree+requestListPricingPlansAssociatedWithPricingRule =+  req+    "ListPricingPlansAssociatedWithPricingRule"+    "fixture/ListPricingPlansAssociatedWithPricingRule.yaml"++requestListPricingRules :: ListPricingRules -> TestTree+requestListPricingRules =+  req+    "ListPricingRules"+    "fixture/ListPricingRules.yaml"++requestListPricingRulesAssociatedToPricingPlan :: ListPricingRulesAssociatedToPricingPlan -> TestTree+requestListPricingRulesAssociatedToPricingPlan =+  req+    "ListPricingRulesAssociatedToPricingPlan"+    "fixture/ListPricingRulesAssociatedToPricingPlan.yaml"++requestListResourcesAssociatedToCustomLineItem :: ListResourcesAssociatedToCustomLineItem -> TestTree+requestListResourcesAssociatedToCustomLineItem =+  req+    "ListResourcesAssociatedToCustomLineItem"+    "fixture/ListResourcesAssociatedToCustomLineItem.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateBillingGroup :: UpdateBillingGroup -> TestTree+requestUpdateBillingGroup =+  req+    "UpdateBillingGroup"+    "fixture/UpdateBillingGroup.yaml"++requestUpdateCustomLineItem :: UpdateCustomLineItem -> TestTree+requestUpdateCustomLineItem =+  req+    "UpdateCustomLineItem"+    "fixture/UpdateCustomLineItem.yaml"++requestUpdatePricingPlan :: UpdatePricingPlan -> TestTree+requestUpdatePricingPlan =+  req+    "UpdatePricingPlan"+    "fixture/UpdatePricingPlan.yaml"++requestUpdatePricingRule :: UpdatePricingRule -> TestTree+requestUpdatePricingRule =+  req+    "UpdatePricingRule"+    "fixture/UpdatePricingRule.yaml"++-- Responses++responseAssociateAccounts :: AssociateAccountsResponse -> TestTree+responseAssociateAccounts =+  res+    "AssociateAccountsResponse"+    "fixture/AssociateAccountsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AssociateAccounts)++responseAssociatePricingRules :: AssociatePricingRulesResponse -> TestTree+responseAssociatePricingRules =+  res+    "AssociatePricingRulesResponse"+    "fixture/AssociatePricingRulesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AssociatePricingRules)++responseBatchAssociateResourcesToCustomLineItem :: BatchAssociateResourcesToCustomLineItemResponse -> TestTree+responseBatchAssociateResourcesToCustomLineItem =+  res+    "BatchAssociateResourcesToCustomLineItemResponse"+    "fixture/BatchAssociateResourcesToCustomLineItemResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchAssociateResourcesToCustomLineItem)++responseBatchDisassociateResourcesFromCustomLineItem :: BatchDisassociateResourcesFromCustomLineItemResponse -> TestTree+responseBatchDisassociateResourcesFromCustomLineItem =+  res+    "BatchDisassociateResourcesFromCustomLineItemResponse"+    "fixture/BatchDisassociateResourcesFromCustomLineItemResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchDisassociateResourcesFromCustomLineItem)++responseCreateBillingGroup :: CreateBillingGroupResponse -> TestTree+responseCreateBillingGroup =+  res+    "CreateBillingGroupResponse"+    "fixture/CreateBillingGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateBillingGroup)++responseCreateCustomLineItem :: CreateCustomLineItemResponse -> TestTree+responseCreateCustomLineItem =+  res+    "CreateCustomLineItemResponse"+    "fixture/CreateCustomLineItemResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateCustomLineItem)++responseCreatePricingPlan :: CreatePricingPlanResponse -> TestTree+responseCreatePricingPlan =+  res+    "CreatePricingPlanResponse"+    "fixture/CreatePricingPlanResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreatePricingPlan)++responseCreatePricingRule :: CreatePricingRuleResponse -> TestTree+responseCreatePricingRule =+  res+    "CreatePricingRuleResponse"+    "fixture/CreatePricingRuleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreatePricingRule)++responseDeleteBillingGroup :: DeleteBillingGroupResponse -> TestTree+responseDeleteBillingGroup =+  res+    "DeleteBillingGroupResponse"+    "fixture/DeleteBillingGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteBillingGroup)++responseDeleteCustomLineItem :: DeleteCustomLineItemResponse -> TestTree+responseDeleteCustomLineItem =+  res+    "DeleteCustomLineItemResponse"+    "fixture/DeleteCustomLineItemResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteCustomLineItem)++responseDeletePricingPlan :: DeletePricingPlanResponse -> TestTree+responseDeletePricingPlan =+  res+    "DeletePricingPlanResponse"+    "fixture/DeletePricingPlanResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeletePricingPlan)++responseDeletePricingRule :: DeletePricingRuleResponse -> TestTree+responseDeletePricingRule =+  res+    "DeletePricingRuleResponse"+    "fixture/DeletePricingRuleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeletePricingRule)++responseDisassociateAccounts :: DisassociateAccountsResponse -> TestTree+responseDisassociateAccounts =+  res+    "DisassociateAccountsResponse"+    "fixture/DisassociateAccountsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisassociateAccounts)++responseDisassociatePricingRules :: DisassociatePricingRulesResponse -> TestTree+responseDisassociatePricingRules =+  res+    "DisassociatePricingRulesResponse"+    "fixture/DisassociatePricingRulesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisassociatePricingRules)++responseListAccountAssociations :: ListAccountAssociationsResponse -> TestTree+responseListAccountAssociations =+  res+    "ListAccountAssociationsResponse"+    "fixture/ListAccountAssociationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAccountAssociations)++responseListBillingGroupCostReports :: ListBillingGroupCostReportsResponse -> TestTree+responseListBillingGroupCostReports =+  res+    "ListBillingGroupCostReportsResponse"+    "fixture/ListBillingGroupCostReportsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListBillingGroupCostReports)++responseListBillingGroups :: ListBillingGroupsResponse -> TestTree+responseListBillingGroups =+  res+    "ListBillingGroupsResponse"+    "fixture/ListBillingGroupsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListBillingGroups)++responseListCustomLineItemVersions :: ListCustomLineItemVersionsResponse -> TestTree+responseListCustomLineItemVersions =+  res+    "ListCustomLineItemVersionsResponse"+    "fixture/ListCustomLineItemVersionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListCustomLineItemVersions)++responseListCustomLineItems :: ListCustomLineItemsResponse -> TestTree+responseListCustomLineItems =+  res+    "ListCustomLineItemsResponse"+    "fixture/ListCustomLineItemsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListCustomLineItems)++responseListPricingPlans :: ListPricingPlansResponse -> TestTree+responseListPricingPlans =+  res+    "ListPricingPlansResponse"+    "fixture/ListPricingPlansResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListPricingPlans)++responseListPricingPlansAssociatedWithPricingRule :: ListPricingPlansAssociatedWithPricingRuleResponse -> TestTree+responseListPricingPlansAssociatedWithPricingRule =+  res+    "ListPricingPlansAssociatedWithPricingRuleResponse"+    "fixture/ListPricingPlansAssociatedWithPricingRuleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListPricingPlansAssociatedWithPricingRule)++responseListPricingRules :: ListPricingRulesResponse -> TestTree+responseListPricingRules =+  res+    "ListPricingRulesResponse"+    "fixture/ListPricingRulesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListPricingRules)++responseListPricingRulesAssociatedToPricingPlan :: ListPricingRulesAssociatedToPricingPlanResponse -> TestTree+responseListPricingRulesAssociatedToPricingPlan =+  res+    "ListPricingRulesAssociatedToPricingPlanResponse"+    "fixture/ListPricingRulesAssociatedToPricingPlanResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListPricingRulesAssociatedToPricingPlan)++responseListResourcesAssociatedToCustomLineItem :: ListResourcesAssociatedToCustomLineItemResponse -> TestTree+responseListResourcesAssociatedToCustomLineItem =+  res+    "ListResourcesAssociatedToCustomLineItemResponse"+    "fixture/ListResourcesAssociatedToCustomLineItemResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListResourcesAssociatedToCustomLineItem)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+  res+    "TagResourceResponse"+    "fixture/TagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TagResource)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+  res+    "UntagResourceResponse"+    "fixture/UntagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateBillingGroup :: UpdateBillingGroupResponse -> TestTree+responseUpdateBillingGroup =+  res+    "UpdateBillingGroupResponse"+    "fixture/UpdateBillingGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateBillingGroup)++responseUpdateCustomLineItem :: UpdateCustomLineItemResponse -> TestTree+responseUpdateCustomLineItem =+  res+    "UpdateCustomLineItemResponse"+    "fixture/UpdateCustomLineItemResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateCustomLineItem)++responseUpdatePricingPlan :: UpdatePricingPlanResponse -> TestTree+responseUpdatePricingPlan =+  res+    "UpdatePricingPlanResponse"+    "fixture/UpdatePricingPlanResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdatePricingPlan)++responseUpdatePricingRule :: UpdatePricingRuleResponse -> TestTree+responseUpdatePricingRule =+  res+    "UpdatePricingRuleResponse"+    "fixture/UpdatePricingRuleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdatePricingRule)