packages feed

amazonka-appconfig (empty) → 2.0

raw patch · 168 files changed

+14981/−0 lines, 168 filesdep +amazonka-appconfigdep +amazonka-coredep +amazonka-test

Dependencies added: amazonka-appconfig, 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 AppConfig SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2019-10-09@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-appconfig)+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.AppConfig](http://hackage.haskell.org/package/amazonka-appconfig/docs/Amazonka-AppConfig.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-appconfig` 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-appconfig.cabal view
@@ -0,0 +1,153 @@+cabal-version:      2.2+name:               amazonka-appconfig+version:            2.0+synopsis:           Amazon AppConfig 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 @2019-10-09@ 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.AppConfig.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.AppConfig" 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-appconfig++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.AppConfig+    Amazonka.AppConfig.CreateApplication+    Amazonka.AppConfig.CreateConfigurationProfile+    Amazonka.AppConfig.CreateDeploymentStrategy+    Amazonka.AppConfig.CreateEnvironment+    Amazonka.AppConfig.CreateExtension+    Amazonka.AppConfig.CreateExtensionAssociation+    Amazonka.AppConfig.CreateHostedConfigurationVersion+    Amazonka.AppConfig.DeleteApplication+    Amazonka.AppConfig.DeleteConfigurationProfile+    Amazonka.AppConfig.DeleteDeploymentStrategy+    Amazonka.AppConfig.DeleteEnvironment+    Amazonka.AppConfig.DeleteExtension+    Amazonka.AppConfig.DeleteExtensionAssociation+    Amazonka.AppConfig.DeleteHostedConfigurationVersion+    Amazonka.AppConfig.GetApplication+    Amazonka.AppConfig.GetConfigurationProfile+    Amazonka.AppConfig.GetDeployment+    Amazonka.AppConfig.GetDeploymentStrategy+    Amazonka.AppConfig.GetEnvironment+    Amazonka.AppConfig.GetExtension+    Amazonka.AppConfig.GetExtensionAssociation+    Amazonka.AppConfig.GetHostedConfigurationVersion+    Amazonka.AppConfig.Lens+    Amazonka.AppConfig.ListApplications+    Amazonka.AppConfig.ListConfigurationProfiles+    Amazonka.AppConfig.ListDeployments+    Amazonka.AppConfig.ListDeploymentStrategies+    Amazonka.AppConfig.ListEnvironments+    Amazonka.AppConfig.ListExtensionAssociations+    Amazonka.AppConfig.ListExtensions+    Amazonka.AppConfig.ListHostedConfigurationVersions+    Amazonka.AppConfig.ListTagsForResource+    Amazonka.AppConfig.StartDeployment+    Amazonka.AppConfig.StopDeployment+    Amazonka.AppConfig.TagResource+    Amazonka.AppConfig.Types+    Amazonka.AppConfig.Types.Action+    Amazonka.AppConfig.Types.ActionInvocation+    Amazonka.AppConfig.Types.ActionPoint+    Amazonka.AppConfig.Types.Application+    Amazonka.AppConfig.Types.AppliedExtension+    Amazonka.AppConfig.Types.ConfigurationProfile+    Amazonka.AppConfig.Types.ConfigurationProfileSummary+    Amazonka.AppConfig.Types.Deployment+    Amazonka.AppConfig.Types.DeploymentEvent+    Amazonka.AppConfig.Types.DeploymentEventType+    Amazonka.AppConfig.Types.DeploymentState+    Amazonka.AppConfig.Types.DeploymentStrategy+    Amazonka.AppConfig.Types.DeploymentSummary+    Amazonka.AppConfig.Types.Environment+    Amazonka.AppConfig.Types.EnvironmentState+    Amazonka.AppConfig.Types.Extension+    Amazonka.AppConfig.Types.ExtensionAssociation+    Amazonka.AppConfig.Types.ExtensionAssociationSummary+    Amazonka.AppConfig.Types.ExtensionSummary+    Amazonka.AppConfig.Types.GrowthType+    Amazonka.AppConfig.Types.HostedConfigurationVersion+    Amazonka.AppConfig.Types.HostedConfigurationVersionSummary+    Amazonka.AppConfig.Types.Monitor+    Amazonka.AppConfig.Types.Parameter+    Amazonka.AppConfig.Types.ReplicateTo+    Amazonka.AppConfig.Types.TriggeredBy+    Amazonka.AppConfig.Types.Validator+    Amazonka.AppConfig.Types.ValidatorType+    Amazonka.AppConfig.UntagResource+    Amazonka.AppConfig.UpdateApplication+    Amazonka.AppConfig.UpdateConfigurationProfile+    Amazonka.AppConfig.UpdateDeploymentStrategy+    Amazonka.AppConfig.UpdateEnvironment+    Amazonka.AppConfig.UpdateExtension+    Amazonka.AppConfig.UpdateExtensionAssociation+    Amazonka.AppConfig.ValidateConfiguration+    Amazonka.AppConfig.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-appconfig-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.AppConfig+    Test.Amazonka.AppConfig.Internal+    Test.Amazonka.Gen.AppConfig++  build-depends:+    , amazonka-appconfig+    , amazonka-core         >=2.0 && <2.1+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CreateApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/CreateApplicationResponse.proto view
+ fixture/CreateConfigurationProfile.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/CreateConfigurationProfileResponse.proto view
+ fixture/CreateDeploymentStrategy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/CreateDeploymentStrategyResponse.proto view
+ fixture/CreateEnvironment.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/CreateEnvironmentResponse.proto view
+ fixture/CreateExtension.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/CreateExtensionAssociation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/CreateExtensionAssociationResponse.proto view
+ fixture/CreateExtensionResponse.proto view
+ fixture/CreateHostedConfigurationVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/CreateHostedConfigurationVersionResponse.proto view
+ fixture/DeleteApplication.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/DeleteApplicationResponse.proto view
+ fixture/DeleteConfigurationProfile.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/DeleteConfigurationProfileResponse.proto view
+ fixture/DeleteDeploymentStrategy.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/DeleteDeploymentStrategyResponse.proto view
+ fixture/DeleteEnvironment.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/DeleteEnvironmentResponse.proto view
+ fixture/DeleteExtension.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/DeleteExtensionAssociation.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/DeleteExtensionAssociationResponse.proto view
+ fixture/DeleteExtensionResponse.proto view
+ fixture/DeleteHostedConfigurationVersion.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/DeleteHostedConfigurationVersionResponse.proto view
+ fixture/GetApplication.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/GetApplicationResponse.proto view
+ fixture/GetConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/GetConfigurationProfile.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/GetConfigurationProfileResponse.proto view
+ fixture/GetConfigurationResponse.proto view
+ fixture/GetDeployment.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/GetDeploymentResponse.proto view
+ fixture/GetDeploymentStrategy.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/GetDeploymentStrategyResponse.proto view
+ fixture/GetEnvironment.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/GetEnvironmentResponse.proto view
+ fixture/GetExtension.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/GetExtensionAssociation.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/GetExtensionAssociationResponse.proto view
+ fixture/GetExtensionResponse.proto view
+ fixture/GetHostedConfigurationVersion.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/GetHostedConfigurationVersionResponse.proto view
+ fixture/ListApplications.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/ListApplicationsResponse.proto view
+ fixture/ListConfigurationProfiles.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/ListConfigurationProfilesResponse.proto view
+ fixture/ListDeploymentStrategies.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/ListDeploymentStrategiesResponse.proto view
+ fixture/ListDeployments.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/ListDeploymentsResponse.proto view
+ fixture/ListEnvironments.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/ListEnvironmentsResponse.proto view
+ fixture/ListExtensionAssociations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/ListExtensionAssociationsResponse.proto view
+ fixture/ListExtensions.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/ListExtensionsResponse.proto view
+ fixture/ListHostedConfigurationVersions.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/ListHostedConfigurationVersionsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/StartDeployment.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/StartDeploymentResponse.proto view
+ fixture/StopDeployment.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/StopDeploymentResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/UpdateApplication.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/UpdateApplicationResponse.proto view
+ fixture/UpdateConfigurationProfile.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/UpdateConfigurationProfileResponse.proto view
+ fixture/UpdateDeploymentStrategy.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/UpdateDeploymentStrategyResponse.proto view
+ fixture/UpdateEnvironment.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/UpdateEnvironmentResponse.proto view
+ fixture/UpdateExtension.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/UpdateExtensionAssociation.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/UpdateExtensionAssociationResponse.proto view
+ fixture/UpdateExtensionResponse.proto view
+ fixture/ValidateConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appconfig/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  appconfig.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/ValidateConfigurationResponse.proto view
+ gen/Amazonka/AppConfig.hs view
@@ -0,0 +1,519 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.AppConfig+-- 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 @2019-10-09@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Use AppConfig, a capability of Amazon Web Services Systems Manager, to+-- create, manage, and quickly deploy application configurations. AppConfig+-- supports controlled deployments to applications of any size and includes+-- built-in validation checks and monitoring. You can use AppConfig with+-- applications hosted on Amazon EC2 instances, Lambda, containers, mobile+-- applications, or IoT devices.+--+-- To prevent errors when deploying application configurations, especially+-- for production systems where a simple typo could cause an unexpected+-- outage, AppConfig includes validators. A validator provides a syntactic+-- or semantic check to ensure that the configuration you want to deploy+-- works as intended. To validate your application configuration data, you+-- provide a schema or an Amazon Web Services Lambda function that runs+-- against the configuration. The configuration deployment or update can+-- only proceed when the configuration data is valid.+--+-- During a configuration deployment, AppConfig monitors the application to+-- ensure that the deployment is successful. If the system encounters an+-- error, AppConfig rolls back the change to minimize impact for your+-- application users. You can configure a deployment strategy for each+-- application or environment that includes deployment criteria, including+-- velocity, bake time, and alarms to monitor. Similar to error monitoring,+-- if a deployment triggers an alarm, AppConfig automatically rolls back to+-- the previous version.+--+-- AppConfig supports multiple use cases. Here are some examples:+--+-- -   __Feature flags__: Use AppConfig to turn on new features that+--     require a timely deployment, such as a product launch or+--     announcement.+--+-- -   __Application tuning__: Use AppConfig to carefully introduce changes+--     to your application that can only be tested with production traffic.+--+-- -   __Allow list__: Use AppConfig to allow premium subscribers to access+--     paid content.+--+-- -   __Operational issues__: Use AppConfig to reduce stress on your+--     application when a dependency or other external factor impacts the+--     system.+--+-- This reference is intended to be used with the+-- <http://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html AppConfig User Guide>.+module Amazonka.AppConfig+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** BadRequestException+    _BadRequestException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** PayloadTooLargeException+    _PayloadTooLargeException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CreateApplication+    CreateApplication (CreateApplication'),+    newCreateApplication,+    Application (Application'),+    newApplication,++    -- ** CreateConfigurationProfile+    CreateConfigurationProfile (CreateConfigurationProfile'),+    newCreateConfigurationProfile,+    ConfigurationProfile (ConfigurationProfile'),+    newConfigurationProfile,++    -- ** CreateDeploymentStrategy+    CreateDeploymentStrategy (CreateDeploymentStrategy'),+    newCreateDeploymentStrategy,+    DeploymentStrategy (DeploymentStrategy'),+    newDeploymentStrategy,++    -- ** CreateEnvironment+    CreateEnvironment (CreateEnvironment'),+    newCreateEnvironment,+    Environment (Environment'),+    newEnvironment,++    -- ** CreateExtension+    CreateExtension (CreateExtension'),+    newCreateExtension,+    Extension (Extension'),+    newExtension,++    -- ** CreateExtensionAssociation+    CreateExtensionAssociation (CreateExtensionAssociation'),+    newCreateExtensionAssociation,+    ExtensionAssociation (ExtensionAssociation'),+    newExtensionAssociation,++    -- ** CreateHostedConfigurationVersion+    CreateHostedConfigurationVersion (CreateHostedConfigurationVersion'),+    newCreateHostedConfigurationVersion,+    HostedConfigurationVersion (HostedConfigurationVersion'),+    newHostedConfigurationVersion,++    -- ** DeleteApplication+    DeleteApplication (DeleteApplication'),+    newDeleteApplication,+    DeleteApplicationResponse (DeleteApplicationResponse'),+    newDeleteApplicationResponse,++    -- ** DeleteConfigurationProfile+    DeleteConfigurationProfile (DeleteConfigurationProfile'),+    newDeleteConfigurationProfile,+    DeleteConfigurationProfileResponse (DeleteConfigurationProfileResponse'),+    newDeleteConfigurationProfileResponse,++    -- ** DeleteDeploymentStrategy+    DeleteDeploymentStrategy (DeleteDeploymentStrategy'),+    newDeleteDeploymentStrategy,+    DeleteDeploymentStrategyResponse (DeleteDeploymentStrategyResponse'),+    newDeleteDeploymentStrategyResponse,++    -- ** DeleteEnvironment+    DeleteEnvironment (DeleteEnvironment'),+    newDeleteEnvironment,+    DeleteEnvironmentResponse (DeleteEnvironmentResponse'),+    newDeleteEnvironmentResponse,++    -- ** DeleteExtension+    DeleteExtension (DeleteExtension'),+    newDeleteExtension,+    DeleteExtensionResponse (DeleteExtensionResponse'),+    newDeleteExtensionResponse,++    -- ** DeleteExtensionAssociation+    DeleteExtensionAssociation (DeleteExtensionAssociation'),+    newDeleteExtensionAssociation,+    DeleteExtensionAssociationResponse (DeleteExtensionAssociationResponse'),+    newDeleteExtensionAssociationResponse,++    -- ** DeleteHostedConfigurationVersion+    DeleteHostedConfigurationVersion (DeleteHostedConfigurationVersion'),+    newDeleteHostedConfigurationVersion,+    DeleteHostedConfigurationVersionResponse (DeleteHostedConfigurationVersionResponse'),+    newDeleteHostedConfigurationVersionResponse,++    -- ** GetApplication+    GetApplication (GetApplication'),+    newGetApplication,+    Application (Application'),+    newApplication,++    -- ** GetConfigurationProfile+    GetConfigurationProfile (GetConfigurationProfile'),+    newGetConfigurationProfile,+    ConfigurationProfile (ConfigurationProfile'),+    newConfigurationProfile,++    -- ** GetDeployment+    GetDeployment (GetDeployment'),+    newGetDeployment,+    Deployment (Deployment'),+    newDeployment,++    -- ** GetDeploymentStrategy+    GetDeploymentStrategy (GetDeploymentStrategy'),+    newGetDeploymentStrategy,+    DeploymentStrategy (DeploymentStrategy'),+    newDeploymentStrategy,++    -- ** GetEnvironment+    GetEnvironment (GetEnvironment'),+    newGetEnvironment,+    Environment (Environment'),+    newEnvironment,++    -- ** GetExtension+    GetExtension (GetExtension'),+    newGetExtension,+    Extension (Extension'),+    newExtension,++    -- ** GetExtensionAssociation+    GetExtensionAssociation (GetExtensionAssociation'),+    newGetExtensionAssociation,+    ExtensionAssociation (ExtensionAssociation'),+    newExtensionAssociation,++    -- ** GetHostedConfigurationVersion+    GetHostedConfigurationVersion (GetHostedConfigurationVersion'),+    newGetHostedConfigurationVersion,+    HostedConfigurationVersion (HostedConfigurationVersion'),+    newHostedConfigurationVersion,++    -- ** ListApplications+    ListApplications (ListApplications'),+    newListApplications,+    ListApplicationsResponse (ListApplicationsResponse'),+    newListApplicationsResponse,++    -- ** ListConfigurationProfiles+    ListConfigurationProfiles (ListConfigurationProfiles'),+    newListConfigurationProfiles,+    ListConfigurationProfilesResponse (ListConfigurationProfilesResponse'),+    newListConfigurationProfilesResponse,++    -- ** ListDeploymentStrategies+    ListDeploymentStrategies (ListDeploymentStrategies'),+    newListDeploymentStrategies,+    ListDeploymentStrategiesResponse (ListDeploymentStrategiesResponse'),+    newListDeploymentStrategiesResponse,++    -- ** ListDeployments+    ListDeployments (ListDeployments'),+    newListDeployments,+    ListDeploymentsResponse (ListDeploymentsResponse'),+    newListDeploymentsResponse,++    -- ** ListEnvironments+    ListEnvironments (ListEnvironments'),+    newListEnvironments,+    ListEnvironmentsResponse (ListEnvironmentsResponse'),+    newListEnvironmentsResponse,++    -- ** ListExtensionAssociations+    ListExtensionAssociations (ListExtensionAssociations'),+    newListExtensionAssociations,+    ListExtensionAssociationsResponse (ListExtensionAssociationsResponse'),+    newListExtensionAssociationsResponse,++    -- ** ListExtensions+    ListExtensions (ListExtensions'),+    newListExtensions,+    ListExtensionsResponse (ListExtensionsResponse'),+    newListExtensionsResponse,++    -- ** ListHostedConfigurationVersions+    ListHostedConfigurationVersions (ListHostedConfigurationVersions'),+    newListHostedConfigurationVersions,+    ListHostedConfigurationVersionsResponse (ListHostedConfigurationVersionsResponse'),+    newListHostedConfigurationVersionsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** StartDeployment+    StartDeployment (StartDeployment'),+    newStartDeployment,+    Deployment (Deployment'),+    newDeployment,++    -- ** StopDeployment+    StopDeployment (StopDeployment'),+    newStopDeployment,+    Deployment (Deployment'),+    newDeployment,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateApplication+    UpdateApplication (UpdateApplication'),+    newUpdateApplication,+    Application (Application'),+    newApplication,++    -- ** UpdateConfigurationProfile+    UpdateConfigurationProfile (UpdateConfigurationProfile'),+    newUpdateConfigurationProfile,+    ConfigurationProfile (ConfigurationProfile'),+    newConfigurationProfile,++    -- ** UpdateDeploymentStrategy+    UpdateDeploymentStrategy (UpdateDeploymentStrategy'),+    newUpdateDeploymentStrategy,+    DeploymentStrategy (DeploymentStrategy'),+    newDeploymentStrategy,++    -- ** UpdateEnvironment+    UpdateEnvironment (UpdateEnvironment'),+    newUpdateEnvironment,+    Environment (Environment'),+    newEnvironment,++    -- ** UpdateExtension+    UpdateExtension (UpdateExtension'),+    newUpdateExtension,+    Extension (Extension'),+    newExtension,++    -- ** UpdateExtensionAssociation+    UpdateExtensionAssociation (UpdateExtensionAssociation'),+    newUpdateExtensionAssociation,+    ExtensionAssociation (ExtensionAssociation'),+    newExtensionAssociation,++    -- ** ValidateConfiguration+    ValidateConfiguration (ValidateConfiguration'),+    newValidateConfiguration,+    ValidateConfigurationResponse (ValidateConfigurationResponse'),+    newValidateConfigurationResponse,++    -- * Types++    -- ** ActionPoint+    ActionPoint (..),++    -- ** DeploymentEventType+    DeploymentEventType (..),++    -- ** DeploymentState+    DeploymentState (..),++    -- ** EnvironmentState+    EnvironmentState (..),++    -- ** GrowthType+    GrowthType (..),++    -- ** ReplicateTo+    ReplicateTo (..),++    -- ** TriggeredBy+    TriggeredBy (..),++    -- ** ValidatorType+    ValidatorType (..),++    -- ** Action+    Action (Action'),+    newAction,++    -- ** ActionInvocation+    ActionInvocation (ActionInvocation'),+    newActionInvocation,++    -- ** Application+    Application (Application'),+    newApplication,++    -- ** AppliedExtension+    AppliedExtension (AppliedExtension'),+    newAppliedExtension,++    -- ** ConfigurationProfile+    ConfigurationProfile (ConfigurationProfile'),+    newConfigurationProfile,++    -- ** ConfigurationProfileSummary+    ConfigurationProfileSummary (ConfigurationProfileSummary'),+    newConfigurationProfileSummary,++    -- ** Deployment+    Deployment (Deployment'),+    newDeployment,++    -- ** DeploymentEvent+    DeploymentEvent (DeploymentEvent'),+    newDeploymentEvent,++    -- ** DeploymentStrategy+    DeploymentStrategy (DeploymentStrategy'),+    newDeploymentStrategy,++    -- ** DeploymentSummary+    DeploymentSummary (DeploymentSummary'),+    newDeploymentSummary,++    -- ** Environment+    Environment (Environment'),+    newEnvironment,++    -- ** Extension+    Extension (Extension'),+    newExtension,++    -- ** ExtensionAssociation+    ExtensionAssociation (ExtensionAssociation'),+    newExtensionAssociation,++    -- ** ExtensionAssociationSummary+    ExtensionAssociationSummary (ExtensionAssociationSummary'),+    newExtensionAssociationSummary,++    -- ** ExtensionSummary+    ExtensionSummary (ExtensionSummary'),+    newExtensionSummary,++    -- ** HostedConfigurationVersion+    HostedConfigurationVersion (HostedConfigurationVersion'),+    newHostedConfigurationVersion,++    -- ** HostedConfigurationVersionSummary+    HostedConfigurationVersionSummary (HostedConfigurationVersionSummary'),+    newHostedConfigurationVersionSummary,++    -- ** Monitor+    Monitor (Monitor'),+    newMonitor,++    -- ** Parameter+    Parameter (Parameter'),+    newParameter,++    -- ** Validator+    Validator (Validator'),+    newValidator,+  )+where++import Amazonka.AppConfig.CreateApplication+import Amazonka.AppConfig.CreateConfigurationProfile+import Amazonka.AppConfig.CreateDeploymentStrategy+import Amazonka.AppConfig.CreateEnvironment+import Amazonka.AppConfig.CreateExtension+import Amazonka.AppConfig.CreateExtensionAssociation+import Amazonka.AppConfig.CreateHostedConfigurationVersion+import Amazonka.AppConfig.DeleteApplication+import Amazonka.AppConfig.DeleteConfigurationProfile+import Amazonka.AppConfig.DeleteDeploymentStrategy+import Amazonka.AppConfig.DeleteEnvironment+import Amazonka.AppConfig.DeleteExtension+import Amazonka.AppConfig.DeleteExtensionAssociation+import Amazonka.AppConfig.DeleteHostedConfigurationVersion+import Amazonka.AppConfig.GetApplication+import Amazonka.AppConfig.GetConfigurationProfile+import Amazonka.AppConfig.GetDeployment+import Amazonka.AppConfig.GetDeploymentStrategy+import Amazonka.AppConfig.GetEnvironment+import Amazonka.AppConfig.GetExtension+import Amazonka.AppConfig.GetExtensionAssociation+import Amazonka.AppConfig.GetHostedConfigurationVersion+import Amazonka.AppConfig.Lens+import Amazonka.AppConfig.ListApplications+import Amazonka.AppConfig.ListConfigurationProfiles+import Amazonka.AppConfig.ListDeploymentStrategies+import Amazonka.AppConfig.ListDeployments+import Amazonka.AppConfig.ListEnvironments+import Amazonka.AppConfig.ListExtensionAssociations+import Amazonka.AppConfig.ListExtensions+import Amazonka.AppConfig.ListHostedConfigurationVersions+import Amazonka.AppConfig.ListTagsForResource+import Amazonka.AppConfig.StartDeployment+import Amazonka.AppConfig.StopDeployment+import Amazonka.AppConfig.TagResource+import Amazonka.AppConfig.Types+import Amazonka.AppConfig.UntagResource+import Amazonka.AppConfig.UpdateApplication+import Amazonka.AppConfig.UpdateConfigurationProfile+import Amazonka.AppConfig.UpdateDeploymentStrategy+import Amazonka.AppConfig.UpdateEnvironment+import Amazonka.AppConfig.UpdateExtension+import Amazonka.AppConfig.UpdateExtensionAssociation+import Amazonka.AppConfig.ValidateConfiguration+import Amazonka.AppConfig.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 'AppConfig'.++-- $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/AppConfig/CreateApplication.hs view
@@ -0,0 +1,156 @@+{-# 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.AppConfig.CreateApplication+-- 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 an application. In AppConfig, an application is simply an+-- organizational construct like a folder. This organizational construct+-- has a relationship with some unit of executable code. For example, you+-- could create an application called MyMobileApp to organize and manage+-- configuration data for a mobile application installed by your users.+module Amazonka.AppConfig.CreateApplication+  ( -- * Creating a Request+    CreateApplication (..),+    newCreateApplication,++    -- * Request Lenses+    createApplication_description,+    createApplication_tags,+    createApplication_name,++    -- * Destructuring the Response+    Application (..),+    newApplication,++    -- * Response Lenses+    application_description,+    application_id,+    application_name,+  )+where++import Amazonka.AppConfig.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:/ 'newCreateApplication' smart constructor.+data CreateApplication = CreateApplication'+  { -- | A description of the application.+    description :: Prelude.Maybe Prelude.Text,+    -- | Metadata to assign to the application. Tags help organize and categorize+    -- your AppConfig resources. Each tag consists of a key and an optional+    -- value, both of which you define.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A name for the application.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateApplication' 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', 'createApplication_description' - A description of the application.+--+-- 'tags', 'createApplication_tags' - Metadata to assign to the application. Tags help organize and categorize+-- your AppConfig resources. Each tag consists of a key and an optional+-- value, both of which you define.+--+-- 'name', 'createApplication_name' - A name for the application.+newCreateApplication ::+  -- | 'name'+  Prelude.Text ->+  CreateApplication+newCreateApplication pName_ =+  CreateApplication'+    { description = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_+    }++-- | A description of the application.+createApplication_description :: Lens.Lens' CreateApplication (Prelude.Maybe Prelude.Text)+createApplication_description = Lens.lens (\CreateApplication' {description} -> description) (\s@CreateApplication' {} a -> s {description = a} :: CreateApplication)++-- | Metadata to assign to the application. Tags help organize and categorize+-- your AppConfig resources. Each tag consists of a key and an optional+-- value, both of which you define.+createApplication_tags :: Lens.Lens' CreateApplication (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createApplication_tags = Lens.lens (\CreateApplication' {tags} -> tags) (\s@CreateApplication' {} a -> s {tags = a} :: CreateApplication) Prelude.. Lens.mapping Lens.coerced++-- | A name for the application.+createApplication_name :: Lens.Lens' CreateApplication Prelude.Text+createApplication_name = Lens.lens (\CreateApplication' {name} -> name) (\s@CreateApplication' {} a -> s {name = a} :: CreateApplication)++instance Core.AWSRequest CreateApplication where+  type AWSResponse CreateApplication = Application+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable CreateApplication where+  hashWithSalt _salt CreateApplication' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateApplication where+  rnf CreateApplication' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateApplication where+  toJSON CreateApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Name" Data..= name)+          ]+      )++instance Data.ToPath CreateApplication where+  toPath = Prelude.const "/applications"++instance Data.ToQuery CreateApplication where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/CreateConfigurationProfile.hs view
@@ -0,0 +1,325 @@+{-# 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.AppConfig.CreateConfigurationProfile+-- 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 configuration profile, which is information that enables+-- AppConfig to access the configuration source. Valid configuration+-- sources include the AppConfig hosted configuration store, Amazon Web+-- Services Systems Manager (SSM) documents, SSM Parameter Store+-- parameters, Amazon S3 objects, or any+-- <http://docs.aws.amazon.com/codepipeline/latest/userguide/integrations-action-type.html#integrations-source integration source action>+-- supported by CodePipeline. A configuration profile includes the+-- following information:+--+-- -   The URI location of the configuration data.+--+-- -   The Identity and Access Management (IAM) role that provides access+--     to the configuration data.+--+-- -   A validator for the configuration data. Available validators include+--     either a JSON Schema or an Amazon Web Services Lambda function.+--+-- For more information, see+-- <http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-and-profile.html Create a Configuration and a Configuration Profile>+-- in the /AppConfig User Guide/.+module Amazonka.AppConfig.CreateConfigurationProfile+  ( -- * Creating a Request+    CreateConfigurationProfile (..),+    newCreateConfigurationProfile,++    -- * Request Lenses+    createConfigurationProfile_description,+    createConfigurationProfile_retrievalRoleArn,+    createConfigurationProfile_tags,+    createConfigurationProfile_type,+    createConfigurationProfile_validators,+    createConfigurationProfile_applicationId,+    createConfigurationProfile_name,+    createConfigurationProfile_locationUri,++    -- * Destructuring the Response+    ConfigurationProfile (..),+    newConfigurationProfile,++    -- * Response Lenses+    configurationProfile_applicationId,+    configurationProfile_description,+    configurationProfile_id,+    configurationProfile_locationUri,+    configurationProfile_name,+    configurationProfile_retrievalRoleArn,+    configurationProfile_type,+    configurationProfile_validators,+  )+where++import Amazonka.AppConfig.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:/ 'newCreateConfigurationProfile' smart constructor.+data CreateConfigurationProfile = CreateConfigurationProfile'+  { -- | A description of the configuration profile.+    description :: Prelude.Maybe Prelude.Text,+    -- | The ARN of an IAM role with permission to access the configuration at+    -- the specified @LocationUri@.+    --+    -- A retrieval role ARN is not required for configurations stored in the+    -- AppConfig hosted configuration store. It is required for all other+    -- sources that store your configuration.+    retrievalRoleArn :: Prelude.Maybe Prelude.Text,+    -- | Metadata to assign to the configuration profile. Tags help organize and+    -- categorize your AppConfig resources. Each tag consists of a key and an+    -- optional value, both of which you define.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The type of configurations contained in the profile. AppConfig supports+    -- @feature flags@ and @freeform@ configurations. We recommend you create+    -- feature flag configurations to enable or disable new features and+    -- freeform configurations to distribute configurations to an application.+    -- When calling this API, enter one of the following values for @Type@:+    --+    -- @AWS.AppConfig.FeatureFlags@+    --+    -- @AWS.Freeform@+    type' :: Prelude.Maybe Prelude.Text,+    -- | A list of methods for validating the configuration.+    validators :: Prelude.Maybe [Validator],+    -- | The application ID.+    applicationId :: Prelude.Text,+    -- | A name for the configuration profile.+    name :: Prelude.Text,+    -- | A URI to locate the configuration. You can specify the AppConfig hosted+    -- configuration store, Systems Manager (SSM) document, an SSM Parameter+    -- Store parameter, or an Amazon S3 object. For the hosted configuration+    -- store and for feature flags, specify @hosted@. For an SSM document,+    -- specify either the document name in the format+    -- @ssm-document:\/\/\<Document_name>@ or the Amazon Resource Name (ARN).+    -- For a parameter, specify either the parameter name in the format+    -- @ssm-parameter:\/\/\<Parameter_name>@ or the ARN. For an Amazon S3+    -- object, specify the URI in the following format:+    -- @s3:\/\/\<bucket>\/\<objectKey> @. Here is an example:+    -- @s3:\/\/my-bucket\/my-app\/us-east-1\/my-config.json@+    locationUri :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateConfigurationProfile' 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', 'createConfigurationProfile_description' - A description of the configuration profile.+--+-- 'retrievalRoleArn', 'createConfigurationProfile_retrievalRoleArn' - The ARN of an IAM role with permission to access the configuration at+-- the specified @LocationUri@.+--+-- A retrieval role ARN is not required for configurations stored in the+-- AppConfig hosted configuration store. It is required for all other+-- sources that store your configuration.+--+-- 'tags', 'createConfigurationProfile_tags' - Metadata to assign to the configuration profile. Tags help organize and+-- categorize your AppConfig resources. Each tag consists of a key and an+-- optional value, both of which you define.+--+-- 'type'', 'createConfigurationProfile_type' - The type of configurations contained in the profile. AppConfig supports+-- @feature flags@ and @freeform@ configurations. We recommend you create+-- feature flag configurations to enable or disable new features and+-- freeform configurations to distribute configurations to an application.+-- When calling this API, enter one of the following values for @Type@:+--+-- @AWS.AppConfig.FeatureFlags@+--+-- @AWS.Freeform@+--+-- 'validators', 'createConfigurationProfile_validators' - A list of methods for validating the configuration.+--+-- 'applicationId', 'createConfigurationProfile_applicationId' - The application ID.+--+-- 'name', 'createConfigurationProfile_name' - A name for the configuration profile.+--+-- 'locationUri', 'createConfigurationProfile_locationUri' - A URI to locate the configuration. You can specify the AppConfig hosted+-- configuration store, Systems Manager (SSM) document, an SSM Parameter+-- Store parameter, or an Amazon S3 object. For the hosted configuration+-- store and for feature flags, specify @hosted@. For an SSM document,+-- specify either the document name in the format+-- @ssm-document:\/\/\<Document_name>@ or the Amazon Resource Name (ARN).+-- For a parameter, specify either the parameter name in the format+-- @ssm-parameter:\/\/\<Parameter_name>@ or the ARN. For an Amazon S3+-- object, specify the URI in the following format:+-- @s3:\/\/\<bucket>\/\<objectKey> @. Here is an example:+-- @s3:\/\/my-bucket\/my-app\/us-east-1\/my-config.json@+newCreateConfigurationProfile ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  -- | 'locationUri'+  Prelude.Text ->+  CreateConfigurationProfile+newCreateConfigurationProfile+  pApplicationId_+  pName_+  pLocationUri_ =+    CreateConfigurationProfile'+      { description =+          Prelude.Nothing,+        retrievalRoleArn = Prelude.Nothing,+        tags = Prelude.Nothing,+        type' = Prelude.Nothing,+        validators = Prelude.Nothing,+        applicationId = pApplicationId_,+        name = pName_,+        locationUri = pLocationUri_+      }++-- | A description of the configuration profile.+createConfigurationProfile_description :: Lens.Lens' CreateConfigurationProfile (Prelude.Maybe Prelude.Text)+createConfigurationProfile_description = Lens.lens (\CreateConfigurationProfile' {description} -> description) (\s@CreateConfigurationProfile' {} a -> s {description = a} :: CreateConfigurationProfile)++-- | The ARN of an IAM role with permission to access the configuration at+-- the specified @LocationUri@.+--+-- A retrieval role ARN is not required for configurations stored in the+-- AppConfig hosted configuration store. It is required for all other+-- sources that store your configuration.+createConfigurationProfile_retrievalRoleArn :: Lens.Lens' CreateConfigurationProfile (Prelude.Maybe Prelude.Text)+createConfigurationProfile_retrievalRoleArn = Lens.lens (\CreateConfigurationProfile' {retrievalRoleArn} -> retrievalRoleArn) (\s@CreateConfigurationProfile' {} a -> s {retrievalRoleArn = a} :: CreateConfigurationProfile)++-- | Metadata to assign to the configuration profile. Tags help organize and+-- categorize your AppConfig resources. Each tag consists of a key and an+-- optional value, both of which you define.+createConfigurationProfile_tags :: Lens.Lens' CreateConfigurationProfile (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createConfigurationProfile_tags = Lens.lens (\CreateConfigurationProfile' {tags} -> tags) (\s@CreateConfigurationProfile' {} a -> s {tags = a} :: CreateConfigurationProfile) Prelude.. Lens.mapping Lens.coerced++-- | The type of configurations contained in the profile. AppConfig supports+-- @feature flags@ and @freeform@ configurations. We recommend you create+-- feature flag configurations to enable or disable new features and+-- freeform configurations to distribute configurations to an application.+-- When calling this API, enter one of the following values for @Type@:+--+-- @AWS.AppConfig.FeatureFlags@+--+-- @AWS.Freeform@+createConfigurationProfile_type :: Lens.Lens' CreateConfigurationProfile (Prelude.Maybe Prelude.Text)+createConfigurationProfile_type = Lens.lens (\CreateConfigurationProfile' {type'} -> type') (\s@CreateConfigurationProfile' {} a -> s {type' = a} :: CreateConfigurationProfile)++-- | A list of methods for validating the configuration.+createConfigurationProfile_validators :: Lens.Lens' CreateConfigurationProfile (Prelude.Maybe [Validator])+createConfigurationProfile_validators = Lens.lens (\CreateConfigurationProfile' {validators} -> validators) (\s@CreateConfigurationProfile' {} a -> s {validators = a} :: CreateConfigurationProfile) Prelude.. Lens.mapping Lens.coerced++-- | The application ID.+createConfigurationProfile_applicationId :: Lens.Lens' CreateConfigurationProfile Prelude.Text+createConfigurationProfile_applicationId = Lens.lens (\CreateConfigurationProfile' {applicationId} -> applicationId) (\s@CreateConfigurationProfile' {} a -> s {applicationId = a} :: CreateConfigurationProfile)++-- | A name for the configuration profile.+createConfigurationProfile_name :: Lens.Lens' CreateConfigurationProfile Prelude.Text+createConfigurationProfile_name = Lens.lens (\CreateConfigurationProfile' {name} -> name) (\s@CreateConfigurationProfile' {} a -> s {name = a} :: CreateConfigurationProfile)++-- | A URI to locate the configuration. You can specify the AppConfig hosted+-- configuration store, Systems Manager (SSM) document, an SSM Parameter+-- Store parameter, or an Amazon S3 object. For the hosted configuration+-- store and for feature flags, specify @hosted@. For an SSM document,+-- specify either the document name in the format+-- @ssm-document:\/\/\<Document_name>@ or the Amazon Resource Name (ARN).+-- For a parameter, specify either the parameter name in the format+-- @ssm-parameter:\/\/\<Parameter_name>@ or the ARN. For an Amazon S3+-- object, specify the URI in the following format:+-- @s3:\/\/\<bucket>\/\<objectKey> @. Here is an example:+-- @s3:\/\/my-bucket\/my-app\/us-east-1\/my-config.json@+createConfigurationProfile_locationUri :: Lens.Lens' CreateConfigurationProfile Prelude.Text+createConfigurationProfile_locationUri = Lens.lens (\CreateConfigurationProfile' {locationUri} -> locationUri) (\s@CreateConfigurationProfile' {} a -> s {locationUri = a} :: CreateConfigurationProfile)++instance Core.AWSRequest CreateConfigurationProfile where+  type+    AWSResponse CreateConfigurationProfile =+      ConfigurationProfile+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable CreateConfigurationProfile where+  hashWithSalt _salt CreateConfigurationProfile' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` retrievalRoleArn+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` validators+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` locationUri++instance Prelude.NFData CreateConfigurationProfile where+  rnf CreateConfigurationProfile' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf retrievalRoleArn+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf validators+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf locationUri++instance Data.ToHeaders CreateConfigurationProfile where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateConfigurationProfile where+  toJSON CreateConfigurationProfile' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("RetrievalRoleArn" Data..=)+              Prelude.<$> retrievalRoleArn,+            ("Tags" Data..=) Prelude.<$> tags,+            ("Type" Data..=) Prelude.<$> type',+            ("Validators" Data..=) Prelude.<$> validators,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("LocationUri" Data..= locationUri)+          ]+      )++instance Data.ToPath CreateConfigurationProfile where+  toPath CreateConfigurationProfile' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/configurationprofiles"+      ]++instance Data.ToQuery CreateConfigurationProfile where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/CreateDeploymentStrategy.hs view
@@ -0,0 +1,343 @@+{-# 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.AppConfig.CreateDeploymentStrategy+-- 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 deployment strategy that defines important criteria for+-- rolling out your configuration to the designated targets. A deployment+-- strategy includes the overall duration required, a percentage of targets+-- to receive the deployment during each interval, an algorithm that+-- defines how percentage grows, and bake time.+module Amazonka.AppConfig.CreateDeploymentStrategy+  ( -- * Creating a Request+    CreateDeploymentStrategy (..),+    newCreateDeploymentStrategy,++    -- * Request Lenses+    createDeploymentStrategy_description,+    createDeploymentStrategy_finalBakeTimeInMinutes,+    createDeploymentStrategy_growthType,+    createDeploymentStrategy_replicateTo,+    createDeploymentStrategy_tags,+    createDeploymentStrategy_name,+    createDeploymentStrategy_deploymentDurationInMinutes,+    createDeploymentStrategy_growthFactor,++    -- * Destructuring the Response+    DeploymentStrategy (..),+    newDeploymentStrategy,++    -- * Response Lenses+    deploymentStrategy_deploymentDurationInMinutes,+    deploymentStrategy_description,+    deploymentStrategy_finalBakeTimeInMinutes,+    deploymentStrategy_growthFactor,+    deploymentStrategy_growthType,+    deploymentStrategy_id,+    deploymentStrategy_name,+    deploymentStrategy_replicateTo,+  )+where++import Amazonka.AppConfig.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:/ 'newCreateDeploymentStrategy' smart constructor.+data CreateDeploymentStrategy = CreateDeploymentStrategy'+  { -- | A description of the deployment strategy.+    description :: Prelude.Maybe Prelude.Text,+    -- | Specifies the amount of time AppConfig monitors for Amazon CloudWatch+    -- alarms after the configuration has been deployed to 100% of its targets,+    -- before considering the deployment to be complete. If an alarm is+    -- triggered during this time, AppConfig rolls back the deployment. You+    -- must configure permissions for AppConfig to roll back based on+    -- CloudWatch alarms. For more information, see+    -- <https://docs.aws.amazon.com/appconfig/latest/userguide/getting-started-with-appconfig-cloudwatch-alarms-permissions.html Configuring permissions for rollback based on Amazon CloudWatch alarms>+    -- in the /AppConfig User Guide/.+    finalBakeTimeInMinutes :: Prelude.Maybe Prelude.Natural,+    -- | The algorithm used to define how percentage grows over time. AppConfig+    -- supports the following growth types:+    --+    -- __Linear__: For this type, AppConfig processes the deployment by+    -- dividing the total number of targets by the value specified for+    -- @Step percentage@. For example, a linear deployment that uses a+    -- @Step percentage@ of 10 deploys the configuration to 10 percent of the+    -- hosts. After those deployments are complete, the system deploys the+    -- configuration to the next 10 percent. This continues until 100% of the+    -- targets have successfully received the configuration.+    --+    -- __Exponential__: For this type, AppConfig processes the deployment+    -- exponentially using the following formula: @G*(2^N)@. In this formula,+    -- @G@ is the growth factor specified by the user and @N@ is the number of+    -- steps until the configuration is deployed to all targets. For example,+    -- if you specify a growth factor of 2, then the system rolls out the+    -- configuration as follows:+    --+    -- @2*(2^0)@+    --+    -- @2*(2^1)@+    --+    -- @2*(2^2)@+    --+    -- Expressed numerically, the deployment rolls out as follows: 2% of the+    -- targets, 4% of the targets, 8% of the targets, and continues until the+    -- configuration has been deployed to all targets.+    growthType :: Prelude.Maybe GrowthType,+    -- | Save the deployment strategy to a Systems Manager (SSM) document.+    replicateTo :: Prelude.Maybe ReplicateTo,+    -- | Metadata to assign to the deployment strategy. Tags help organize and+    -- categorize your AppConfig resources. Each tag consists of a key and an+    -- optional value, both of which you define.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A name for the deployment strategy.+    name :: Prelude.Text,+    -- | Total amount of time for a deployment to last.+    deploymentDurationInMinutes :: Prelude.Natural,+    -- | The percentage of targets to receive a deployed configuration during+    -- each interval.+    growthFactor :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDeploymentStrategy' 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', 'createDeploymentStrategy_description' - A description of the deployment strategy.+--+-- 'finalBakeTimeInMinutes', 'createDeploymentStrategy_finalBakeTimeInMinutes' - Specifies the amount of time AppConfig monitors for Amazon CloudWatch+-- alarms after the configuration has been deployed to 100% of its targets,+-- before considering the deployment to be complete. If an alarm is+-- triggered during this time, AppConfig rolls back the deployment. You+-- must configure permissions for AppConfig to roll back based on+-- CloudWatch alarms. For more information, see+-- <https://docs.aws.amazon.com/appconfig/latest/userguide/getting-started-with-appconfig-cloudwatch-alarms-permissions.html Configuring permissions for rollback based on Amazon CloudWatch alarms>+-- in the /AppConfig User Guide/.+--+-- 'growthType', 'createDeploymentStrategy_growthType' - The algorithm used to define how percentage grows over time. AppConfig+-- supports the following growth types:+--+-- __Linear__: For this type, AppConfig processes the deployment by+-- dividing the total number of targets by the value specified for+-- @Step percentage@. For example, a linear deployment that uses a+-- @Step percentage@ of 10 deploys the configuration to 10 percent of the+-- hosts. After those deployments are complete, the system deploys the+-- configuration to the next 10 percent. This continues until 100% of the+-- targets have successfully received the configuration.+--+-- __Exponential__: For this type, AppConfig processes the deployment+-- exponentially using the following formula: @G*(2^N)@. In this formula,+-- @G@ is the growth factor specified by the user and @N@ is the number of+-- steps until the configuration is deployed to all targets. For example,+-- if you specify a growth factor of 2, then the system rolls out the+-- configuration as follows:+--+-- @2*(2^0)@+--+-- @2*(2^1)@+--+-- @2*(2^2)@+--+-- Expressed numerically, the deployment rolls out as follows: 2% of the+-- targets, 4% of the targets, 8% of the targets, and continues until the+-- configuration has been deployed to all targets.+--+-- 'replicateTo', 'createDeploymentStrategy_replicateTo' - Save the deployment strategy to a Systems Manager (SSM) document.+--+-- 'tags', 'createDeploymentStrategy_tags' - Metadata to assign to the deployment strategy. Tags help organize and+-- categorize your AppConfig resources. Each tag consists of a key and an+-- optional value, both of which you define.+--+-- 'name', 'createDeploymentStrategy_name' - A name for the deployment strategy.+--+-- 'deploymentDurationInMinutes', 'createDeploymentStrategy_deploymentDurationInMinutes' - Total amount of time for a deployment to last.+--+-- 'growthFactor', 'createDeploymentStrategy_growthFactor' - The percentage of targets to receive a deployed configuration during+-- each interval.+newCreateDeploymentStrategy ::+  -- | 'name'+  Prelude.Text ->+  -- | 'deploymentDurationInMinutes'+  Prelude.Natural ->+  -- | 'growthFactor'+  Prelude.Double ->+  CreateDeploymentStrategy+newCreateDeploymentStrategy+  pName_+  pDeploymentDurationInMinutes_+  pGrowthFactor_ =+    CreateDeploymentStrategy'+      { description =+          Prelude.Nothing,+        finalBakeTimeInMinutes = Prelude.Nothing,+        growthType = Prelude.Nothing,+        replicateTo = Prelude.Nothing,+        tags = Prelude.Nothing,+        name = pName_,+        deploymentDurationInMinutes =+          pDeploymentDurationInMinutes_,+        growthFactor = pGrowthFactor_+      }++-- | A description of the deployment strategy.+createDeploymentStrategy_description :: Lens.Lens' CreateDeploymentStrategy (Prelude.Maybe Prelude.Text)+createDeploymentStrategy_description = Lens.lens (\CreateDeploymentStrategy' {description} -> description) (\s@CreateDeploymentStrategy' {} a -> s {description = a} :: CreateDeploymentStrategy)++-- | Specifies the amount of time AppConfig monitors for Amazon CloudWatch+-- alarms after the configuration has been deployed to 100% of its targets,+-- before considering the deployment to be complete. If an alarm is+-- triggered during this time, AppConfig rolls back the deployment. You+-- must configure permissions for AppConfig to roll back based on+-- CloudWatch alarms. For more information, see+-- <https://docs.aws.amazon.com/appconfig/latest/userguide/getting-started-with-appconfig-cloudwatch-alarms-permissions.html Configuring permissions for rollback based on Amazon CloudWatch alarms>+-- in the /AppConfig User Guide/.+createDeploymentStrategy_finalBakeTimeInMinutes :: Lens.Lens' CreateDeploymentStrategy (Prelude.Maybe Prelude.Natural)+createDeploymentStrategy_finalBakeTimeInMinutes = Lens.lens (\CreateDeploymentStrategy' {finalBakeTimeInMinutes} -> finalBakeTimeInMinutes) (\s@CreateDeploymentStrategy' {} a -> s {finalBakeTimeInMinutes = a} :: CreateDeploymentStrategy)++-- | The algorithm used to define how percentage grows over time. AppConfig+-- supports the following growth types:+--+-- __Linear__: For this type, AppConfig processes the deployment by+-- dividing the total number of targets by the value specified for+-- @Step percentage@. For example, a linear deployment that uses a+-- @Step percentage@ of 10 deploys the configuration to 10 percent of the+-- hosts. After those deployments are complete, the system deploys the+-- configuration to the next 10 percent. This continues until 100% of the+-- targets have successfully received the configuration.+--+-- __Exponential__: For this type, AppConfig processes the deployment+-- exponentially using the following formula: @G*(2^N)@. In this formula,+-- @G@ is the growth factor specified by the user and @N@ is the number of+-- steps until the configuration is deployed to all targets. For example,+-- if you specify a growth factor of 2, then the system rolls out the+-- configuration as follows:+--+-- @2*(2^0)@+--+-- @2*(2^1)@+--+-- @2*(2^2)@+--+-- Expressed numerically, the deployment rolls out as follows: 2% of the+-- targets, 4% of the targets, 8% of the targets, and continues until the+-- configuration has been deployed to all targets.+createDeploymentStrategy_growthType :: Lens.Lens' CreateDeploymentStrategy (Prelude.Maybe GrowthType)+createDeploymentStrategy_growthType = Lens.lens (\CreateDeploymentStrategy' {growthType} -> growthType) (\s@CreateDeploymentStrategy' {} a -> s {growthType = a} :: CreateDeploymentStrategy)++-- | Save the deployment strategy to a Systems Manager (SSM) document.+createDeploymentStrategy_replicateTo :: Lens.Lens' CreateDeploymentStrategy (Prelude.Maybe ReplicateTo)+createDeploymentStrategy_replicateTo = Lens.lens (\CreateDeploymentStrategy' {replicateTo} -> replicateTo) (\s@CreateDeploymentStrategy' {} a -> s {replicateTo = a} :: CreateDeploymentStrategy)++-- | Metadata to assign to the deployment strategy. Tags help organize and+-- categorize your AppConfig resources. Each tag consists of a key and an+-- optional value, both of which you define.+createDeploymentStrategy_tags :: Lens.Lens' CreateDeploymentStrategy (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createDeploymentStrategy_tags = Lens.lens (\CreateDeploymentStrategy' {tags} -> tags) (\s@CreateDeploymentStrategy' {} a -> s {tags = a} :: CreateDeploymentStrategy) Prelude.. Lens.mapping Lens.coerced++-- | A name for the deployment strategy.+createDeploymentStrategy_name :: Lens.Lens' CreateDeploymentStrategy Prelude.Text+createDeploymentStrategy_name = Lens.lens (\CreateDeploymentStrategy' {name} -> name) (\s@CreateDeploymentStrategy' {} a -> s {name = a} :: CreateDeploymentStrategy)++-- | Total amount of time for a deployment to last.+createDeploymentStrategy_deploymentDurationInMinutes :: Lens.Lens' CreateDeploymentStrategy Prelude.Natural+createDeploymentStrategy_deploymentDurationInMinutes = Lens.lens (\CreateDeploymentStrategy' {deploymentDurationInMinutes} -> deploymentDurationInMinutes) (\s@CreateDeploymentStrategy' {} a -> s {deploymentDurationInMinutes = a} :: CreateDeploymentStrategy)++-- | The percentage of targets to receive a deployed configuration during+-- each interval.+createDeploymentStrategy_growthFactor :: Lens.Lens' CreateDeploymentStrategy Prelude.Double+createDeploymentStrategy_growthFactor = Lens.lens (\CreateDeploymentStrategy' {growthFactor} -> growthFactor) (\s@CreateDeploymentStrategy' {} a -> s {growthFactor = a} :: CreateDeploymentStrategy)++instance Core.AWSRequest CreateDeploymentStrategy where+  type+    AWSResponse CreateDeploymentStrategy =+      DeploymentStrategy+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable CreateDeploymentStrategy where+  hashWithSalt _salt CreateDeploymentStrategy' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` finalBakeTimeInMinutes+      `Prelude.hashWithSalt` growthType+      `Prelude.hashWithSalt` replicateTo+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` deploymentDurationInMinutes+      `Prelude.hashWithSalt` growthFactor++instance Prelude.NFData CreateDeploymentStrategy where+  rnf CreateDeploymentStrategy' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf finalBakeTimeInMinutes+      `Prelude.seq` Prelude.rnf growthType+      `Prelude.seq` Prelude.rnf replicateTo+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf deploymentDurationInMinutes+      `Prelude.seq` Prelude.rnf growthFactor++instance Data.ToHeaders CreateDeploymentStrategy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDeploymentStrategy where+  toJSON CreateDeploymentStrategy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("FinalBakeTimeInMinutes" Data..=)+              Prelude.<$> finalBakeTimeInMinutes,+            ("GrowthType" Data..=) Prelude.<$> growthType,+            ("ReplicateTo" Data..=) Prelude.<$> replicateTo,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just+              ( "DeploymentDurationInMinutes"+                  Data..= deploymentDurationInMinutes+              ),+            Prelude.Just ("GrowthFactor" Data..= growthFactor)+          ]+      )++instance Data.ToPath CreateDeploymentStrategy where+  toPath = Prelude.const "/deploymentstrategies"++instance Data.ToQuery CreateDeploymentStrategy where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/CreateEnvironment.hs view
@@ -0,0 +1,194 @@+{-# 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.AppConfig.CreateEnvironment+-- 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 an environment. For each application, you define one or more+-- environments. An environment is a deployment group of AppConfig targets,+-- such as applications in a @Beta@ or @Production@ environment. You can+-- also define environments for application subcomponents such as the+-- @Web@, @Mobile@ and @Back-end@ components for your application. You can+-- configure Amazon CloudWatch alarms for each environment. The system+-- monitors alarms during a configuration deployment. If an alarm is+-- triggered, the system rolls back the configuration.+module Amazonka.AppConfig.CreateEnvironment+  ( -- * Creating a Request+    CreateEnvironment (..),+    newCreateEnvironment,++    -- * Request Lenses+    createEnvironment_description,+    createEnvironment_monitors,+    createEnvironment_tags,+    createEnvironment_applicationId,+    createEnvironment_name,++    -- * Destructuring the Response+    Environment (..),+    newEnvironment,++    -- * Response Lenses+    environment_applicationId,+    environment_description,+    environment_id,+    environment_monitors,+    environment_name,+    environment_state,+  )+where++import Amazonka.AppConfig.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:/ 'newCreateEnvironment' smart constructor.+data CreateEnvironment = CreateEnvironment'+  { -- | A description of the environment.+    description :: Prelude.Maybe Prelude.Text,+    -- | Amazon CloudWatch alarms to monitor during the deployment process.+    monitors :: Prelude.Maybe [Monitor],+    -- | Metadata to assign to the environment. Tags help organize and categorize+    -- your AppConfig resources. Each tag consists of a key and an optional+    -- value, both of which you define.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The application ID.+    applicationId :: Prelude.Text,+    -- | A name for the environment.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEnvironment' 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', 'createEnvironment_description' - A description of the environment.+--+-- 'monitors', 'createEnvironment_monitors' - Amazon CloudWatch alarms to monitor during the deployment process.+--+-- 'tags', 'createEnvironment_tags' - Metadata to assign to the environment. Tags help organize and categorize+-- your AppConfig resources. Each tag consists of a key and an optional+-- value, both of which you define.+--+-- 'applicationId', 'createEnvironment_applicationId' - The application ID.+--+-- 'name', 'createEnvironment_name' - A name for the environment.+newCreateEnvironment ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  CreateEnvironment+newCreateEnvironment pApplicationId_ pName_ =+  CreateEnvironment'+    { description = Prelude.Nothing,+      monitors = Prelude.Nothing,+      tags = Prelude.Nothing,+      applicationId = pApplicationId_,+      name = pName_+    }++-- | A description of the environment.+createEnvironment_description :: Lens.Lens' CreateEnvironment (Prelude.Maybe Prelude.Text)+createEnvironment_description = Lens.lens (\CreateEnvironment' {description} -> description) (\s@CreateEnvironment' {} a -> s {description = a} :: CreateEnvironment)++-- | Amazon CloudWatch alarms to monitor during the deployment process.+createEnvironment_monitors :: Lens.Lens' CreateEnvironment (Prelude.Maybe [Monitor])+createEnvironment_monitors = Lens.lens (\CreateEnvironment' {monitors} -> monitors) (\s@CreateEnvironment' {} a -> s {monitors = a} :: CreateEnvironment) Prelude.. Lens.mapping Lens.coerced++-- | Metadata to assign to the environment. Tags help organize and categorize+-- your AppConfig resources. Each tag consists of a key and an optional+-- value, both of which you define.+createEnvironment_tags :: Lens.Lens' CreateEnvironment (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createEnvironment_tags = Lens.lens (\CreateEnvironment' {tags} -> tags) (\s@CreateEnvironment' {} a -> s {tags = a} :: CreateEnvironment) Prelude.. Lens.mapping Lens.coerced++-- | The application ID.+createEnvironment_applicationId :: Lens.Lens' CreateEnvironment Prelude.Text+createEnvironment_applicationId = Lens.lens (\CreateEnvironment' {applicationId} -> applicationId) (\s@CreateEnvironment' {} a -> s {applicationId = a} :: CreateEnvironment)++-- | A name for the environment.+createEnvironment_name :: Lens.Lens' CreateEnvironment Prelude.Text+createEnvironment_name = Lens.lens (\CreateEnvironment' {name} -> name) (\s@CreateEnvironment' {} a -> s {name = a} :: CreateEnvironment)++instance Core.AWSRequest CreateEnvironment where+  type AWSResponse CreateEnvironment = Environment+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable CreateEnvironment where+  hashWithSalt _salt CreateEnvironment' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` monitors+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateEnvironment where+  rnf CreateEnvironment' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf monitors+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateEnvironment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateEnvironment where+  toJSON CreateEnvironment' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Monitors" Data..=) Prelude.<$> monitors,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Name" Data..= name)+          ]+      )++instance Data.ToPath CreateEnvironment where+  toPath CreateEnvironment' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/environments"+      ]++instance Data.ToQuery CreateEnvironment where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/CreateExtension.hs view
@@ -0,0 +1,222 @@+{-# 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.AppConfig.CreateExtension+-- 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 an AppConfig extension. An extension augments your ability to+-- inject logic or behavior at different points during the AppConfig+-- workflow of creating or deploying a configuration.+--+-- You can create your own extensions or use the Amazon Web+-- Services-authored extensions provided by AppConfig. For most use-cases,+-- to create your own extension, you must create an Lambda function to+-- perform any computation and processing defined in the extension. For+-- more information about extensions, see+-- <https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html Working with AppConfig extensions>+-- in the /AppConfig User Guide/.+module Amazonka.AppConfig.CreateExtension+  ( -- * Creating a Request+    CreateExtension (..),+    newCreateExtension,++    -- * Request Lenses+    createExtension_description,+    createExtension_latestVersionNumber,+    createExtension_parameters,+    createExtension_tags,+    createExtension_name,+    createExtension_actions,++    -- * Destructuring the Response+    Extension (..),+    newExtension,++    -- * Response Lenses+    extension_actions,+    extension_arn,+    extension_description,+    extension_id,+    extension_name,+    extension_parameters,+    extension_versionNumber,+  )+where++import Amazonka.AppConfig.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:/ 'newCreateExtension' smart constructor.+data CreateExtension = CreateExtension'+  { -- | Information about the extension.+    description :: Prelude.Maybe Prelude.Text,+    -- | You can omit this field when you create an extension. When you create a+    -- new version, specify the most recent current version number. For+    -- example, you create version 3, enter 2 for this field.+    latestVersionNumber :: Prelude.Maybe Prelude.Int,+    -- | The parameters accepted by the extension. You specify parameter values+    -- when you associate the extension to an AppConfig resource by using the+    -- @CreateExtensionAssociation@ API action. For Lambda extension actions,+    -- these parameters are included in the Lambda request object.+    parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Parameter),+    -- | Adds one or more tags for the specified extension. Tags are metadata+    -- that help you categorize resources in different ways, for example, by+    -- purpose, owner, or environment. Each tag consists of a key and an+    -- optional value, both of which you define.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A name for the extension. Each extension name in your account must be+    -- unique. Extension versions use the same name.+    name :: Prelude.Text,+    -- | The actions defined in the extension.+    actions :: Prelude.HashMap ActionPoint (Prelude.NonEmpty Action)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateExtension' 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', 'createExtension_description' - Information about the extension.+--+-- 'latestVersionNumber', 'createExtension_latestVersionNumber' - You can omit this field when you create an extension. When you create a+-- new version, specify the most recent current version number. For+-- example, you create version 3, enter 2 for this field.+--+-- 'parameters', 'createExtension_parameters' - The parameters accepted by the extension. You specify parameter values+-- when you associate the extension to an AppConfig resource by using the+-- @CreateExtensionAssociation@ API action. For Lambda extension actions,+-- these parameters are included in the Lambda request object.+--+-- 'tags', 'createExtension_tags' - Adds one or more tags for the specified extension. Tags are metadata+-- that help you categorize resources in different ways, for example, by+-- purpose, owner, or environment. Each tag consists of a key and an+-- optional value, both of which you define.+--+-- 'name', 'createExtension_name' - A name for the extension. Each extension name in your account must be+-- unique. Extension versions use the same name.+--+-- 'actions', 'createExtension_actions' - The actions defined in the extension.+newCreateExtension ::+  -- | 'name'+  Prelude.Text ->+  CreateExtension+newCreateExtension pName_ =+  CreateExtension'+    { description = Prelude.Nothing,+      latestVersionNumber = Prelude.Nothing,+      parameters = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      actions = Prelude.mempty+    }++-- | Information about the extension.+createExtension_description :: Lens.Lens' CreateExtension (Prelude.Maybe Prelude.Text)+createExtension_description = Lens.lens (\CreateExtension' {description} -> description) (\s@CreateExtension' {} a -> s {description = a} :: CreateExtension)++-- | You can omit this field when you create an extension. When you create a+-- new version, specify the most recent current version number. For+-- example, you create version 3, enter 2 for this field.+createExtension_latestVersionNumber :: Lens.Lens' CreateExtension (Prelude.Maybe Prelude.Int)+createExtension_latestVersionNumber = Lens.lens (\CreateExtension' {latestVersionNumber} -> latestVersionNumber) (\s@CreateExtension' {} a -> s {latestVersionNumber = a} :: CreateExtension)++-- | The parameters accepted by the extension. You specify parameter values+-- when you associate the extension to an AppConfig resource by using the+-- @CreateExtensionAssociation@ API action. For Lambda extension actions,+-- these parameters are included in the Lambda request object.+createExtension_parameters :: Lens.Lens' CreateExtension (Prelude.Maybe (Prelude.HashMap Prelude.Text Parameter))+createExtension_parameters = Lens.lens (\CreateExtension' {parameters} -> parameters) (\s@CreateExtension' {} a -> s {parameters = a} :: CreateExtension) Prelude.. Lens.mapping Lens.coerced++-- | Adds one or more tags for the specified extension. Tags are metadata+-- that help you categorize resources in different ways, for example, by+-- purpose, owner, or environment. Each tag consists of a key and an+-- optional value, both of which you define.+createExtension_tags :: Lens.Lens' CreateExtension (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createExtension_tags = Lens.lens (\CreateExtension' {tags} -> tags) (\s@CreateExtension' {} a -> s {tags = a} :: CreateExtension) Prelude.. Lens.mapping Lens.coerced++-- | A name for the extension. Each extension name in your account must be+-- unique. Extension versions use the same name.+createExtension_name :: Lens.Lens' CreateExtension Prelude.Text+createExtension_name = Lens.lens (\CreateExtension' {name} -> name) (\s@CreateExtension' {} a -> s {name = a} :: CreateExtension)++-- | The actions defined in the extension.+createExtension_actions :: Lens.Lens' CreateExtension (Prelude.HashMap ActionPoint (Prelude.NonEmpty Action))+createExtension_actions = Lens.lens (\CreateExtension' {actions} -> actions) (\s@CreateExtension' {} a -> s {actions = a} :: CreateExtension) Prelude.. Lens.coerced++instance Core.AWSRequest CreateExtension where+  type AWSResponse CreateExtension = Extension+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable CreateExtension where+  hashWithSalt _salt CreateExtension' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` latestVersionNumber+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` actions++instance Prelude.NFData CreateExtension where+  rnf CreateExtension' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf latestVersionNumber+      `Prelude.seq` Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf actions++instance Data.ToHeaders CreateExtension where+  toHeaders CreateExtension' {..} =+    Prelude.mconcat+      [ "Latest-Version-Number" Data.=# latestVersionNumber,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON CreateExtension where+  toJSON CreateExtension' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Parameters" Data..=) Prelude.<$> parameters,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("Actions" Data..= actions)+          ]+      )++instance Data.ToPath CreateExtension where+  toPath = Prelude.const "/extensions"++instance Data.ToQuery CreateExtension where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/CreateExtensionAssociation.hs view
@@ -0,0 +1,213 @@+{-# 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.AppConfig.CreateExtensionAssociation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- When you create an extension or configure an Amazon Web+-- Services-authored extension, you associate the extension with an+-- AppConfig application, environment, or configuration profile. For+-- example, you can choose to run the+-- @AppConfig deployment events to Amazon SNS@ Amazon Web Services-authored+-- extension and receive notifications on an Amazon SNS topic anytime a+-- configuration deployment is started for a specific application. Defining+-- which extension to associate with an AppConfig resource is called an+-- /extension association/. An extension association is a specified+-- relationship between an extension and an AppConfig resource, such as an+-- application or a configuration profile. For more information about+-- extensions and associations, see+-- <https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html Working with AppConfig extensions>+-- in the /AppConfig User Guide/.+module Amazonka.AppConfig.CreateExtensionAssociation+  ( -- * Creating a Request+    CreateExtensionAssociation (..),+    newCreateExtensionAssociation,++    -- * Request Lenses+    createExtensionAssociation_extensionVersionNumber,+    createExtensionAssociation_parameters,+    createExtensionAssociation_tags,+    createExtensionAssociation_extensionIdentifier,+    createExtensionAssociation_resourceIdentifier,++    -- * Destructuring the Response+    ExtensionAssociation (..),+    newExtensionAssociation,++    -- * Response Lenses+    extensionAssociation_arn,+    extensionAssociation_extensionArn,+    extensionAssociation_extensionVersionNumber,+    extensionAssociation_id,+    extensionAssociation_parameters,+    extensionAssociation_resourceArn,+  )+where++import Amazonka.AppConfig.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:/ 'newCreateExtensionAssociation' smart constructor.+data CreateExtensionAssociation = CreateExtensionAssociation'+  { -- | The version number of the extension. If not specified, AppConfig uses+    -- the maximum version of the extension.+    extensionVersionNumber :: Prelude.Maybe Prelude.Int,+    -- | The parameter names and values defined in the extensions. Extension+    -- parameters marked @Required@ must be entered for this field.+    parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Adds one or more tags for the specified extension association. Tags are+    -- metadata that help you categorize resources in different ways, for+    -- example, by purpose, owner, or environment. Each tag consists of a key+    -- and an optional value, both of which you define.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name, the ID, or the Amazon Resource Name (ARN) of the extension.+    extensionIdentifier :: Prelude.Text,+    -- | The ARN of an application, configuration profile, or environment.+    resourceIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateExtensionAssociation' 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:+--+-- 'extensionVersionNumber', 'createExtensionAssociation_extensionVersionNumber' - The version number of the extension. If not specified, AppConfig uses+-- the maximum version of the extension.+--+-- 'parameters', 'createExtensionAssociation_parameters' - The parameter names and values defined in the extensions. Extension+-- parameters marked @Required@ must be entered for this field.+--+-- 'tags', 'createExtensionAssociation_tags' - Adds one or more tags for the specified extension association. Tags are+-- metadata that help you categorize resources in different ways, for+-- example, by purpose, owner, or environment. Each tag consists of a key+-- and an optional value, both of which you define.+--+-- 'extensionIdentifier', 'createExtensionAssociation_extensionIdentifier' - The name, the ID, or the Amazon Resource Name (ARN) of the extension.+--+-- 'resourceIdentifier', 'createExtensionAssociation_resourceIdentifier' - The ARN of an application, configuration profile, or environment.+newCreateExtensionAssociation ::+  -- | 'extensionIdentifier'+  Prelude.Text ->+  -- | 'resourceIdentifier'+  Prelude.Text ->+  CreateExtensionAssociation+newCreateExtensionAssociation+  pExtensionIdentifier_+  pResourceIdentifier_ =+    CreateExtensionAssociation'+      { extensionVersionNumber =+          Prelude.Nothing,+        parameters = Prelude.Nothing,+        tags = Prelude.Nothing,+        extensionIdentifier = pExtensionIdentifier_,+        resourceIdentifier = pResourceIdentifier_+      }++-- | The version number of the extension. If not specified, AppConfig uses+-- the maximum version of the extension.+createExtensionAssociation_extensionVersionNumber :: Lens.Lens' CreateExtensionAssociation (Prelude.Maybe Prelude.Int)+createExtensionAssociation_extensionVersionNumber = Lens.lens (\CreateExtensionAssociation' {extensionVersionNumber} -> extensionVersionNumber) (\s@CreateExtensionAssociation' {} a -> s {extensionVersionNumber = a} :: CreateExtensionAssociation)++-- | The parameter names and values defined in the extensions. Extension+-- parameters marked @Required@ must be entered for this field.+createExtensionAssociation_parameters :: Lens.Lens' CreateExtensionAssociation (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createExtensionAssociation_parameters = Lens.lens (\CreateExtensionAssociation' {parameters} -> parameters) (\s@CreateExtensionAssociation' {} a -> s {parameters = a} :: CreateExtensionAssociation) Prelude.. Lens.mapping Lens.coerced++-- | Adds one or more tags for the specified extension association. Tags are+-- metadata that help you categorize resources in different ways, for+-- example, by purpose, owner, or environment. Each tag consists of a key+-- and an optional value, both of which you define.+createExtensionAssociation_tags :: Lens.Lens' CreateExtensionAssociation (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createExtensionAssociation_tags = Lens.lens (\CreateExtensionAssociation' {tags} -> tags) (\s@CreateExtensionAssociation' {} a -> s {tags = a} :: CreateExtensionAssociation) Prelude.. Lens.mapping Lens.coerced++-- | The name, the ID, or the Amazon Resource Name (ARN) of the extension.+createExtensionAssociation_extensionIdentifier :: Lens.Lens' CreateExtensionAssociation Prelude.Text+createExtensionAssociation_extensionIdentifier = Lens.lens (\CreateExtensionAssociation' {extensionIdentifier} -> extensionIdentifier) (\s@CreateExtensionAssociation' {} a -> s {extensionIdentifier = a} :: CreateExtensionAssociation)++-- | The ARN of an application, configuration profile, or environment.+createExtensionAssociation_resourceIdentifier :: Lens.Lens' CreateExtensionAssociation Prelude.Text+createExtensionAssociation_resourceIdentifier = Lens.lens (\CreateExtensionAssociation' {resourceIdentifier} -> resourceIdentifier) (\s@CreateExtensionAssociation' {} a -> s {resourceIdentifier = a} :: CreateExtensionAssociation)++instance Core.AWSRequest CreateExtensionAssociation where+  type+    AWSResponse CreateExtensionAssociation =+      ExtensionAssociation+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable CreateExtensionAssociation where+  hashWithSalt _salt CreateExtensionAssociation' {..} =+    _salt+      `Prelude.hashWithSalt` extensionVersionNumber+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` extensionIdentifier+      `Prelude.hashWithSalt` resourceIdentifier++instance Prelude.NFData CreateExtensionAssociation where+  rnf CreateExtensionAssociation' {..} =+    Prelude.rnf extensionVersionNumber+      `Prelude.seq` Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf extensionIdentifier+      `Prelude.seq` Prelude.rnf resourceIdentifier++instance Data.ToHeaders CreateExtensionAssociation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateExtensionAssociation where+  toJSON CreateExtensionAssociation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ExtensionVersionNumber" Data..=)+              Prelude.<$> extensionVersionNumber,+            ("Parameters" Data..=) Prelude.<$> parameters,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("ExtensionIdentifier" Data..= extensionIdentifier),+            Prelude.Just+              ("ResourceIdentifier" Data..= resourceIdentifier)+          ]+      )++instance Data.ToPath CreateExtensionAssociation where+  toPath = Prelude.const "/extensionassociations"++instance Data.ToQuery CreateExtensionAssociation where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/CreateHostedConfigurationVersion.hs view
@@ -0,0 +1,241 @@+{-# 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.AppConfig.CreateHostedConfigurationVersion+-- 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 new configuration in the AppConfig hosted configuration store.+module Amazonka.AppConfig.CreateHostedConfigurationVersion+  ( -- * Creating a Request+    CreateHostedConfigurationVersion (..),+    newCreateHostedConfigurationVersion,++    -- * Request Lenses+    createHostedConfigurationVersion_description,+    createHostedConfigurationVersion_latestVersionNumber,+    createHostedConfigurationVersion_applicationId,+    createHostedConfigurationVersion_configurationProfileId,+    createHostedConfigurationVersion_content,+    createHostedConfigurationVersion_contentType,++    -- * Destructuring the Response+    HostedConfigurationVersion (..),+    newHostedConfigurationVersion,++    -- * Response Lenses+    hostedConfigurationVersion_applicationId,+    hostedConfigurationVersion_configurationProfileId,+    hostedConfigurationVersion_content,+    hostedConfigurationVersion_contentType,+    hostedConfigurationVersion_description,+    hostedConfigurationVersion_versionNumber,+  )+where++import Amazonka.AppConfig.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:/ 'newCreateHostedConfigurationVersion' smart constructor.+data CreateHostedConfigurationVersion = CreateHostedConfigurationVersion'+  { -- | A description of the configuration.+    description :: Prelude.Maybe Prelude.Text,+    -- | An optional locking token used to prevent race conditions from+    -- overwriting configuration updates when creating a new version. To ensure+    -- your data is not overwritten when creating multiple hosted configuration+    -- versions in rapid succession, specify the version number of the latest+    -- hosted configuration version.+    latestVersionNumber :: Prelude.Maybe Prelude.Int,+    -- | The application ID.+    applicationId :: Prelude.Text,+    -- | The configuration profile ID.+    configurationProfileId :: Prelude.Text,+    -- | The content of the configuration or the configuration data.+    content :: Data.Sensitive Prelude.ByteString,+    -- | A standard MIME type describing the format of the configuration content.+    -- For more information, see+    -- <https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17 Content-Type>.+    contentType :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateHostedConfigurationVersion' 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', 'createHostedConfigurationVersion_description' - A description of the configuration.+--+-- 'latestVersionNumber', 'createHostedConfigurationVersion_latestVersionNumber' - An optional locking token used to prevent race conditions from+-- overwriting configuration updates when creating a new version. To ensure+-- your data is not overwritten when creating multiple hosted configuration+-- versions in rapid succession, specify the version number of the latest+-- hosted configuration version.+--+-- 'applicationId', 'createHostedConfigurationVersion_applicationId' - The application ID.+--+-- 'configurationProfileId', 'createHostedConfigurationVersion_configurationProfileId' - The configuration profile ID.+--+-- 'content', 'createHostedConfigurationVersion_content' - The content of the configuration or the configuration data.+--+-- 'contentType', 'createHostedConfigurationVersion_contentType' - A standard MIME type describing the format of the configuration content.+-- For more information, see+-- <https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17 Content-Type>.+newCreateHostedConfigurationVersion ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'configurationProfileId'+  Prelude.Text ->+  -- | 'content'+  Prelude.ByteString ->+  -- | 'contentType'+  Prelude.Text ->+  CreateHostedConfigurationVersion+newCreateHostedConfigurationVersion+  pApplicationId_+  pConfigurationProfileId_+  pContent_+  pContentType_ =+    CreateHostedConfigurationVersion'+      { description =+          Prelude.Nothing,+        latestVersionNumber = Prelude.Nothing,+        applicationId = pApplicationId_,+        configurationProfileId =+          pConfigurationProfileId_,+        content =+          Data._Sensitive Lens.# pContent_,+        contentType = pContentType_+      }++-- | A description of the configuration.+createHostedConfigurationVersion_description :: Lens.Lens' CreateHostedConfigurationVersion (Prelude.Maybe Prelude.Text)+createHostedConfigurationVersion_description = Lens.lens (\CreateHostedConfigurationVersion' {description} -> description) (\s@CreateHostedConfigurationVersion' {} a -> s {description = a} :: CreateHostedConfigurationVersion)++-- | An optional locking token used to prevent race conditions from+-- overwriting configuration updates when creating a new version. To ensure+-- your data is not overwritten when creating multiple hosted configuration+-- versions in rapid succession, specify the version number of the latest+-- hosted configuration version.+createHostedConfigurationVersion_latestVersionNumber :: Lens.Lens' CreateHostedConfigurationVersion (Prelude.Maybe Prelude.Int)+createHostedConfigurationVersion_latestVersionNumber = Lens.lens (\CreateHostedConfigurationVersion' {latestVersionNumber} -> latestVersionNumber) (\s@CreateHostedConfigurationVersion' {} a -> s {latestVersionNumber = a} :: CreateHostedConfigurationVersion)++-- | The application ID.+createHostedConfigurationVersion_applicationId :: Lens.Lens' CreateHostedConfigurationVersion Prelude.Text+createHostedConfigurationVersion_applicationId = Lens.lens (\CreateHostedConfigurationVersion' {applicationId} -> applicationId) (\s@CreateHostedConfigurationVersion' {} a -> s {applicationId = a} :: CreateHostedConfigurationVersion)++-- | The configuration profile ID.+createHostedConfigurationVersion_configurationProfileId :: Lens.Lens' CreateHostedConfigurationVersion Prelude.Text+createHostedConfigurationVersion_configurationProfileId = Lens.lens (\CreateHostedConfigurationVersion' {configurationProfileId} -> configurationProfileId) (\s@CreateHostedConfigurationVersion' {} a -> s {configurationProfileId = a} :: CreateHostedConfigurationVersion)++-- | The content of the configuration or the configuration data.+createHostedConfigurationVersion_content :: Lens.Lens' CreateHostedConfigurationVersion Prelude.ByteString+createHostedConfigurationVersion_content = Lens.lens (\CreateHostedConfigurationVersion' {content} -> content) (\s@CreateHostedConfigurationVersion' {} a -> s {content = a} :: CreateHostedConfigurationVersion) Prelude.. Data._Sensitive++-- | A standard MIME type describing the format of the configuration content.+-- For more information, see+-- <https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17 Content-Type>.+createHostedConfigurationVersion_contentType :: Lens.Lens' CreateHostedConfigurationVersion Prelude.Text+createHostedConfigurationVersion_contentType = Lens.lens (\CreateHostedConfigurationVersion' {contentType} -> contentType) (\s@CreateHostedConfigurationVersion' {} a -> s {contentType = a} :: CreateHostedConfigurationVersion)++instance+  Core.AWSRequest+    CreateHostedConfigurationVersion+  where+  type+    AWSResponse CreateHostedConfigurationVersion =+      HostedConfigurationVersion+  request overrides =+    Request.postBody (overrides defaultService)+  response =+    Response.receiveBytes+      ( \s h x ->+          HostedConfigurationVersion'+            Prelude.<$> (h Data..#? "Application-Id")+            Prelude.<*> (h Data..#? "Configuration-Profile-Id")+            Prelude.<*> (Prelude.pure (Prelude.Just (Prelude.coerce x)))+            Prelude.<*> (h Data..#? "Content-Type")+            Prelude.<*> (h Data..#? "Description")+            Prelude.<*> (h Data..#? "Version-Number")+      )++instance+  Prelude.Hashable+    CreateHostedConfigurationVersion+  where+  hashWithSalt+    _salt+    CreateHostedConfigurationVersion' {..} =+      _salt+        `Prelude.hashWithSalt` description+        `Prelude.hashWithSalt` latestVersionNumber+        `Prelude.hashWithSalt` applicationId+        `Prelude.hashWithSalt` configurationProfileId+        `Prelude.hashWithSalt` content+        `Prelude.hashWithSalt` contentType++instance+  Prelude.NFData+    CreateHostedConfigurationVersion+  where+  rnf CreateHostedConfigurationVersion' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf latestVersionNumber+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf configurationProfileId+      `Prelude.seq` Prelude.rnf content+      `Prelude.seq` Prelude.rnf contentType++instance Data.ToBody CreateHostedConfigurationVersion where+  toBody CreateHostedConfigurationVersion' {..} =+    Data.toBody content++instance+  Data.ToHeaders+    CreateHostedConfigurationVersion+  where+  toHeaders CreateHostedConfigurationVersion' {..} =+    Prelude.mconcat+      [ "Description" Data.=# description,+        "Latest-Version-Number" Data.=# latestVersionNumber,+        "Content-Type" Data.=# contentType+      ]++instance Data.ToPath CreateHostedConfigurationVersion where+  toPath CreateHostedConfigurationVersion' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/configurationprofiles/",+        Data.toBS configurationProfileId,+        "/hostedconfigurationversions"+      ]++instance+  Data.ToQuery+    CreateHostedConfigurationVersion+  where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/DeleteApplication.hs view
@@ -0,0 +1,126 @@+{-# 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.AppConfig.DeleteApplication+-- 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 an application. Deleting an application does not delete a+-- configuration from a host.+module Amazonka.AppConfig.DeleteApplication+  ( -- * Creating a Request+    DeleteApplication (..),+    newDeleteApplication,++    -- * Request Lenses+    deleteApplication_applicationId,++    -- * Destructuring the Response+    DeleteApplicationResponse (..),+    newDeleteApplicationResponse,+  )+where++import Amazonka.AppConfig.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:/ 'newDeleteApplication' smart constructor.+data DeleteApplication = DeleteApplication'+  { -- | The ID of the application to delete.+    applicationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteApplication' 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:+--+-- 'applicationId', 'deleteApplication_applicationId' - The ID of the application to delete.+newDeleteApplication ::+  -- | 'applicationId'+  Prelude.Text ->+  DeleteApplication+newDeleteApplication pApplicationId_ =+  DeleteApplication' {applicationId = pApplicationId_}++-- | The ID of the application to delete.+deleteApplication_applicationId :: Lens.Lens' DeleteApplication Prelude.Text+deleteApplication_applicationId = Lens.lens (\DeleteApplication' {applicationId} -> applicationId) (\s@DeleteApplication' {} a -> s {applicationId = a} :: DeleteApplication)++instance Core.AWSRequest DeleteApplication where+  type+    AWSResponse DeleteApplication =+      DeleteApplicationResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull DeleteApplicationResponse'++instance Prelude.Hashable DeleteApplication where+  hashWithSalt _salt DeleteApplication' {..} =+    _salt `Prelude.hashWithSalt` applicationId++instance Prelude.NFData DeleteApplication where+  rnf DeleteApplication' {..} =+    Prelude.rnf applicationId++instance Data.ToHeaders DeleteApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteApplication where+  toPath DeleteApplication' {..} =+    Prelude.mconcat+      ["/applications/", Data.toBS applicationId]++instance Data.ToQuery DeleteApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteApplicationResponse' smart constructor.+data DeleteApplicationResponse = DeleteApplicationResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteApplicationResponse' 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.+newDeleteApplicationResponse ::+  DeleteApplicationResponse+newDeleteApplicationResponse =+  DeleteApplicationResponse'++instance Prelude.NFData DeleteApplicationResponse where+  rnf _ = ()
+ gen/Amazonka/AppConfig/DeleteConfigurationProfile.hs view
@@ -0,0 +1,158 @@+{-# 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.AppConfig.DeleteConfigurationProfile+-- 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 configuration profile. Deleting a configuration profile does+-- not delete a configuration from a host.+module Amazonka.AppConfig.DeleteConfigurationProfile+  ( -- * Creating a Request+    DeleteConfigurationProfile (..),+    newDeleteConfigurationProfile,++    -- * Request Lenses+    deleteConfigurationProfile_applicationId,+    deleteConfigurationProfile_configurationProfileId,++    -- * Destructuring the Response+    DeleteConfigurationProfileResponse (..),+    newDeleteConfigurationProfileResponse,+  )+where++import Amazonka.AppConfig.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:/ 'newDeleteConfigurationProfile' smart constructor.+data DeleteConfigurationProfile = DeleteConfigurationProfile'+  { -- | The application ID that includes the configuration profile you want to+    -- delete.+    applicationId :: Prelude.Text,+    -- | The ID of the configuration profile you want to delete.+    configurationProfileId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteConfigurationProfile' 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:+--+-- 'applicationId', 'deleteConfigurationProfile_applicationId' - The application ID that includes the configuration profile you want to+-- delete.+--+-- 'configurationProfileId', 'deleteConfigurationProfile_configurationProfileId' - The ID of the configuration profile you want to delete.+newDeleteConfigurationProfile ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'configurationProfileId'+  Prelude.Text ->+  DeleteConfigurationProfile+newDeleteConfigurationProfile+  pApplicationId_+  pConfigurationProfileId_ =+    DeleteConfigurationProfile'+      { applicationId =+          pApplicationId_,+        configurationProfileId =+          pConfigurationProfileId_+      }++-- | The application ID that includes the configuration profile you want to+-- delete.+deleteConfigurationProfile_applicationId :: Lens.Lens' DeleteConfigurationProfile Prelude.Text+deleteConfigurationProfile_applicationId = Lens.lens (\DeleteConfigurationProfile' {applicationId} -> applicationId) (\s@DeleteConfigurationProfile' {} a -> s {applicationId = a} :: DeleteConfigurationProfile)++-- | The ID of the configuration profile you want to delete.+deleteConfigurationProfile_configurationProfileId :: Lens.Lens' DeleteConfigurationProfile Prelude.Text+deleteConfigurationProfile_configurationProfileId = Lens.lens (\DeleteConfigurationProfile' {configurationProfileId} -> configurationProfileId) (\s@DeleteConfigurationProfile' {} a -> s {configurationProfileId = a} :: DeleteConfigurationProfile)++instance Core.AWSRequest DeleteConfigurationProfile where+  type+    AWSResponse DeleteConfigurationProfile =+      DeleteConfigurationProfileResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull+      DeleteConfigurationProfileResponse'++instance Prelude.Hashable DeleteConfigurationProfile where+  hashWithSalt _salt DeleteConfigurationProfile' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` configurationProfileId++instance Prelude.NFData DeleteConfigurationProfile where+  rnf DeleteConfigurationProfile' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf configurationProfileId++instance Data.ToHeaders DeleteConfigurationProfile where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteConfigurationProfile where+  toPath DeleteConfigurationProfile' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/configurationprofiles/",+        Data.toBS configurationProfileId+      ]++instance Data.ToQuery DeleteConfigurationProfile where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteConfigurationProfileResponse' smart constructor.+data DeleteConfigurationProfileResponse = DeleteConfigurationProfileResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteConfigurationProfileResponse' 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.+newDeleteConfigurationProfileResponse ::+  DeleteConfigurationProfileResponse+newDeleteConfigurationProfileResponse =+  DeleteConfigurationProfileResponse'++instance+  Prelude.NFData+    DeleteConfigurationProfileResponse+  where+  rnf _ = ()
+ gen/Amazonka/AppConfig/DeleteDeploymentStrategy.hs view
@@ -0,0 +1,135 @@+{-# 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.AppConfig.DeleteDeploymentStrategy+-- 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 deployment strategy. Deleting a deployment strategy does not+-- delete a configuration from a host.+module Amazonka.AppConfig.DeleteDeploymentStrategy+  ( -- * Creating a Request+    DeleteDeploymentStrategy (..),+    newDeleteDeploymentStrategy,++    -- * Request Lenses+    deleteDeploymentStrategy_deploymentStrategyId,++    -- * Destructuring the Response+    DeleteDeploymentStrategyResponse (..),+    newDeleteDeploymentStrategyResponse,+  )+where++import Amazonka.AppConfig.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:/ 'newDeleteDeploymentStrategy' smart constructor.+data DeleteDeploymentStrategy = DeleteDeploymentStrategy'+  { -- | The ID of the deployment strategy you want to delete.+    deploymentStrategyId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDeploymentStrategy' 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:+--+-- 'deploymentStrategyId', 'deleteDeploymentStrategy_deploymentStrategyId' - The ID of the deployment strategy you want to delete.+newDeleteDeploymentStrategy ::+  -- | 'deploymentStrategyId'+  Prelude.Text ->+  DeleteDeploymentStrategy+newDeleteDeploymentStrategy pDeploymentStrategyId_ =+  DeleteDeploymentStrategy'+    { deploymentStrategyId =+        pDeploymentStrategyId_+    }++-- | The ID of the deployment strategy you want to delete.+deleteDeploymentStrategy_deploymentStrategyId :: Lens.Lens' DeleteDeploymentStrategy Prelude.Text+deleteDeploymentStrategy_deploymentStrategyId = Lens.lens (\DeleteDeploymentStrategy' {deploymentStrategyId} -> deploymentStrategyId) (\s@DeleteDeploymentStrategy' {} a -> s {deploymentStrategyId = a} :: DeleteDeploymentStrategy)++instance Core.AWSRequest DeleteDeploymentStrategy where+  type+    AWSResponse DeleteDeploymentStrategy =+      DeleteDeploymentStrategyResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull+      DeleteDeploymentStrategyResponse'++instance Prelude.Hashable DeleteDeploymentStrategy where+  hashWithSalt _salt DeleteDeploymentStrategy' {..} =+    _salt `Prelude.hashWithSalt` deploymentStrategyId++instance Prelude.NFData DeleteDeploymentStrategy where+  rnf DeleteDeploymentStrategy' {..} =+    Prelude.rnf deploymentStrategyId++instance Data.ToHeaders DeleteDeploymentStrategy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteDeploymentStrategy where+  toPath DeleteDeploymentStrategy' {..} =+    Prelude.mconcat+      [ "/deployementstrategies/",+        Data.toBS deploymentStrategyId+      ]++instance Data.ToQuery DeleteDeploymentStrategy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDeploymentStrategyResponse' smart constructor.+data DeleteDeploymentStrategyResponse = DeleteDeploymentStrategyResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDeploymentStrategyResponse' 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.+newDeleteDeploymentStrategyResponse ::+  DeleteDeploymentStrategyResponse+newDeleteDeploymentStrategyResponse =+  DeleteDeploymentStrategyResponse'++instance+  Prelude.NFData+    DeleteDeploymentStrategyResponse+  where+  rnf _ = ()
+ gen/Amazonka/AppConfig/DeleteEnvironment.hs view
@@ -0,0 +1,150 @@+{-# 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.AppConfig.DeleteEnvironment+-- 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 an environment. Deleting an environment does not delete a+-- configuration from a host.+module Amazonka.AppConfig.DeleteEnvironment+  ( -- * Creating a Request+    DeleteEnvironment (..),+    newDeleteEnvironment,++    -- * Request Lenses+    deleteEnvironment_applicationId,+    deleteEnvironment_environmentId,++    -- * Destructuring the Response+    DeleteEnvironmentResponse (..),+    newDeleteEnvironmentResponse,+  )+where++import Amazonka.AppConfig.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:/ 'newDeleteEnvironment' smart constructor.+data DeleteEnvironment = DeleteEnvironment'+  { -- | The application ID that includes the environment that you want to+    -- delete.+    applicationId :: Prelude.Text,+    -- | The ID of the environment that you want to delete.+    environmentId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEnvironment' 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:+--+-- 'applicationId', 'deleteEnvironment_applicationId' - The application ID that includes the environment that you want to+-- delete.+--+-- 'environmentId', 'deleteEnvironment_environmentId' - The ID of the environment that you want to delete.+newDeleteEnvironment ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'environmentId'+  Prelude.Text ->+  DeleteEnvironment+newDeleteEnvironment pApplicationId_ pEnvironmentId_ =+  DeleteEnvironment'+    { applicationId = pApplicationId_,+      environmentId = pEnvironmentId_+    }++-- | The application ID that includes the environment that you want to+-- delete.+deleteEnvironment_applicationId :: Lens.Lens' DeleteEnvironment Prelude.Text+deleteEnvironment_applicationId = Lens.lens (\DeleteEnvironment' {applicationId} -> applicationId) (\s@DeleteEnvironment' {} a -> s {applicationId = a} :: DeleteEnvironment)++-- | The ID of the environment that you want to delete.+deleteEnvironment_environmentId :: Lens.Lens' DeleteEnvironment Prelude.Text+deleteEnvironment_environmentId = Lens.lens (\DeleteEnvironment' {environmentId} -> environmentId) (\s@DeleteEnvironment' {} a -> s {environmentId = a} :: DeleteEnvironment)++instance Core.AWSRequest DeleteEnvironment where+  type+    AWSResponse DeleteEnvironment =+      DeleteEnvironmentResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull DeleteEnvironmentResponse'++instance Prelude.Hashable DeleteEnvironment where+  hashWithSalt _salt DeleteEnvironment' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` environmentId++instance Prelude.NFData DeleteEnvironment where+  rnf DeleteEnvironment' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf environmentId++instance Data.ToHeaders DeleteEnvironment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteEnvironment where+  toPath DeleteEnvironment' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/environments/",+        Data.toBS environmentId+      ]++instance Data.ToQuery DeleteEnvironment where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteEnvironmentResponse' smart constructor.+data DeleteEnvironmentResponse = DeleteEnvironmentResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEnvironmentResponse' 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.+newDeleteEnvironmentResponse ::+  DeleteEnvironmentResponse+newDeleteEnvironmentResponse =+  DeleteEnvironmentResponse'++instance Prelude.NFData DeleteEnvironmentResponse where+  rnf _ = ()
+ gen/Amazonka/AppConfig/DeleteExtension.hs view
@@ -0,0 +1,147 @@+{-# 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.AppConfig.DeleteExtension+-- 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 an AppConfig extension. You must delete all associations to an+-- extension before you delete the extension.+module Amazonka.AppConfig.DeleteExtension+  ( -- * Creating a Request+    DeleteExtension (..),+    newDeleteExtension,++    -- * Request Lenses+    deleteExtension_versionNumber,+    deleteExtension_extensionIdentifier,++    -- * Destructuring the Response+    DeleteExtensionResponse (..),+    newDeleteExtensionResponse,+  )+where++import Amazonka.AppConfig.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:/ 'newDeleteExtension' smart constructor.+data DeleteExtension = DeleteExtension'+  { -- | A specific version of an extension to delete. If omitted, the highest+    -- version is deleted.+    versionNumber :: Prelude.Maybe Prelude.Int,+    -- | The name, ID, or Amazon Resource Name (ARN) of the extension you want to+    -- delete.+    extensionIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteExtension' 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:+--+-- 'versionNumber', 'deleteExtension_versionNumber' - A specific version of an extension to delete. If omitted, the highest+-- version is deleted.+--+-- 'extensionIdentifier', 'deleteExtension_extensionIdentifier' - The name, ID, or Amazon Resource Name (ARN) of the extension you want to+-- delete.+newDeleteExtension ::+  -- | 'extensionIdentifier'+  Prelude.Text ->+  DeleteExtension+newDeleteExtension pExtensionIdentifier_ =+  DeleteExtension'+    { versionNumber = Prelude.Nothing,+      extensionIdentifier = pExtensionIdentifier_+    }++-- | A specific version of an extension to delete. If omitted, the highest+-- version is deleted.+deleteExtension_versionNumber :: Lens.Lens' DeleteExtension (Prelude.Maybe Prelude.Int)+deleteExtension_versionNumber = Lens.lens (\DeleteExtension' {versionNumber} -> versionNumber) (\s@DeleteExtension' {} a -> s {versionNumber = a} :: DeleteExtension)++-- | The name, ID, or Amazon Resource Name (ARN) of the extension you want to+-- delete.+deleteExtension_extensionIdentifier :: Lens.Lens' DeleteExtension Prelude.Text+deleteExtension_extensionIdentifier = Lens.lens (\DeleteExtension' {extensionIdentifier} -> extensionIdentifier) (\s@DeleteExtension' {} a -> s {extensionIdentifier = a} :: DeleteExtension)++instance Core.AWSRequest DeleteExtension where+  type+    AWSResponse DeleteExtension =+      DeleteExtensionResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull DeleteExtensionResponse'++instance Prelude.Hashable DeleteExtension where+  hashWithSalt _salt DeleteExtension' {..} =+    _salt+      `Prelude.hashWithSalt` versionNumber+      `Prelude.hashWithSalt` extensionIdentifier++instance Prelude.NFData DeleteExtension where+  rnf DeleteExtension' {..} =+    Prelude.rnf versionNumber+      `Prelude.seq` Prelude.rnf extensionIdentifier++instance Data.ToHeaders DeleteExtension where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteExtension where+  toPath DeleteExtension' {..} =+    Prelude.mconcat+      ["/extensions/", Data.toBS extensionIdentifier]++instance Data.ToQuery DeleteExtension where+  toQuery DeleteExtension' {..} =+    Prelude.mconcat ["version" Data.=: versionNumber]++-- | /See:/ 'newDeleteExtensionResponse' smart constructor.+data DeleteExtensionResponse = DeleteExtensionResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteExtensionResponse' 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.+newDeleteExtensionResponse ::+  DeleteExtensionResponse+newDeleteExtensionResponse = DeleteExtensionResponse'++instance Prelude.NFData DeleteExtensionResponse where+  rnf _ = ()
+ gen/Amazonka/AppConfig/DeleteExtensionAssociation.hs view
@@ -0,0 +1,136 @@+{-# 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.AppConfig.DeleteExtensionAssociation+-- 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 an extension association. This action doesn\'t delete extensions+-- defined in the association.+module Amazonka.AppConfig.DeleteExtensionAssociation+  ( -- * Creating a Request+    DeleteExtensionAssociation (..),+    newDeleteExtensionAssociation,++    -- * Request Lenses+    deleteExtensionAssociation_extensionAssociationId,++    -- * Destructuring the Response+    DeleteExtensionAssociationResponse (..),+    newDeleteExtensionAssociationResponse,+  )+where++import Amazonka.AppConfig.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:/ 'newDeleteExtensionAssociation' smart constructor.+data DeleteExtensionAssociation = DeleteExtensionAssociation'+  { -- | The ID of the extension association to delete.+    extensionAssociationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteExtensionAssociation' 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:+--+-- 'extensionAssociationId', 'deleteExtensionAssociation_extensionAssociationId' - The ID of the extension association to delete.+newDeleteExtensionAssociation ::+  -- | 'extensionAssociationId'+  Prelude.Text ->+  DeleteExtensionAssociation+newDeleteExtensionAssociation+  pExtensionAssociationId_ =+    DeleteExtensionAssociation'+      { extensionAssociationId =+          pExtensionAssociationId_+      }++-- | The ID of the extension association to delete.+deleteExtensionAssociation_extensionAssociationId :: Lens.Lens' DeleteExtensionAssociation Prelude.Text+deleteExtensionAssociation_extensionAssociationId = Lens.lens (\DeleteExtensionAssociation' {extensionAssociationId} -> extensionAssociationId) (\s@DeleteExtensionAssociation' {} a -> s {extensionAssociationId = a} :: DeleteExtensionAssociation)++instance Core.AWSRequest DeleteExtensionAssociation where+  type+    AWSResponse DeleteExtensionAssociation =+      DeleteExtensionAssociationResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull+      DeleteExtensionAssociationResponse'++instance Prelude.Hashable DeleteExtensionAssociation where+  hashWithSalt _salt DeleteExtensionAssociation' {..} =+    _salt `Prelude.hashWithSalt` extensionAssociationId++instance Prelude.NFData DeleteExtensionAssociation where+  rnf DeleteExtensionAssociation' {..} =+    Prelude.rnf extensionAssociationId++instance Data.ToHeaders DeleteExtensionAssociation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteExtensionAssociation where+  toPath DeleteExtensionAssociation' {..} =+    Prelude.mconcat+      [ "/extensionassociations/",+        Data.toBS extensionAssociationId+      ]++instance Data.ToQuery DeleteExtensionAssociation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteExtensionAssociationResponse' smart constructor.+data DeleteExtensionAssociationResponse = DeleteExtensionAssociationResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteExtensionAssociationResponse' 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.+newDeleteExtensionAssociationResponse ::+  DeleteExtensionAssociationResponse+newDeleteExtensionAssociationResponse =+  DeleteExtensionAssociationResponse'++instance+  Prelude.NFData+    DeleteExtensionAssociationResponse+  where+  rnf _ = ()
+ gen/Amazonka/AppConfig/DeleteHostedConfigurationVersion.hs view
@@ -0,0 +1,189 @@+{-# 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.AppConfig.DeleteHostedConfigurationVersion+-- 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 version of a configuration from the AppConfig hosted+-- configuration store.+module Amazonka.AppConfig.DeleteHostedConfigurationVersion+  ( -- * Creating a Request+    DeleteHostedConfigurationVersion (..),+    newDeleteHostedConfigurationVersion,++    -- * Request Lenses+    deleteHostedConfigurationVersion_applicationId,+    deleteHostedConfigurationVersion_configurationProfileId,+    deleteHostedConfigurationVersion_versionNumber,++    -- * Destructuring the Response+    DeleteHostedConfigurationVersionResponse (..),+    newDeleteHostedConfigurationVersionResponse,+  )+where++import Amazonka.AppConfig.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:/ 'newDeleteHostedConfigurationVersion' smart constructor.+data DeleteHostedConfigurationVersion = DeleteHostedConfigurationVersion'+  { -- | The application ID.+    applicationId :: Prelude.Text,+    -- | The configuration profile ID.+    configurationProfileId :: Prelude.Text,+    -- | The versions number to delete.+    versionNumber :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteHostedConfigurationVersion' 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:+--+-- 'applicationId', 'deleteHostedConfigurationVersion_applicationId' - The application ID.+--+-- 'configurationProfileId', 'deleteHostedConfigurationVersion_configurationProfileId' - The configuration profile ID.+--+-- 'versionNumber', 'deleteHostedConfigurationVersion_versionNumber' - The versions number to delete.+newDeleteHostedConfigurationVersion ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'configurationProfileId'+  Prelude.Text ->+  -- | 'versionNumber'+  Prelude.Int ->+  DeleteHostedConfigurationVersion+newDeleteHostedConfigurationVersion+  pApplicationId_+  pConfigurationProfileId_+  pVersionNumber_ =+    DeleteHostedConfigurationVersion'+      { applicationId =+          pApplicationId_,+        configurationProfileId =+          pConfigurationProfileId_,+        versionNumber = pVersionNumber_+      }++-- | The application ID.+deleteHostedConfigurationVersion_applicationId :: Lens.Lens' DeleteHostedConfigurationVersion Prelude.Text+deleteHostedConfigurationVersion_applicationId = Lens.lens (\DeleteHostedConfigurationVersion' {applicationId} -> applicationId) (\s@DeleteHostedConfigurationVersion' {} a -> s {applicationId = a} :: DeleteHostedConfigurationVersion)++-- | The configuration profile ID.+deleteHostedConfigurationVersion_configurationProfileId :: Lens.Lens' DeleteHostedConfigurationVersion Prelude.Text+deleteHostedConfigurationVersion_configurationProfileId = Lens.lens (\DeleteHostedConfigurationVersion' {configurationProfileId} -> configurationProfileId) (\s@DeleteHostedConfigurationVersion' {} a -> s {configurationProfileId = a} :: DeleteHostedConfigurationVersion)++-- | The versions number to delete.+deleteHostedConfigurationVersion_versionNumber :: Lens.Lens' DeleteHostedConfigurationVersion Prelude.Int+deleteHostedConfigurationVersion_versionNumber = Lens.lens (\DeleteHostedConfigurationVersion' {versionNumber} -> versionNumber) (\s@DeleteHostedConfigurationVersion' {} a -> s {versionNumber = a} :: DeleteHostedConfigurationVersion)++instance+  Core.AWSRequest+    DeleteHostedConfigurationVersion+  where+  type+    AWSResponse DeleteHostedConfigurationVersion =+      DeleteHostedConfigurationVersionResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull+      DeleteHostedConfigurationVersionResponse'++instance+  Prelude.Hashable+    DeleteHostedConfigurationVersion+  where+  hashWithSalt+    _salt+    DeleteHostedConfigurationVersion' {..} =+      _salt+        `Prelude.hashWithSalt` applicationId+        `Prelude.hashWithSalt` configurationProfileId+        `Prelude.hashWithSalt` versionNumber++instance+  Prelude.NFData+    DeleteHostedConfigurationVersion+  where+  rnf DeleteHostedConfigurationVersion' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf configurationProfileId+      `Prelude.seq` Prelude.rnf versionNumber++instance+  Data.ToHeaders+    DeleteHostedConfigurationVersion+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteHostedConfigurationVersion where+  toPath DeleteHostedConfigurationVersion' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/configurationprofiles/",+        Data.toBS configurationProfileId,+        "/hostedconfigurationversions/",+        Data.toBS versionNumber+      ]++instance+  Data.ToQuery+    DeleteHostedConfigurationVersion+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteHostedConfigurationVersionResponse' smart constructor.+data DeleteHostedConfigurationVersionResponse = DeleteHostedConfigurationVersionResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteHostedConfigurationVersionResponse' 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.+newDeleteHostedConfigurationVersionResponse ::+  DeleteHostedConfigurationVersionResponse+newDeleteHostedConfigurationVersionResponse =+  DeleteHostedConfigurationVersionResponse'++instance+  Prelude.NFData+    DeleteHostedConfigurationVersionResponse+  where+  rnf _ = ()
+ gen/Amazonka/AppConfig/GetApplication.hs view
@@ -0,0 +1,110 @@+{-# 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.AppConfig.GetApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about an application.+module Amazonka.AppConfig.GetApplication+  ( -- * Creating a Request+    GetApplication (..),+    newGetApplication,++    -- * Request Lenses+    getApplication_applicationId,++    -- * Destructuring the Response+    Application (..),+    newApplication,++    -- * Response Lenses+    application_description,+    application_id,+    application_name,+  )+where++import Amazonka.AppConfig.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:/ 'newGetApplication' smart constructor.+data GetApplication = GetApplication'+  { -- | The ID of the application you want to get.+    applicationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetApplication' 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:+--+-- 'applicationId', 'getApplication_applicationId' - The ID of the application you want to get.+newGetApplication ::+  -- | 'applicationId'+  Prelude.Text ->+  GetApplication+newGetApplication pApplicationId_ =+  GetApplication' {applicationId = pApplicationId_}++-- | The ID of the application you want to get.+getApplication_applicationId :: Lens.Lens' GetApplication Prelude.Text+getApplication_applicationId = Lens.lens (\GetApplication' {applicationId} -> applicationId) (\s@GetApplication' {} a -> s {applicationId = a} :: GetApplication)++instance Core.AWSRequest GetApplication where+  type AWSResponse GetApplication = Application+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable GetApplication where+  hashWithSalt _salt GetApplication' {..} =+    _salt `Prelude.hashWithSalt` applicationId++instance Prelude.NFData GetApplication where+  rnf GetApplication' {..} = Prelude.rnf applicationId++instance Data.ToHeaders GetApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetApplication where+  toPath GetApplication' {..} =+    Prelude.mconcat+      ["/applications/", Data.toBS applicationId]++instance Data.ToQuery GetApplication where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/GetConfigurationProfile.hs view
@@ -0,0 +1,145 @@+{-# 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.AppConfig.GetConfigurationProfile+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about a configuration profile.+module Amazonka.AppConfig.GetConfigurationProfile+  ( -- * Creating a Request+    GetConfigurationProfile (..),+    newGetConfigurationProfile,++    -- * Request Lenses+    getConfigurationProfile_applicationId,+    getConfigurationProfile_configurationProfileId,++    -- * Destructuring the Response+    ConfigurationProfile (..),+    newConfigurationProfile,++    -- * Response Lenses+    configurationProfile_applicationId,+    configurationProfile_description,+    configurationProfile_id,+    configurationProfile_locationUri,+    configurationProfile_name,+    configurationProfile_retrievalRoleArn,+    configurationProfile_type,+    configurationProfile_validators,+  )+where++import Amazonka.AppConfig.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:/ 'newGetConfigurationProfile' smart constructor.+data GetConfigurationProfile = GetConfigurationProfile'+  { -- | The ID of the application that includes the configuration profile you+    -- want to get.+    applicationId :: Prelude.Text,+    -- | The ID of the configuration profile that you want to get.+    configurationProfileId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetConfigurationProfile' 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:+--+-- 'applicationId', 'getConfigurationProfile_applicationId' - The ID of the application that includes the configuration profile you+-- want to get.+--+-- 'configurationProfileId', 'getConfigurationProfile_configurationProfileId' - The ID of the configuration profile that you want to get.+newGetConfigurationProfile ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'configurationProfileId'+  Prelude.Text ->+  GetConfigurationProfile+newGetConfigurationProfile+  pApplicationId_+  pConfigurationProfileId_ =+    GetConfigurationProfile'+      { applicationId =+          pApplicationId_,+        configurationProfileId = pConfigurationProfileId_+      }++-- | The ID of the application that includes the configuration profile you+-- want to get.+getConfigurationProfile_applicationId :: Lens.Lens' GetConfigurationProfile Prelude.Text+getConfigurationProfile_applicationId = Lens.lens (\GetConfigurationProfile' {applicationId} -> applicationId) (\s@GetConfigurationProfile' {} a -> s {applicationId = a} :: GetConfigurationProfile)++-- | The ID of the configuration profile that you want to get.+getConfigurationProfile_configurationProfileId :: Lens.Lens' GetConfigurationProfile Prelude.Text+getConfigurationProfile_configurationProfileId = Lens.lens (\GetConfigurationProfile' {configurationProfileId} -> configurationProfileId) (\s@GetConfigurationProfile' {} a -> s {configurationProfileId = a} :: GetConfigurationProfile)++instance Core.AWSRequest GetConfigurationProfile where+  type+    AWSResponse GetConfigurationProfile =+      ConfigurationProfile+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable GetConfigurationProfile where+  hashWithSalt _salt GetConfigurationProfile' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` configurationProfileId++instance Prelude.NFData GetConfigurationProfile where+  rnf GetConfigurationProfile' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf configurationProfileId++instance Data.ToHeaders GetConfigurationProfile where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetConfigurationProfile where+  toPath GetConfigurationProfile' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/configurationprofiles/",+        Data.toBS configurationProfileId+      ]++instance Data.ToQuery GetConfigurationProfile where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/GetDeployment.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.AppConfig.GetDeployment+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about a configuration deployment.+module Amazonka.AppConfig.GetDeployment+  ( -- * Creating a Request+    GetDeployment (..),+    newGetDeployment,++    -- * Request Lenses+    getDeployment_applicationId,+    getDeployment_environmentId,+    getDeployment_deploymentNumber,++    -- * Destructuring the Response+    Deployment (..),+    newDeployment,++    -- * Response Lenses+    deployment_applicationId,+    deployment_appliedExtensions,+    deployment_completedAt,+    deployment_configurationLocationUri,+    deployment_configurationName,+    deployment_configurationProfileId,+    deployment_configurationVersion,+    deployment_deploymentDurationInMinutes,+    deployment_deploymentNumber,+    deployment_deploymentStrategyId,+    deployment_description,+    deployment_environmentId,+    deployment_eventLog,+    deployment_finalBakeTimeInMinutes,+    deployment_growthFactor,+    deployment_growthType,+    deployment_percentageComplete,+    deployment_startedAt,+    deployment_state,+  )+where++import Amazonka.AppConfig.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:/ 'newGetDeployment' smart constructor.+data GetDeployment = GetDeployment'+  { -- | The ID of the application that includes the deployment you want to get.+    applicationId :: Prelude.Text,+    -- | The ID of the environment that includes the deployment you want to get.+    environmentId :: Prelude.Text,+    -- | The sequence number of the deployment.+    deploymentNumber :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDeployment' 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:+--+-- 'applicationId', 'getDeployment_applicationId' - The ID of the application that includes the deployment you want to get.+--+-- 'environmentId', 'getDeployment_environmentId' - The ID of the environment that includes the deployment you want to get.+--+-- 'deploymentNumber', 'getDeployment_deploymentNumber' - The sequence number of the deployment.+newGetDeployment ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'environmentId'+  Prelude.Text ->+  -- | 'deploymentNumber'+  Prelude.Int ->+  GetDeployment+newGetDeployment+  pApplicationId_+  pEnvironmentId_+  pDeploymentNumber_ =+    GetDeployment'+      { applicationId = pApplicationId_,+        environmentId = pEnvironmentId_,+        deploymentNumber = pDeploymentNumber_+      }++-- | The ID of the application that includes the deployment you want to get.+getDeployment_applicationId :: Lens.Lens' GetDeployment Prelude.Text+getDeployment_applicationId = Lens.lens (\GetDeployment' {applicationId} -> applicationId) (\s@GetDeployment' {} a -> s {applicationId = a} :: GetDeployment)++-- | The ID of the environment that includes the deployment you want to get.+getDeployment_environmentId :: Lens.Lens' GetDeployment Prelude.Text+getDeployment_environmentId = Lens.lens (\GetDeployment' {environmentId} -> environmentId) (\s@GetDeployment' {} a -> s {environmentId = a} :: GetDeployment)++-- | The sequence number of the deployment.+getDeployment_deploymentNumber :: Lens.Lens' GetDeployment Prelude.Int+getDeployment_deploymentNumber = Lens.lens (\GetDeployment' {deploymentNumber} -> deploymentNumber) (\s@GetDeployment' {} a -> s {deploymentNumber = a} :: GetDeployment)++instance Core.AWSRequest GetDeployment where+  type AWSResponse GetDeployment = Deployment+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable GetDeployment where+  hashWithSalt _salt GetDeployment' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` environmentId+      `Prelude.hashWithSalt` deploymentNumber++instance Prelude.NFData GetDeployment where+  rnf GetDeployment' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf environmentId+      `Prelude.seq` Prelude.rnf deploymentNumber++instance Data.ToHeaders GetDeployment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetDeployment where+  toPath GetDeployment' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/environments/",+        Data.toBS environmentId,+        "/deployments/",+        Data.toBS deploymentNumber+      ]++instance Data.ToQuery GetDeployment where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/GetDeploymentStrategy.hs view
@@ -0,0 +1,127 @@+{-# 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.AppConfig.GetDeploymentStrategy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about a deployment strategy. A deployment strategy+-- defines important criteria for rolling out your configuration to the+-- designated targets. A deployment strategy includes the overall duration+-- required, a percentage of targets to receive the deployment during each+-- interval, an algorithm that defines how percentage grows, and bake time.+module Amazonka.AppConfig.GetDeploymentStrategy+  ( -- * Creating a Request+    GetDeploymentStrategy (..),+    newGetDeploymentStrategy,++    -- * Request Lenses+    getDeploymentStrategy_deploymentStrategyId,++    -- * Destructuring the Response+    DeploymentStrategy (..),+    newDeploymentStrategy,++    -- * Response Lenses+    deploymentStrategy_deploymentDurationInMinutes,+    deploymentStrategy_description,+    deploymentStrategy_finalBakeTimeInMinutes,+    deploymentStrategy_growthFactor,+    deploymentStrategy_growthType,+    deploymentStrategy_id,+    deploymentStrategy_name,+    deploymentStrategy_replicateTo,+  )+where++import Amazonka.AppConfig.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:/ 'newGetDeploymentStrategy' smart constructor.+data GetDeploymentStrategy = GetDeploymentStrategy'+  { -- | The ID of the deployment strategy to get.+    deploymentStrategyId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDeploymentStrategy' 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:+--+-- 'deploymentStrategyId', 'getDeploymentStrategy_deploymentStrategyId' - The ID of the deployment strategy to get.+newGetDeploymentStrategy ::+  -- | 'deploymentStrategyId'+  Prelude.Text ->+  GetDeploymentStrategy+newGetDeploymentStrategy pDeploymentStrategyId_ =+  GetDeploymentStrategy'+    { deploymentStrategyId =+        pDeploymentStrategyId_+    }++-- | The ID of the deployment strategy to get.+getDeploymentStrategy_deploymentStrategyId :: Lens.Lens' GetDeploymentStrategy Prelude.Text+getDeploymentStrategy_deploymentStrategyId = Lens.lens (\GetDeploymentStrategy' {deploymentStrategyId} -> deploymentStrategyId) (\s@GetDeploymentStrategy' {} a -> s {deploymentStrategyId = a} :: GetDeploymentStrategy)++instance Core.AWSRequest GetDeploymentStrategy where+  type+    AWSResponse GetDeploymentStrategy =+      DeploymentStrategy+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable GetDeploymentStrategy where+  hashWithSalt _salt GetDeploymentStrategy' {..} =+    _salt `Prelude.hashWithSalt` deploymentStrategyId++instance Prelude.NFData GetDeploymentStrategy where+  rnf GetDeploymentStrategy' {..} =+    Prelude.rnf deploymentStrategyId++instance Data.ToHeaders GetDeploymentStrategy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetDeploymentStrategy where+  toPath GetDeploymentStrategy' {..} =+    Prelude.mconcat+      [ "/deploymentstrategies/",+        Data.toBS deploymentStrategyId+      ]++instance Data.ToQuery GetDeploymentStrategy where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/GetEnvironment.hs view
@@ -0,0 +1,140 @@+{-# 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.AppConfig.GetEnvironment+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about an environment. An environment is a+-- deployment group of AppConfig applications, such as applications in a+-- @Production@ environment or in an @EU_Region@ environment. Each+-- configuration deployment targets an environment. You can enable one or+-- more Amazon CloudWatch alarms for an environment. If an alarm is+-- triggered during a deployment, AppConfig roles back the configuration.+module Amazonka.AppConfig.GetEnvironment+  ( -- * Creating a Request+    GetEnvironment (..),+    newGetEnvironment,++    -- * Request Lenses+    getEnvironment_applicationId,+    getEnvironment_environmentId,++    -- * Destructuring the Response+    Environment (..),+    newEnvironment,++    -- * Response Lenses+    environment_applicationId,+    environment_description,+    environment_id,+    environment_monitors,+    environment_name,+    environment_state,+  )+where++import Amazonka.AppConfig.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:/ 'newGetEnvironment' smart constructor.+data GetEnvironment = GetEnvironment'+  { -- | The ID of the application that includes the environment you want to get.+    applicationId :: Prelude.Text,+    -- | The ID of the environment that you want to get.+    environmentId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEnvironment' 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:+--+-- 'applicationId', 'getEnvironment_applicationId' - The ID of the application that includes the environment you want to get.+--+-- 'environmentId', 'getEnvironment_environmentId' - The ID of the environment that you want to get.+newGetEnvironment ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'environmentId'+  Prelude.Text ->+  GetEnvironment+newGetEnvironment pApplicationId_ pEnvironmentId_ =+  GetEnvironment'+    { applicationId = pApplicationId_,+      environmentId = pEnvironmentId_+    }++-- | The ID of the application that includes the environment you want to get.+getEnvironment_applicationId :: Lens.Lens' GetEnvironment Prelude.Text+getEnvironment_applicationId = Lens.lens (\GetEnvironment' {applicationId} -> applicationId) (\s@GetEnvironment' {} a -> s {applicationId = a} :: GetEnvironment)++-- | The ID of the environment that you want to get.+getEnvironment_environmentId :: Lens.Lens' GetEnvironment Prelude.Text+getEnvironment_environmentId = Lens.lens (\GetEnvironment' {environmentId} -> environmentId) (\s@GetEnvironment' {} a -> s {environmentId = a} :: GetEnvironment)++instance Core.AWSRequest GetEnvironment where+  type AWSResponse GetEnvironment = Environment+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable GetEnvironment where+  hashWithSalt _salt GetEnvironment' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` environmentId++instance Prelude.NFData GetEnvironment where+  rnf GetEnvironment' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf environmentId++instance Data.ToHeaders GetEnvironment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetEnvironment where+  toPath GetEnvironment' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/environments/",+        Data.toBS environmentId+      ]++instance Data.ToQuery GetEnvironment where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/GetExtension.hs view
@@ -0,0 +1,135 @@+{-# 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.AppConfig.GetExtension+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about an AppConfig extension.+module Amazonka.AppConfig.GetExtension+  ( -- * Creating a Request+    GetExtension (..),+    newGetExtension,++    -- * Request Lenses+    getExtension_versionNumber,+    getExtension_extensionIdentifier,++    -- * Destructuring the Response+    Extension (..),+    newExtension,++    -- * Response Lenses+    extension_actions,+    extension_arn,+    extension_description,+    extension_id,+    extension_name,+    extension_parameters,+    extension_versionNumber,+  )+where++import Amazonka.AppConfig.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:/ 'newGetExtension' smart constructor.+data GetExtension = GetExtension'+  { -- | The extension version number. If no version number was defined,+    -- AppConfig uses the highest version.+    versionNumber :: Prelude.Maybe Prelude.Int,+    -- | The name, the ID, or the Amazon Resource Name (ARN) of the extension.+    extensionIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetExtension' 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:+--+-- 'versionNumber', 'getExtension_versionNumber' - The extension version number. If no version number was defined,+-- AppConfig uses the highest version.+--+-- 'extensionIdentifier', 'getExtension_extensionIdentifier' - The name, the ID, or the Amazon Resource Name (ARN) of the extension.+newGetExtension ::+  -- | 'extensionIdentifier'+  Prelude.Text ->+  GetExtension+newGetExtension pExtensionIdentifier_ =+  GetExtension'+    { versionNumber = Prelude.Nothing,+      extensionIdentifier = pExtensionIdentifier_+    }++-- | The extension version number. If no version number was defined,+-- AppConfig uses the highest version.+getExtension_versionNumber :: Lens.Lens' GetExtension (Prelude.Maybe Prelude.Int)+getExtension_versionNumber = Lens.lens (\GetExtension' {versionNumber} -> versionNumber) (\s@GetExtension' {} a -> s {versionNumber = a} :: GetExtension)++-- | The name, the ID, or the Amazon Resource Name (ARN) of the extension.+getExtension_extensionIdentifier :: Lens.Lens' GetExtension Prelude.Text+getExtension_extensionIdentifier = Lens.lens (\GetExtension' {extensionIdentifier} -> extensionIdentifier) (\s@GetExtension' {} a -> s {extensionIdentifier = a} :: GetExtension)++instance Core.AWSRequest GetExtension where+  type AWSResponse GetExtension = Extension+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable GetExtension where+  hashWithSalt _salt GetExtension' {..} =+    _salt+      `Prelude.hashWithSalt` versionNumber+      `Prelude.hashWithSalt` extensionIdentifier++instance Prelude.NFData GetExtension where+  rnf GetExtension' {..} =+    Prelude.rnf versionNumber+      `Prelude.seq` Prelude.rnf extensionIdentifier++instance Data.ToHeaders GetExtension where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetExtension where+  toPath GetExtension' {..} =+    Prelude.mconcat+      ["/extensions/", Data.toBS extensionIdentifier]++instance Data.ToQuery GetExtension where+  toQuery GetExtension' {..} =+    Prelude.mconcat+      ["version_number" Data.=: versionNumber]
+ gen/Amazonka/AppConfig/GetExtensionAssociation.hs view
@@ -0,0 +1,124 @@+{-# 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.AppConfig.GetExtensionAssociation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about an AppConfig extension association. For more+-- information about extensions and associations, see+-- <https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html Working with AppConfig extensions>+-- in the /AppConfig User Guide/.+module Amazonka.AppConfig.GetExtensionAssociation+  ( -- * Creating a Request+    GetExtensionAssociation (..),+    newGetExtensionAssociation,++    -- * Request Lenses+    getExtensionAssociation_extensionAssociationId,++    -- * Destructuring the Response+    ExtensionAssociation (..),+    newExtensionAssociation,++    -- * Response Lenses+    extensionAssociation_arn,+    extensionAssociation_extensionArn,+    extensionAssociation_extensionVersionNumber,+    extensionAssociation_id,+    extensionAssociation_parameters,+    extensionAssociation_resourceArn,+  )+where++import Amazonka.AppConfig.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:/ 'newGetExtensionAssociation' smart constructor.+data GetExtensionAssociation = GetExtensionAssociation'+  { -- | The extension association ID to get.+    extensionAssociationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetExtensionAssociation' 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:+--+-- 'extensionAssociationId', 'getExtensionAssociation_extensionAssociationId' - The extension association ID to get.+newGetExtensionAssociation ::+  -- | 'extensionAssociationId'+  Prelude.Text ->+  GetExtensionAssociation+newGetExtensionAssociation pExtensionAssociationId_ =+  GetExtensionAssociation'+    { extensionAssociationId =+        pExtensionAssociationId_+    }++-- | The extension association ID to get.+getExtensionAssociation_extensionAssociationId :: Lens.Lens' GetExtensionAssociation Prelude.Text+getExtensionAssociation_extensionAssociationId = Lens.lens (\GetExtensionAssociation' {extensionAssociationId} -> extensionAssociationId) (\s@GetExtensionAssociation' {} a -> s {extensionAssociationId = a} :: GetExtensionAssociation)++instance Core.AWSRequest GetExtensionAssociation where+  type+    AWSResponse GetExtensionAssociation =+      ExtensionAssociation+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable GetExtensionAssociation where+  hashWithSalt _salt GetExtensionAssociation' {..} =+    _salt `Prelude.hashWithSalt` extensionAssociationId++instance Prelude.NFData GetExtensionAssociation where+  rnf GetExtensionAssociation' {..} =+    Prelude.rnf extensionAssociationId++instance Data.ToHeaders GetExtensionAssociation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetExtensionAssociation where+  toPath GetExtensionAssociation' {..} =+    Prelude.mconcat+      [ "/extensionassociations/",+        Data.toBS extensionAssociationId+      ]++instance Data.ToQuery GetExtensionAssociation where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/GetHostedConfigurationVersion.hs view
@@ -0,0 +1,172 @@+{-# 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.AppConfig.GetHostedConfigurationVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about a specific configuration version.+module Amazonka.AppConfig.GetHostedConfigurationVersion+  ( -- * Creating a Request+    GetHostedConfigurationVersion (..),+    newGetHostedConfigurationVersion,++    -- * Request Lenses+    getHostedConfigurationVersion_applicationId,+    getHostedConfigurationVersion_configurationProfileId,+    getHostedConfigurationVersion_versionNumber,++    -- * Destructuring the Response+    HostedConfigurationVersion (..),+    newHostedConfigurationVersion,++    -- * Response Lenses+    hostedConfigurationVersion_applicationId,+    hostedConfigurationVersion_configurationProfileId,+    hostedConfigurationVersion_content,+    hostedConfigurationVersion_contentType,+    hostedConfigurationVersion_description,+    hostedConfigurationVersion_versionNumber,+  )+where++import Amazonka.AppConfig.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:/ 'newGetHostedConfigurationVersion' smart constructor.+data GetHostedConfigurationVersion = GetHostedConfigurationVersion'+  { -- | The application ID.+    applicationId :: Prelude.Text,+    -- | The configuration profile ID.+    configurationProfileId :: Prelude.Text,+    -- | The version.+    versionNumber :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetHostedConfigurationVersion' 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:+--+-- 'applicationId', 'getHostedConfigurationVersion_applicationId' - The application ID.+--+-- 'configurationProfileId', 'getHostedConfigurationVersion_configurationProfileId' - The configuration profile ID.+--+-- 'versionNumber', 'getHostedConfigurationVersion_versionNumber' - The version.+newGetHostedConfigurationVersion ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'configurationProfileId'+  Prelude.Text ->+  -- | 'versionNumber'+  Prelude.Int ->+  GetHostedConfigurationVersion+newGetHostedConfigurationVersion+  pApplicationId_+  pConfigurationProfileId_+  pVersionNumber_ =+    GetHostedConfigurationVersion'+      { applicationId =+          pApplicationId_,+        configurationProfileId =+          pConfigurationProfileId_,+        versionNumber = pVersionNumber_+      }++-- | The application ID.+getHostedConfigurationVersion_applicationId :: Lens.Lens' GetHostedConfigurationVersion Prelude.Text+getHostedConfigurationVersion_applicationId = Lens.lens (\GetHostedConfigurationVersion' {applicationId} -> applicationId) (\s@GetHostedConfigurationVersion' {} a -> s {applicationId = a} :: GetHostedConfigurationVersion)++-- | The configuration profile ID.+getHostedConfigurationVersion_configurationProfileId :: Lens.Lens' GetHostedConfigurationVersion Prelude.Text+getHostedConfigurationVersion_configurationProfileId = Lens.lens (\GetHostedConfigurationVersion' {configurationProfileId} -> configurationProfileId) (\s@GetHostedConfigurationVersion' {} a -> s {configurationProfileId = a} :: GetHostedConfigurationVersion)++-- | The version.+getHostedConfigurationVersion_versionNumber :: Lens.Lens' GetHostedConfigurationVersion Prelude.Int+getHostedConfigurationVersion_versionNumber = Lens.lens (\GetHostedConfigurationVersion' {versionNumber} -> versionNumber) (\s@GetHostedConfigurationVersion' {} a -> s {versionNumber = a} :: GetHostedConfigurationVersion)++instance+  Core.AWSRequest+    GetHostedConfigurationVersion+  where+  type+    AWSResponse GetHostedConfigurationVersion =+      HostedConfigurationVersion+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveBytes+      ( \s h x ->+          HostedConfigurationVersion'+            Prelude.<$> (h Data..#? "Application-Id")+            Prelude.<*> (h Data..#? "Configuration-Profile-Id")+            Prelude.<*> (Prelude.pure (Prelude.Just (Prelude.coerce x)))+            Prelude.<*> (h Data..#? "Content-Type")+            Prelude.<*> (h Data..#? "Description")+            Prelude.<*> (h Data..#? "Version-Number")+      )++instance+  Prelude.Hashable+    GetHostedConfigurationVersion+  where+  hashWithSalt _salt GetHostedConfigurationVersion' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` configurationProfileId+      `Prelude.hashWithSalt` versionNumber++instance Prelude.NFData GetHostedConfigurationVersion where+  rnf GetHostedConfigurationVersion' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf configurationProfileId+      `Prelude.seq` Prelude.rnf versionNumber++instance Data.ToHeaders GetHostedConfigurationVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetHostedConfigurationVersion where+  toPath GetHostedConfigurationVersion' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/configurationprofiles/",+        Data.toBS configurationProfileId,+        "/hostedconfigurationversions/",+        Data.toBS versionNumber+      ]++instance Data.ToQuery GetHostedConfigurationVersion where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/Lens.hs view
@@ -0,0 +1,674 @@+{-# 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.AppConfig.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.AppConfig.Lens+  ( -- * Operations++    -- ** CreateApplication+    createApplication_description,+    createApplication_tags,+    createApplication_name,+    application_description,+    application_id,+    application_name,++    -- ** CreateConfigurationProfile+    createConfigurationProfile_description,+    createConfigurationProfile_retrievalRoleArn,+    createConfigurationProfile_tags,+    createConfigurationProfile_type,+    createConfigurationProfile_validators,+    createConfigurationProfile_applicationId,+    createConfigurationProfile_name,+    createConfigurationProfile_locationUri,+    configurationProfile_applicationId,+    configurationProfile_description,+    configurationProfile_id,+    configurationProfile_locationUri,+    configurationProfile_name,+    configurationProfile_retrievalRoleArn,+    configurationProfile_type,+    configurationProfile_validators,++    -- ** CreateDeploymentStrategy+    createDeploymentStrategy_description,+    createDeploymentStrategy_finalBakeTimeInMinutes,+    createDeploymentStrategy_growthType,+    createDeploymentStrategy_replicateTo,+    createDeploymentStrategy_tags,+    createDeploymentStrategy_name,+    createDeploymentStrategy_deploymentDurationInMinutes,+    createDeploymentStrategy_growthFactor,+    deploymentStrategy_deploymentDurationInMinutes,+    deploymentStrategy_description,+    deploymentStrategy_finalBakeTimeInMinutes,+    deploymentStrategy_growthFactor,+    deploymentStrategy_growthType,+    deploymentStrategy_id,+    deploymentStrategy_name,+    deploymentStrategy_replicateTo,++    -- ** CreateEnvironment+    createEnvironment_description,+    createEnvironment_monitors,+    createEnvironment_tags,+    createEnvironment_applicationId,+    createEnvironment_name,+    environment_applicationId,+    environment_description,+    environment_id,+    environment_monitors,+    environment_name,+    environment_state,++    -- ** CreateExtension+    createExtension_description,+    createExtension_latestVersionNumber,+    createExtension_parameters,+    createExtension_tags,+    createExtension_name,+    createExtension_actions,+    extension_actions,+    extension_arn,+    extension_description,+    extension_id,+    extension_name,+    extension_parameters,+    extension_versionNumber,++    -- ** CreateExtensionAssociation+    createExtensionAssociation_extensionVersionNumber,+    createExtensionAssociation_parameters,+    createExtensionAssociation_tags,+    createExtensionAssociation_extensionIdentifier,+    createExtensionAssociation_resourceIdentifier,+    extensionAssociation_arn,+    extensionAssociation_extensionArn,+    extensionAssociation_extensionVersionNumber,+    extensionAssociation_id,+    extensionAssociation_parameters,+    extensionAssociation_resourceArn,++    -- ** CreateHostedConfigurationVersion+    createHostedConfigurationVersion_description,+    createHostedConfigurationVersion_latestVersionNumber,+    createHostedConfigurationVersion_applicationId,+    createHostedConfigurationVersion_configurationProfileId,+    createHostedConfigurationVersion_content,+    createHostedConfigurationVersion_contentType,+    hostedConfigurationVersion_applicationId,+    hostedConfigurationVersion_configurationProfileId,+    hostedConfigurationVersion_content,+    hostedConfigurationVersion_contentType,+    hostedConfigurationVersion_description,+    hostedConfigurationVersion_versionNumber,++    -- ** DeleteApplication+    deleteApplication_applicationId,++    -- ** DeleteConfigurationProfile+    deleteConfigurationProfile_applicationId,+    deleteConfigurationProfile_configurationProfileId,++    -- ** DeleteDeploymentStrategy+    deleteDeploymentStrategy_deploymentStrategyId,++    -- ** DeleteEnvironment+    deleteEnvironment_applicationId,+    deleteEnvironment_environmentId,++    -- ** DeleteExtension+    deleteExtension_versionNumber,+    deleteExtension_extensionIdentifier,++    -- ** DeleteExtensionAssociation+    deleteExtensionAssociation_extensionAssociationId,++    -- ** DeleteHostedConfigurationVersion+    deleteHostedConfigurationVersion_applicationId,+    deleteHostedConfigurationVersion_configurationProfileId,+    deleteHostedConfigurationVersion_versionNumber,++    -- ** GetApplication+    getApplication_applicationId,+    application_description,+    application_id,+    application_name,++    -- ** GetConfigurationProfile+    getConfigurationProfile_applicationId,+    getConfigurationProfile_configurationProfileId,+    configurationProfile_applicationId,+    configurationProfile_description,+    configurationProfile_id,+    configurationProfile_locationUri,+    configurationProfile_name,+    configurationProfile_retrievalRoleArn,+    configurationProfile_type,+    configurationProfile_validators,++    -- ** GetDeployment+    getDeployment_applicationId,+    getDeployment_environmentId,+    getDeployment_deploymentNumber,+    deployment_applicationId,+    deployment_appliedExtensions,+    deployment_completedAt,+    deployment_configurationLocationUri,+    deployment_configurationName,+    deployment_configurationProfileId,+    deployment_configurationVersion,+    deployment_deploymentDurationInMinutes,+    deployment_deploymentNumber,+    deployment_deploymentStrategyId,+    deployment_description,+    deployment_environmentId,+    deployment_eventLog,+    deployment_finalBakeTimeInMinutes,+    deployment_growthFactor,+    deployment_growthType,+    deployment_percentageComplete,+    deployment_startedAt,+    deployment_state,++    -- ** GetDeploymentStrategy+    getDeploymentStrategy_deploymentStrategyId,+    deploymentStrategy_deploymentDurationInMinutes,+    deploymentStrategy_description,+    deploymentStrategy_finalBakeTimeInMinutes,+    deploymentStrategy_growthFactor,+    deploymentStrategy_growthType,+    deploymentStrategy_id,+    deploymentStrategy_name,+    deploymentStrategy_replicateTo,++    -- ** GetEnvironment+    getEnvironment_applicationId,+    getEnvironment_environmentId,+    environment_applicationId,+    environment_description,+    environment_id,+    environment_monitors,+    environment_name,+    environment_state,++    -- ** GetExtension+    getExtension_versionNumber,+    getExtension_extensionIdentifier,+    extension_actions,+    extension_arn,+    extension_description,+    extension_id,+    extension_name,+    extension_parameters,+    extension_versionNumber,++    -- ** GetExtensionAssociation+    getExtensionAssociation_extensionAssociationId,+    extensionAssociation_arn,+    extensionAssociation_extensionArn,+    extensionAssociation_extensionVersionNumber,+    extensionAssociation_id,+    extensionAssociation_parameters,+    extensionAssociation_resourceArn,++    -- ** GetHostedConfigurationVersion+    getHostedConfigurationVersion_applicationId,+    getHostedConfigurationVersion_configurationProfileId,+    getHostedConfigurationVersion_versionNumber,+    hostedConfigurationVersion_applicationId,+    hostedConfigurationVersion_configurationProfileId,+    hostedConfigurationVersion_content,+    hostedConfigurationVersion_contentType,+    hostedConfigurationVersion_description,+    hostedConfigurationVersion_versionNumber,++    -- ** ListApplications+    listApplications_maxResults,+    listApplications_nextToken,+    listApplicationsResponse_items,+    listApplicationsResponse_nextToken,+    listApplicationsResponse_httpStatus,++    -- ** ListConfigurationProfiles+    listConfigurationProfiles_maxResults,+    listConfigurationProfiles_nextToken,+    listConfigurationProfiles_type,+    listConfigurationProfiles_applicationId,+    listConfigurationProfilesResponse_items,+    listConfigurationProfilesResponse_nextToken,+    listConfigurationProfilesResponse_httpStatus,++    -- ** ListDeploymentStrategies+    listDeploymentStrategies_maxResults,+    listDeploymentStrategies_nextToken,+    listDeploymentStrategiesResponse_items,+    listDeploymentStrategiesResponse_nextToken,+    listDeploymentStrategiesResponse_httpStatus,++    -- ** ListDeployments+    listDeployments_maxResults,+    listDeployments_nextToken,+    listDeployments_applicationId,+    listDeployments_environmentId,+    listDeploymentsResponse_items,+    listDeploymentsResponse_nextToken,+    listDeploymentsResponse_httpStatus,++    -- ** ListEnvironments+    listEnvironments_maxResults,+    listEnvironments_nextToken,+    listEnvironments_applicationId,+    listEnvironmentsResponse_items,+    listEnvironmentsResponse_nextToken,+    listEnvironmentsResponse_httpStatus,++    -- ** ListExtensionAssociations+    listExtensionAssociations_extensionIdentifier,+    listExtensionAssociations_extensionVersionNumber,+    listExtensionAssociations_maxResults,+    listExtensionAssociations_nextToken,+    listExtensionAssociations_resourceIdentifier,+    listExtensionAssociationsResponse_items,+    listExtensionAssociationsResponse_nextToken,+    listExtensionAssociationsResponse_httpStatus,++    -- ** ListExtensions+    listExtensions_maxResults,+    listExtensions_name,+    listExtensions_nextToken,+    listExtensionsResponse_items,+    listExtensionsResponse_nextToken,+    listExtensionsResponse_httpStatus,++    -- ** ListHostedConfigurationVersions+    listHostedConfigurationVersions_maxResults,+    listHostedConfigurationVersions_nextToken,+    listHostedConfigurationVersions_applicationId,+    listHostedConfigurationVersions_configurationProfileId,+    listHostedConfigurationVersionsResponse_items,+    listHostedConfigurationVersionsResponse_nextToken,+    listHostedConfigurationVersionsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** StartDeployment+    startDeployment_description,+    startDeployment_tags,+    startDeployment_applicationId,+    startDeployment_environmentId,+    startDeployment_deploymentStrategyId,+    startDeployment_configurationProfileId,+    startDeployment_configurationVersion,+    deployment_applicationId,+    deployment_appliedExtensions,+    deployment_completedAt,+    deployment_configurationLocationUri,+    deployment_configurationName,+    deployment_configurationProfileId,+    deployment_configurationVersion,+    deployment_deploymentDurationInMinutes,+    deployment_deploymentNumber,+    deployment_deploymentStrategyId,+    deployment_description,+    deployment_environmentId,+    deployment_eventLog,+    deployment_finalBakeTimeInMinutes,+    deployment_growthFactor,+    deployment_growthType,+    deployment_percentageComplete,+    deployment_startedAt,+    deployment_state,++    -- ** StopDeployment+    stopDeployment_applicationId,+    stopDeployment_environmentId,+    stopDeployment_deploymentNumber,+    deployment_applicationId,+    deployment_appliedExtensions,+    deployment_completedAt,+    deployment_configurationLocationUri,+    deployment_configurationName,+    deployment_configurationProfileId,+    deployment_configurationVersion,+    deployment_deploymentDurationInMinutes,+    deployment_deploymentNumber,+    deployment_deploymentStrategyId,+    deployment_description,+    deployment_environmentId,+    deployment_eventLog,+    deployment_finalBakeTimeInMinutes,+    deployment_growthFactor,+    deployment_growthType,+    deployment_percentageComplete,+    deployment_startedAt,+    deployment_state,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- ** UpdateApplication+    updateApplication_description,+    updateApplication_name,+    updateApplication_applicationId,+    application_description,+    application_id,+    application_name,++    -- ** UpdateConfigurationProfile+    updateConfigurationProfile_description,+    updateConfigurationProfile_name,+    updateConfigurationProfile_retrievalRoleArn,+    updateConfigurationProfile_validators,+    updateConfigurationProfile_applicationId,+    updateConfigurationProfile_configurationProfileId,+    configurationProfile_applicationId,+    configurationProfile_description,+    configurationProfile_id,+    configurationProfile_locationUri,+    configurationProfile_name,+    configurationProfile_retrievalRoleArn,+    configurationProfile_type,+    configurationProfile_validators,++    -- ** UpdateDeploymentStrategy+    updateDeploymentStrategy_deploymentDurationInMinutes,+    updateDeploymentStrategy_description,+    updateDeploymentStrategy_finalBakeTimeInMinutes,+    updateDeploymentStrategy_growthFactor,+    updateDeploymentStrategy_growthType,+    updateDeploymentStrategy_deploymentStrategyId,+    deploymentStrategy_deploymentDurationInMinutes,+    deploymentStrategy_description,+    deploymentStrategy_finalBakeTimeInMinutes,+    deploymentStrategy_growthFactor,+    deploymentStrategy_growthType,+    deploymentStrategy_id,+    deploymentStrategy_name,+    deploymentStrategy_replicateTo,++    -- ** UpdateEnvironment+    updateEnvironment_description,+    updateEnvironment_monitors,+    updateEnvironment_name,+    updateEnvironment_applicationId,+    updateEnvironment_environmentId,+    environment_applicationId,+    environment_description,+    environment_id,+    environment_monitors,+    environment_name,+    environment_state,++    -- ** UpdateExtension+    updateExtension_actions,+    updateExtension_description,+    updateExtension_parameters,+    updateExtension_versionNumber,+    updateExtension_extensionIdentifier,+    extension_actions,+    extension_arn,+    extension_description,+    extension_id,+    extension_name,+    extension_parameters,+    extension_versionNumber,++    -- ** UpdateExtensionAssociation+    updateExtensionAssociation_parameters,+    updateExtensionAssociation_extensionAssociationId,+    extensionAssociation_arn,+    extensionAssociation_extensionArn,+    extensionAssociation_extensionVersionNumber,+    extensionAssociation_id,+    extensionAssociation_parameters,+    extensionAssociation_resourceArn,++    -- ** ValidateConfiguration+    validateConfiguration_applicationId,+    validateConfiguration_configurationProfileId,+    validateConfiguration_configurationVersion,++    -- * Types++    -- ** Action+    action_description,+    action_name,+    action_roleArn,+    action_uri,++    -- ** ActionInvocation+    actionInvocation_actionName,+    actionInvocation_errorCode,+    actionInvocation_errorMessage,+    actionInvocation_extensionIdentifier,+    actionInvocation_invocationId,+    actionInvocation_roleArn,+    actionInvocation_uri,++    -- ** Application+    application_description,+    application_id,+    application_name,++    -- ** AppliedExtension+    appliedExtension_extensionAssociationId,+    appliedExtension_extensionId,+    appliedExtension_parameters,+    appliedExtension_versionNumber,++    -- ** ConfigurationProfile+    configurationProfile_applicationId,+    configurationProfile_description,+    configurationProfile_id,+    configurationProfile_locationUri,+    configurationProfile_name,+    configurationProfile_retrievalRoleArn,+    configurationProfile_type,+    configurationProfile_validators,++    -- ** ConfigurationProfileSummary+    configurationProfileSummary_applicationId,+    configurationProfileSummary_id,+    configurationProfileSummary_locationUri,+    configurationProfileSummary_name,+    configurationProfileSummary_type,+    configurationProfileSummary_validatorTypes,++    -- ** Deployment+    deployment_applicationId,+    deployment_appliedExtensions,+    deployment_completedAt,+    deployment_configurationLocationUri,+    deployment_configurationName,+    deployment_configurationProfileId,+    deployment_configurationVersion,+    deployment_deploymentDurationInMinutes,+    deployment_deploymentNumber,+    deployment_deploymentStrategyId,+    deployment_description,+    deployment_environmentId,+    deployment_eventLog,+    deployment_finalBakeTimeInMinutes,+    deployment_growthFactor,+    deployment_growthType,+    deployment_percentageComplete,+    deployment_startedAt,+    deployment_state,++    -- ** DeploymentEvent+    deploymentEvent_actionInvocations,+    deploymentEvent_description,+    deploymentEvent_eventType,+    deploymentEvent_occurredAt,+    deploymentEvent_triggeredBy,++    -- ** DeploymentStrategy+    deploymentStrategy_deploymentDurationInMinutes,+    deploymentStrategy_description,+    deploymentStrategy_finalBakeTimeInMinutes,+    deploymentStrategy_growthFactor,+    deploymentStrategy_growthType,+    deploymentStrategy_id,+    deploymentStrategy_name,+    deploymentStrategy_replicateTo,++    -- ** DeploymentSummary+    deploymentSummary_completedAt,+    deploymentSummary_configurationName,+    deploymentSummary_configurationVersion,+    deploymentSummary_deploymentDurationInMinutes,+    deploymentSummary_deploymentNumber,+    deploymentSummary_finalBakeTimeInMinutes,+    deploymentSummary_growthFactor,+    deploymentSummary_growthType,+    deploymentSummary_percentageComplete,+    deploymentSummary_startedAt,+    deploymentSummary_state,++    -- ** Environment+    environment_applicationId,+    environment_description,+    environment_id,+    environment_monitors,+    environment_name,+    environment_state,++    -- ** Extension+    extension_actions,+    extension_arn,+    extension_description,+    extension_id,+    extension_name,+    extension_parameters,+    extension_versionNumber,++    -- ** ExtensionAssociation+    extensionAssociation_arn,+    extensionAssociation_extensionArn,+    extensionAssociation_extensionVersionNumber,+    extensionAssociation_id,+    extensionAssociation_parameters,+    extensionAssociation_resourceArn,++    -- ** ExtensionAssociationSummary+    extensionAssociationSummary_extensionArn,+    extensionAssociationSummary_id,+    extensionAssociationSummary_resourceArn,++    -- ** ExtensionSummary+    extensionSummary_arn,+    extensionSummary_description,+    extensionSummary_id,+    extensionSummary_name,+    extensionSummary_versionNumber,++    -- ** HostedConfigurationVersion+    hostedConfigurationVersion_applicationId,+    hostedConfigurationVersion_configurationProfileId,+    hostedConfigurationVersion_content,+    hostedConfigurationVersion_contentType,+    hostedConfigurationVersion_description,+    hostedConfigurationVersion_versionNumber,++    -- ** HostedConfigurationVersionSummary+    hostedConfigurationVersionSummary_applicationId,+    hostedConfigurationVersionSummary_configurationProfileId,+    hostedConfigurationVersionSummary_contentType,+    hostedConfigurationVersionSummary_description,+    hostedConfigurationVersionSummary_versionNumber,++    -- ** Monitor+    monitor_alarmRoleArn,+    monitor_alarmArn,++    -- ** Parameter+    parameter_description,+    parameter_required,++    -- ** Validator+    validator_type,+    validator_content,+  )+where++import Amazonka.AppConfig.CreateApplication+import Amazonka.AppConfig.CreateConfigurationProfile+import Amazonka.AppConfig.CreateDeploymentStrategy+import Amazonka.AppConfig.CreateEnvironment+import Amazonka.AppConfig.CreateExtension+import Amazonka.AppConfig.CreateExtensionAssociation+import Amazonka.AppConfig.CreateHostedConfigurationVersion+import Amazonka.AppConfig.DeleteApplication+import Amazonka.AppConfig.DeleteConfigurationProfile+import Amazonka.AppConfig.DeleteDeploymentStrategy+import Amazonka.AppConfig.DeleteEnvironment+import Amazonka.AppConfig.DeleteExtension+import Amazonka.AppConfig.DeleteExtensionAssociation+import Amazonka.AppConfig.DeleteHostedConfigurationVersion+import Amazonka.AppConfig.GetApplication+import Amazonka.AppConfig.GetConfigurationProfile+import Amazonka.AppConfig.GetDeployment+import Amazonka.AppConfig.GetDeploymentStrategy+import Amazonka.AppConfig.GetEnvironment+import Amazonka.AppConfig.GetExtension+import Amazonka.AppConfig.GetExtensionAssociation+import Amazonka.AppConfig.GetHostedConfigurationVersion+import Amazonka.AppConfig.ListApplications+import Amazonka.AppConfig.ListConfigurationProfiles+import Amazonka.AppConfig.ListDeploymentStrategies+import Amazonka.AppConfig.ListDeployments+import Amazonka.AppConfig.ListEnvironments+import Amazonka.AppConfig.ListExtensionAssociations+import Amazonka.AppConfig.ListExtensions+import Amazonka.AppConfig.ListHostedConfigurationVersions+import Amazonka.AppConfig.ListTagsForResource+import Amazonka.AppConfig.StartDeployment+import Amazonka.AppConfig.StopDeployment+import Amazonka.AppConfig.TagResource+import Amazonka.AppConfig.Types.Action+import Amazonka.AppConfig.Types.ActionInvocation+import Amazonka.AppConfig.Types.Application+import Amazonka.AppConfig.Types.AppliedExtension+import Amazonka.AppConfig.Types.ConfigurationProfile+import Amazonka.AppConfig.Types.ConfigurationProfileSummary+import Amazonka.AppConfig.Types.Deployment+import Amazonka.AppConfig.Types.DeploymentEvent+import Amazonka.AppConfig.Types.DeploymentStrategy+import Amazonka.AppConfig.Types.DeploymentSummary+import Amazonka.AppConfig.Types.Environment+import Amazonka.AppConfig.Types.Extension+import Amazonka.AppConfig.Types.ExtensionAssociation+import Amazonka.AppConfig.Types.ExtensionAssociationSummary+import Amazonka.AppConfig.Types.ExtensionSummary+import Amazonka.AppConfig.Types.HostedConfigurationVersion+import Amazonka.AppConfig.Types.HostedConfigurationVersionSummary+import Amazonka.AppConfig.Types.Monitor+import Amazonka.AppConfig.Types.Parameter+import Amazonka.AppConfig.Types.Validator+import Amazonka.AppConfig.UntagResource+import Amazonka.AppConfig.UpdateApplication+import Amazonka.AppConfig.UpdateConfigurationProfile+import Amazonka.AppConfig.UpdateDeploymentStrategy+import Amazonka.AppConfig.UpdateEnvironment+import Amazonka.AppConfig.UpdateExtension+import Amazonka.AppConfig.UpdateExtensionAssociation+import Amazonka.AppConfig.ValidateConfiguration
+ gen/Amazonka/AppConfig/ListApplications.hs view
@@ -0,0 +1,207 @@+{-# 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.AppConfig.ListApplications+-- 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 all applications in your Amazon Web Services account.+module Amazonka.AppConfig.ListApplications+  ( -- * Creating a Request+    ListApplications (..),+    newListApplications,++    -- * Request Lenses+    listApplications_maxResults,+    listApplications_nextToken,++    -- * Destructuring the Response+    ListApplicationsResponse (..),+    newListApplicationsResponse,++    -- * Response Lenses+    listApplicationsResponse_items,+    listApplicationsResponse_nextToken,+    listApplicationsResponse_httpStatus,+  )+where++import Amazonka.AppConfig.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:/ 'newListApplications' smart constructor.+data ListApplications = ListApplications'+  { -- | The maximum number of items to return for this call. The call also+    -- returns a token that you can specify in a subsequent call to get the+    -- next set of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token to start the list. Next token is a pagination token generated by+    -- AppConfig to describe what page the previous List call ended on. For the+    -- first List request, the nextToken should not be set. On subsequent+    -- calls, the nextToken parameter should be set to the previous responses+    -- nextToken value. Use this token to get the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListApplications' 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:+--+-- 'maxResults', 'listApplications_maxResults' - The maximum number of items to return for this call. The call also+-- returns a token that you can specify in a subsequent call to get the+-- next set of results.+--+-- 'nextToken', 'listApplications_nextToken' - A token to start the list. Next token is a pagination token generated by+-- AppConfig to describe what page the previous List call ended on. For the+-- first List request, the nextToken should not be set. On subsequent+-- calls, the nextToken parameter should be set to the previous responses+-- nextToken value. Use this token to get the next set of results.+newListApplications ::+  ListApplications+newListApplications =+  ListApplications'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of items to return for this call. The call also+-- returns a token that you can specify in a subsequent call to get the+-- next set of results.+listApplications_maxResults :: Lens.Lens' ListApplications (Prelude.Maybe Prelude.Natural)+listApplications_maxResults = Lens.lens (\ListApplications' {maxResults} -> maxResults) (\s@ListApplications' {} a -> s {maxResults = a} :: ListApplications)++-- | A token to start the list. Next token is a pagination token generated by+-- AppConfig to describe what page the previous List call ended on. For the+-- first List request, the nextToken should not be set. On subsequent+-- calls, the nextToken parameter should be set to the previous responses+-- nextToken value. Use this token to get the next set of results.+listApplications_nextToken :: Lens.Lens' ListApplications (Prelude.Maybe Prelude.Text)+listApplications_nextToken = Lens.lens (\ListApplications' {nextToken} -> nextToken) (\s@ListApplications' {} a -> s {nextToken = a} :: ListApplications)++instance Core.AWSRequest ListApplications where+  type+    AWSResponse ListApplications =+      ListApplicationsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListApplicationsResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListApplications where+  hashWithSalt _salt ListApplications' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListApplications where+  rnf ListApplications' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListApplications where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListApplications where+  toPath = Prelude.const "/applications"++instance Data.ToQuery ListApplications where+  toQuery ListApplications' {..} =+    Prelude.mconcat+      [ "max_results" Data.=: maxResults,+        "next_token" Data.=: nextToken+      ]++-- | /See:/ 'newListApplicationsResponse' smart constructor.+data ListApplicationsResponse = ListApplicationsResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [Application],+    -- | The token for the next set of items to return. Use this token to get the+    -- next set of 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 'ListApplicationsResponse' 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:+--+-- 'items', 'listApplicationsResponse_items' - The elements from this collection.+--+-- 'nextToken', 'listApplicationsResponse_nextToken' - The token for the next set of items to return. Use this token to get the+-- next set of results.+--+-- 'httpStatus', 'listApplicationsResponse_httpStatus' - The response's http status code.+newListApplicationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListApplicationsResponse+newListApplicationsResponse pHttpStatus_ =+  ListApplicationsResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+listApplicationsResponse_items :: Lens.Lens' ListApplicationsResponse (Prelude.Maybe [Application])+listApplicationsResponse_items = Lens.lens (\ListApplicationsResponse' {items} -> items) (\s@ListApplicationsResponse' {} a -> s {items = a} :: ListApplicationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of items to return. Use this token to get the+-- next set of results.+listApplicationsResponse_nextToken :: Lens.Lens' ListApplicationsResponse (Prelude.Maybe Prelude.Text)+listApplicationsResponse_nextToken = Lens.lens (\ListApplicationsResponse' {nextToken} -> nextToken) (\s@ListApplicationsResponse' {} a -> s {nextToken = a} :: ListApplicationsResponse)++-- | The response's http status code.+listApplicationsResponse_httpStatus :: Lens.Lens' ListApplicationsResponse Prelude.Int+listApplicationsResponse_httpStatus = Lens.lens (\ListApplicationsResponse' {httpStatus} -> httpStatus) (\s@ListApplicationsResponse' {} a -> s {httpStatus = a} :: ListApplicationsResponse)++instance Prelude.NFData ListApplicationsResponse where+  rnf ListApplicationsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AppConfig/ListConfigurationProfiles.hs view
@@ -0,0 +1,241 @@+{-# 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.AppConfig.ListConfigurationProfiles+-- 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 configuration profiles for an application.+module Amazonka.AppConfig.ListConfigurationProfiles+  ( -- * Creating a Request+    ListConfigurationProfiles (..),+    newListConfigurationProfiles,++    -- * Request Lenses+    listConfigurationProfiles_maxResults,+    listConfigurationProfiles_nextToken,+    listConfigurationProfiles_type,+    listConfigurationProfiles_applicationId,++    -- * Destructuring the Response+    ListConfigurationProfilesResponse (..),+    newListConfigurationProfilesResponse,++    -- * Response Lenses+    listConfigurationProfilesResponse_items,+    listConfigurationProfilesResponse_nextToken,+    listConfigurationProfilesResponse_httpStatus,+  )+where++import Amazonka.AppConfig.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:/ 'newListConfigurationProfiles' smart constructor.+data ListConfigurationProfiles = ListConfigurationProfiles'+  { -- | The maximum number of items to return for this call. The call also+    -- returns a token that you can specify in a subsequent call to get the+    -- next set of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token to start the list. Use this token to get the next set of+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A filter based on the type of configurations that the configuration+    -- profile contains. A configuration can be a feature flag or a freeform+    -- configuration.+    type' :: Prelude.Maybe Prelude.Text,+    -- | The application ID.+    applicationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListConfigurationProfiles' 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:+--+-- 'maxResults', 'listConfigurationProfiles_maxResults' - The maximum number of items to return for this call. The call also+-- returns a token that you can specify in a subsequent call to get the+-- next set of results.+--+-- 'nextToken', 'listConfigurationProfiles_nextToken' - A token to start the list. Use this token to get the next set of+-- results.+--+-- 'type'', 'listConfigurationProfiles_type' - A filter based on the type of configurations that the configuration+-- profile contains. A configuration can be a feature flag or a freeform+-- configuration.+--+-- 'applicationId', 'listConfigurationProfiles_applicationId' - The application ID.+newListConfigurationProfiles ::+  -- | 'applicationId'+  Prelude.Text ->+  ListConfigurationProfiles+newListConfigurationProfiles pApplicationId_ =+  ListConfigurationProfiles'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      type' = Prelude.Nothing,+      applicationId = pApplicationId_+    }++-- | The maximum number of items to return for this call. The call also+-- returns a token that you can specify in a subsequent call to get the+-- next set of results.+listConfigurationProfiles_maxResults :: Lens.Lens' ListConfigurationProfiles (Prelude.Maybe Prelude.Natural)+listConfigurationProfiles_maxResults = Lens.lens (\ListConfigurationProfiles' {maxResults} -> maxResults) (\s@ListConfigurationProfiles' {} a -> s {maxResults = a} :: ListConfigurationProfiles)++-- | A token to start the list. Use this token to get the next set of+-- results.+listConfigurationProfiles_nextToken :: Lens.Lens' ListConfigurationProfiles (Prelude.Maybe Prelude.Text)+listConfigurationProfiles_nextToken = Lens.lens (\ListConfigurationProfiles' {nextToken} -> nextToken) (\s@ListConfigurationProfiles' {} a -> s {nextToken = a} :: ListConfigurationProfiles)++-- | A filter based on the type of configurations that the configuration+-- profile contains. A configuration can be a feature flag or a freeform+-- configuration.+listConfigurationProfiles_type :: Lens.Lens' ListConfigurationProfiles (Prelude.Maybe Prelude.Text)+listConfigurationProfiles_type = Lens.lens (\ListConfigurationProfiles' {type'} -> type') (\s@ListConfigurationProfiles' {} a -> s {type' = a} :: ListConfigurationProfiles)++-- | The application ID.+listConfigurationProfiles_applicationId :: Lens.Lens' ListConfigurationProfiles Prelude.Text+listConfigurationProfiles_applicationId = Lens.lens (\ListConfigurationProfiles' {applicationId} -> applicationId) (\s@ListConfigurationProfiles' {} a -> s {applicationId = a} :: ListConfigurationProfiles)++instance Core.AWSRequest ListConfigurationProfiles where+  type+    AWSResponse ListConfigurationProfiles =+      ListConfigurationProfilesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListConfigurationProfilesResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListConfigurationProfiles where+  hashWithSalt _salt ListConfigurationProfiles' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` applicationId++instance Prelude.NFData ListConfigurationProfiles where+  rnf ListConfigurationProfiles' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf applicationId++instance Data.ToHeaders ListConfigurationProfiles where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListConfigurationProfiles where+  toPath ListConfigurationProfiles' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/configurationprofiles"+      ]++instance Data.ToQuery ListConfigurationProfiles where+  toQuery ListConfigurationProfiles' {..} =+    Prelude.mconcat+      [ "max_results" Data.=: maxResults,+        "next_token" Data.=: nextToken,+        "type" Data.=: type'+      ]++-- | /See:/ 'newListConfigurationProfilesResponse' smart constructor.+data ListConfigurationProfilesResponse = ListConfigurationProfilesResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [ConfigurationProfileSummary],+    -- | The token for the next set of items to return. Use this token to get the+    -- next set of 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 'ListConfigurationProfilesResponse' 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:+--+-- 'items', 'listConfigurationProfilesResponse_items' - The elements from this collection.+--+-- 'nextToken', 'listConfigurationProfilesResponse_nextToken' - The token for the next set of items to return. Use this token to get the+-- next set of results.+--+-- 'httpStatus', 'listConfigurationProfilesResponse_httpStatus' - The response's http status code.+newListConfigurationProfilesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListConfigurationProfilesResponse+newListConfigurationProfilesResponse pHttpStatus_ =+  ListConfigurationProfilesResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+listConfigurationProfilesResponse_items :: Lens.Lens' ListConfigurationProfilesResponse (Prelude.Maybe [ConfigurationProfileSummary])+listConfigurationProfilesResponse_items = Lens.lens (\ListConfigurationProfilesResponse' {items} -> items) (\s@ListConfigurationProfilesResponse' {} a -> s {items = a} :: ListConfigurationProfilesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of items to return. Use this token to get the+-- next set of results.+listConfigurationProfilesResponse_nextToken :: Lens.Lens' ListConfigurationProfilesResponse (Prelude.Maybe Prelude.Text)+listConfigurationProfilesResponse_nextToken = Lens.lens (\ListConfigurationProfilesResponse' {nextToken} -> nextToken) (\s@ListConfigurationProfilesResponse' {} a -> s {nextToken = a} :: ListConfigurationProfilesResponse)++-- | The response's http status code.+listConfigurationProfilesResponse_httpStatus :: Lens.Lens' ListConfigurationProfilesResponse Prelude.Int+listConfigurationProfilesResponse_httpStatus = Lens.lens (\ListConfigurationProfilesResponse' {httpStatus} -> httpStatus) (\s@ListConfigurationProfilesResponse' {} a -> s {httpStatus = a} :: ListConfigurationProfilesResponse)++instance+  Prelude.NFData+    ListConfigurationProfilesResponse+  where+  rnf ListConfigurationProfilesResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AppConfig/ListDeploymentStrategies.hs view
@@ -0,0 +1,203 @@+{-# 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.AppConfig.ListDeploymentStrategies+-- 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 deployment strategies.+module Amazonka.AppConfig.ListDeploymentStrategies+  ( -- * Creating a Request+    ListDeploymentStrategies (..),+    newListDeploymentStrategies,++    -- * Request Lenses+    listDeploymentStrategies_maxResults,+    listDeploymentStrategies_nextToken,++    -- * Destructuring the Response+    ListDeploymentStrategiesResponse (..),+    newListDeploymentStrategiesResponse,++    -- * Response Lenses+    listDeploymentStrategiesResponse_items,+    listDeploymentStrategiesResponse_nextToken,+    listDeploymentStrategiesResponse_httpStatus,+  )+where++import Amazonka.AppConfig.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:/ 'newListDeploymentStrategies' smart constructor.+data ListDeploymentStrategies = ListDeploymentStrategies'+  { -- | The maximum number of items to return for this call. The call also+    -- returns a token that you can specify in a subsequent call to get the+    -- next set of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token to start the list. Use this token to get the next set of+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDeploymentStrategies' 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:+--+-- 'maxResults', 'listDeploymentStrategies_maxResults' - The maximum number of items to return for this call. The call also+-- returns a token that you can specify in a subsequent call to get the+-- next set of results.+--+-- 'nextToken', 'listDeploymentStrategies_nextToken' - A token to start the list. Use this token to get the next set of+-- results.+newListDeploymentStrategies ::+  ListDeploymentStrategies+newListDeploymentStrategies =+  ListDeploymentStrategies'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of items to return for this call. The call also+-- returns a token that you can specify in a subsequent call to get the+-- next set of results.+listDeploymentStrategies_maxResults :: Lens.Lens' ListDeploymentStrategies (Prelude.Maybe Prelude.Natural)+listDeploymentStrategies_maxResults = Lens.lens (\ListDeploymentStrategies' {maxResults} -> maxResults) (\s@ListDeploymentStrategies' {} a -> s {maxResults = a} :: ListDeploymentStrategies)++-- | A token to start the list. Use this token to get the next set of+-- results.+listDeploymentStrategies_nextToken :: Lens.Lens' ListDeploymentStrategies (Prelude.Maybe Prelude.Text)+listDeploymentStrategies_nextToken = Lens.lens (\ListDeploymentStrategies' {nextToken} -> nextToken) (\s@ListDeploymentStrategies' {} a -> s {nextToken = a} :: ListDeploymentStrategies)++instance Core.AWSRequest ListDeploymentStrategies where+  type+    AWSResponse ListDeploymentStrategies =+      ListDeploymentStrategiesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDeploymentStrategiesResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDeploymentStrategies where+  hashWithSalt _salt ListDeploymentStrategies' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListDeploymentStrategies where+  rnf ListDeploymentStrategies' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListDeploymentStrategies where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListDeploymentStrategies where+  toPath = Prelude.const "/deploymentstrategies"++instance Data.ToQuery ListDeploymentStrategies where+  toQuery ListDeploymentStrategies' {..} =+    Prelude.mconcat+      [ "max_results" Data.=: maxResults,+        "next_token" Data.=: nextToken+      ]++-- | /See:/ 'newListDeploymentStrategiesResponse' smart constructor.+data ListDeploymentStrategiesResponse = ListDeploymentStrategiesResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [DeploymentStrategy],+    -- | The token for the next set of items to return. Use this token to get the+    -- next set of 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 'ListDeploymentStrategiesResponse' 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:+--+-- 'items', 'listDeploymentStrategiesResponse_items' - The elements from this collection.+--+-- 'nextToken', 'listDeploymentStrategiesResponse_nextToken' - The token for the next set of items to return. Use this token to get the+-- next set of results.+--+-- 'httpStatus', 'listDeploymentStrategiesResponse_httpStatus' - The response's http status code.+newListDeploymentStrategiesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDeploymentStrategiesResponse+newListDeploymentStrategiesResponse pHttpStatus_ =+  ListDeploymentStrategiesResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+listDeploymentStrategiesResponse_items :: Lens.Lens' ListDeploymentStrategiesResponse (Prelude.Maybe [DeploymentStrategy])+listDeploymentStrategiesResponse_items = Lens.lens (\ListDeploymentStrategiesResponse' {items} -> items) (\s@ListDeploymentStrategiesResponse' {} a -> s {items = a} :: ListDeploymentStrategiesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of items to return. Use this token to get the+-- next set of results.+listDeploymentStrategiesResponse_nextToken :: Lens.Lens' ListDeploymentStrategiesResponse (Prelude.Maybe Prelude.Text)+listDeploymentStrategiesResponse_nextToken = Lens.lens (\ListDeploymentStrategiesResponse' {nextToken} -> nextToken) (\s@ListDeploymentStrategiesResponse' {} a -> s {nextToken = a} :: ListDeploymentStrategiesResponse)++-- | The response's http status code.+listDeploymentStrategiesResponse_httpStatus :: Lens.Lens' ListDeploymentStrategiesResponse Prelude.Int+listDeploymentStrategiesResponse_httpStatus = Lens.lens (\ListDeploymentStrategiesResponse' {httpStatus} -> httpStatus) (\s@ListDeploymentStrategiesResponse' {} a -> s {httpStatus = a} :: ListDeploymentStrategiesResponse)++instance+  Prelude.NFData+    ListDeploymentStrategiesResponse+  where+  rnf ListDeploymentStrategiesResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AppConfig/ListDeployments.hs view
@@ -0,0 +1,240 @@+{-# 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.AppConfig.ListDeployments+-- 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 deployments for an environment in descending deployment number+-- order.+module Amazonka.AppConfig.ListDeployments+  ( -- * Creating a Request+    ListDeployments (..),+    newListDeployments,++    -- * Request Lenses+    listDeployments_maxResults,+    listDeployments_nextToken,+    listDeployments_applicationId,+    listDeployments_environmentId,++    -- * Destructuring the Response+    ListDeploymentsResponse (..),+    newListDeploymentsResponse,++    -- * Response Lenses+    listDeploymentsResponse_items,+    listDeploymentsResponse_nextToken,+    listDeploymentsResponse_httpStatus,+  )+where++import Amazonka.AppConfig.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:/ 'newListDeployments' smart constructor.+data ListDeployments = ListDeployments'+  { -- | The maximum number of items that may be returned for this call. If there+    -- are items that have not yet been returned, the response will include a+    -- non-null @NextToken@ that you can provide in a subsequent call to get+    -- the next set of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token returned by a prior call to this operation indicating the next+    -- set of results to be returned. If not specified, the operation will+    -- return the first set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The application ID.+    applicationId :: Prelude.Text,+    -- | The environment ID.+    environmentId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDeployments' 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:+--+-- 'maxResults', 'listDeployments_maxResults' - The maximum number of items that may be returned for this call. If there+-- are items that have not yet been returned, the response will include a+-- non-null @NextToken@ that you can provide in a subsequent call to get+-- the next set of results.+--+-- 'nextToken', 'listDeployments_nextToken' - The token returned by a prior call to this operation indicating the next+-- set of results to be returned. If not specified, the operation will+-- return the first set of results.+--+-- 'applicationId', 'listDeployments_applicationId' - The application ID.+--+-- 'environmentId', 'listDeployments_environmentId' - The environment ID.+newListDeployments ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'environmentId'+  Prelude.Text ->+  ListDeployments+newListDeployments pApplicationId_ pEnvironmentId_ =+  ListDeployments'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      applicationId = pApplicationId_,+      environmentId = pEnvironmentId_+    }++-- | The maximum number of items that may be returned for this call. If there+-- are items that have not yet been returned, the response will include a+-- non-null @NextToken@ that you can provide in a subsequent call to get+-- the next set of results.+listDeployments_maxResults :: Lens.Lens' ListDeployments (Prelude.Maybe Prelude.Natural)+listDeployments_maxResults = Lens.lens (\ListDeployments' {maxResults} -> maxResults) (\s@ListDeployments' {} a -> s {maxResults = a} :: ListDeployments)++-- | The token returned by a prior call to this operation indicating the next+-- set of results to be returned. If not specified, the operation will+-- return the first set of results.+listDeployments_nextToken :: Lens.Lens' ListDeployments (Prelude.Maybe Prelude.Text)+listDeployments_nextToken = Lens.lens (\ListDeployments' {nextToken} -> nextToken) (\s@ListDeployments' {} a -> s {nextToken = a} :: ListDeployments)++-- | The application ID.+listDeployments_applicationId :: Lens.Lens' ListDeployments Prelude.Text+listDeployments_applicationId = Lens.lens (\ListDeployments' {applicationId} -> applicationId) (\s@ListDeployments' {} a -> s {applicationId = a} :: ListDeployments)++-- | The environment ID.+listDeployments_environmentId :: Lens.Lens' ListDeployments Prelude.Text+listDeployments_environmentId = Lens.lens (\ListDeployments' {environmentId} -> environmentId) (\s@ListDeployments' {} a -> s {environmentId = a} :: ListDeployments)++instance Core.AWSRequest ListDeployments where+  type+    AWSResponse ListDeployments =+      ListDeploymentsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDeploymentsResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDeployments where+  hashWithSalt _salt ListDeployments' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` environmentId++instance Prelude.NFData ListDeployments where+  rnf ListDeployments' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf environmentId++instance Data.ToHeaders ListDeployments where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListDeployments where+  toPath ListDeployments' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/environments/",+        Data.toBS environmentId,+        "/deployments"+      ]++instance Data.ToQuery ListDeployments where+  toQuery ListDeployments' {..} =+    Prelude.mconcat+      [ "max_results" Data.=: maxResults,+        "next_token" Data.=: nextToken+      ]++-- | /See:/ 'newListDeploymentsResponse' smart constructor.+data ListDeploymentsResponse = ListDeploymentsResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [DeploymentSummary],+    -- | The token for the next set of items to return. Use this token to get the+    -- next set of 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 'ListDeploymentsResponse' 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:+--+-- 'items', 'listDeploymentsResponse_items' - The elements from this collection.+--+-- 'nextToken', 'listDeploymentsResponse_nextToken' - The token for the next set of items to return. Use this token to get the+-- next set of results.+--+-- 'httpStatus', 'listDeploymentsResponse_httpStatus' - The response's http status code.+newListDeploymentsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDeploymentsResponse+newListDeploymentsResponse pHttpStatus_ =+  ListDeploymentsResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+listDeploymentsResponse_items :: Lens.Lens' ListDeploymentsResponse (Prelude.Maybe [DeploymentSummary])+listDeploymentsResponse_items = Lens.lens (\ListDeploymentsResponse' {items} -> items) (\s@ListDeploymentsResponse' {} a -> s {items = a} :: ListDeploymentsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of items to return. Use this token to get the+-- next set of results.+listDeploymentsResponse_nextToken :: Lens.Lens' ListDeploymentsResponse (Prelude.Maybe Prelude.Text)+listDeploymentsResponse_nextToken = Lens.lens (\ListDeploymentsResponse' {nextToken} -> nextToken) (\s@ListDeploymentsResponse' {} a -> s {nextToken = a} :: ListDeploymentsResponse)++-- | The response's http status code.+listDeploymentsResponse_httpStatus :: Lens.Lens' ListDeploymentsResponse Prelude.Int+listDeploymentsResponse_httpStatus = Lens.lens (\ListDeploymentsResponse' {httpStatus} -> httpStatus) (\s@ListDeploymentsResponse' {} a -> s {httpStatus = a} :: ListDeploymentsResponse)++instance Prelude.NFData ListDeploymentsResponse where+  rnf ListDeploymentsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AppConfig/ListEnvironments.hs view
@@ -0,0 +1,217 @@+{-# 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.AppConfig.ListEnvironments+-- 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 environments for an application.+module Amazonka.AppConfig.ListEnvironments+  ( -- * Creating a Request+    ListEnvironments (..),+    newListEnvironments,++    -- * Request Lenses+    listEnvironments_maxResults,+    listEnvironments_nextToken,+    listEnvironments_applicationId,++    -- * Destructuring the Response+    ListEnvironmentsResponse (..),+    newListEnvironmentsResponse,++    -- * Response Lenses+    listEnvironmentsResponse_items,+    listEnvironmentsResponse_nextToken,+    listEnvironmentsResponse_httpStatus,+  )+where++import Amazonka.AppConfig.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:/ 'newListEnvironments' smart constructor.+data ListEnvironments = ListEnvironments'+  { -- | The maximum number of items to return for this call. The call also+    -- returns a token that you can specify in a subsequent call to get the+    -- next set of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token to start the list. Use this token to get the next set of+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The application ID.+    applicationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEnvironments' 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:+--+-- 'maxResults', 'listEnvironments_maxResults' - The maximum number of items to return for this call. The call also+-- returns a token that you can specify in a subsequent call to get the+-- next set of results.+--+-- 'nextToken', 'listEnvironments_nextToken' - A token to start the list. Use this token to get the next set of+-- results.+--+-- 'applicationId', 'listEnvironments_applicationId' - The application ID.+newListEnvironments ::+  -- | 'applicationId'+  Prelude.Text ->+  ListEnvironments+newListEnvironments pApplicationId_ =+  ListEnvironments'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      applicationId = pApplicationId_+    }++-- | The maximum number of items to return for this call. The call also+-- returns a token that you can specify in a subsequent call to get the+-- next set of results.+listEnvironments_maxResults :: Lens.Lens' ListEnvironments (Prelude.Maybe Prelude.Natural)+listEnvironments_maxResults = Lens.lens (\ListEnvironments' {maxResults} -> maxResults) (\s@ListEnvironments' {} a -> s {maxResults = a} :: ListEnvironments)++-- | A token to start the list. Use this token to get the next set of+-- results.+listEnvironments_nextToken :: Lens.Lens' ListEnvironments (Prelude.Maybe Prelude.Text)+listEnvironments_nextToken = Lens.lens (\ListEnvironments' {nextToken} -> nextToken) (\s@ListEnvironments' {} a -> s {nextToken = a} :: ListEnvironments)++-- | The application ID.+listEnvironments_applicationId :: Lens.Lens' ListEnvironments Prelude.Text+listEnvironments_applicationId = Lens.lens (\ListEnvironments' {applicationId} -> applicationId) (\s@ListEnvironments' {} a -> s {applicationId = a} :: ListEnvironments)++instance Core.AWSRequest ListEnvironments where+  type+    AWSResponse ListEnvironments =+      ListEnvironmentsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListEnvironmentsResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListEnvironments where+  hashWithSalt _salt ListEnvironments' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` applicationId++instance Prelude.NFData ListEnvironments where+  rnf ListEnvironments' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf applicationId++instance Data.ToHeaders ListEnvironments where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListEnvironments where+  toPath ListEnvironments' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/environments"+      ]++instance Data.ToQuery ListEnvironments where+  toQuery ListEnvironments' {..} =+    Prelude.mconcat+      [ "max_results" Data.=: maxResults,+        "next_token" Data.=: nextToken+      ]++-- | /See:/ 'newListEnvironmentsResponse' smart constructor.+data ListEnvironmentsResponse = ListEnvironmentsResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [Environment],+    -- | The token for the next set of items to return. Use this token to get the+    -- next set of 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 'ListEnvironmentsResponse' 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:+--+-- 'items', 'listEnvironmentsResponse_items' - The elements from this collection.+--+-- 'nextToken', 'listEnvironmentsResponse_nextToken' - The token for the next set of items to return. Use this token to get the+-- next set of results.+--+-- 'httpStatus', 'listEnvironmentsResponse_httpStatus' - The response's http status code.+newListEnvironmentsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListEnvironmentsResponse+newListEnvironmentsResponse pHttpStatus_ =+  ListEnvironmentsResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+listEnvironmentsResponse_items :: Lens.Lens' ListEnvironmentsResponse (Prelude.Maybe [Environment])+listEnvironmentsResponse_items = Lens.lens (\ListEnvironmentsResponse' {items} -> items) (\s@ListEnvironmentsResponse' {} a -> s {items = a} :: ListEnvironmentsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of items to return. Use this token to get the+-- next set of results.+listEnvironmentsResponse_nextToken :: Lens.Lens' ListEnvironmentsResponse (Prelude.Maybe Prelude.Text)+listEnvironmentsResponse_nextToken = Lens.lens (\ListEnvironmentsResponse' {nextToken} -> nextToken) (\s@ListEnvironmentsResponse' {} a -> s {nextToken = a} :: ListEnvironmentsResponse)++-- | The response's http status code.+listEnvironmentsResponse_httpStatus :: Lens.Lens' ListEnvironmentsResponse Prelude.Int+listEnvironmentsResponse_httpStatus = Lens.lens (\ListEnvironmentsResponse' {httpStatus} -> httpStatus) (\s@ListEnvironmentsResponse' {} a -> s {httpStatus = a} :: ListEnvironmentsResponse)++instance Prelude.NFData ListEnvironmentsResponse where+  rnf ListEnvironmentsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AppConfig/ListExtensionAssociations.hs view
@@ -0,0 +1,249 @@+{-# 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.AppConfig.ListExtensionAssociations+-- 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 all AppConfig extension associations in the account. For more+-- information about extensions and associations, see+-- <https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html Working with AppConfig extensions>+-- in the /AppConfig User Guide/.+module Amazonka.AppConfig.ListExtensionAssociations+  ( -- * Creating a Request+    ListExtensionAssociations (..),+    newListExtensionAssociations,++    -- * Request Lenses+    listExtensionAssociations_extensionIdentifier,+    listExtensionAssociations_extensionVersionNumber,+    listExtensionAssociations_maxResults,+    listExtensionAssociations_nextToken,+    listExtensionAssociations_resourceIdentifier,++    -- * Destructuring the Response+    ListExtensionAssociationsResponse (..),+    newListExtensionAssociationsResponse,++    -- * Response Lenses+    listExtensionAssociationsResponse_items,+    listExtensionAssociationsResponse_nextToken,+    listExtensionAssociationsResponse_httpStatus,+  )+where++import Amazonka.AppConfig.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:/ 'newListExtensionAssociations' smart constructor.+data ListExtensionAssociations = ListExtensionAssociations'+  { -- | The name, the ID, or the Amazon Resource Name (ARN) of the extension.+    extensionIdentifier :: Prelude.Maybe Prelude.Text,+    -- | The version number for the extension defined in the association.+    extensionVersionNumber :: Prelude.Maybe Prelude.Int,+    -- | The maximum number of items to return for this call. The call also+    -- returns a token that you can specify in a subsequent call to get the+    -- next set of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token to start the list. Use this token to get the next set of results+    -- or pass null to get the first set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ARN of an application, configuration profile, or environment.+    resourceIdentifier :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListExtensionAssociations' 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:+--+-- 'extensionIdentifier', 'listExtensionAssociations_extensionIdentifier' - The name, the ID, or the Amazon Resource Name (ARN) of the extension.+--+-- 'extensionVersionNumber', 'listExtensionAssociations_extensionVersionNumber' - The version number for the extension defined in the association.+--+-- 'maxResults', 'listExtensionAssociations_maxResults' - The maximum number of items to return for this call. The call also+-- returns a token that you can specify in a subsequent call to get the+-- next set of results.+--+-- 'nextToken', 'listExtensionAssociations_nextToken' - A token to start the list. Use this token to get the next set of results+-- or pass null to get the first set of results.+--+-- 'resourceIdentifier', 'listExtensionAssociations_resourceIdentifier' - The ARN of an application, configuration profile, or environment.+newListExtensionAssociations ::+  ListExtensionAssociations+newListExtensionAssociations =+  ListExtensionAssociations'+    { extensionIdentifier =+        Prelude.Nothing,+      extensionVersionNumber = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      resourceIdentifier = Prelude.Nothing+    }++-- | The name, the ID, or the Amazon Resource Name (ARN) of the extension.+listExtensionAssociations_extensionIdentifier :: Lens.Lens' ListExtensionAssociations (Prelude.Maybe Prelude.Text)+listExtensionAssociations_extensionIdentifier = Lens.lens (\ListExtensionAssociations' {extensionIdentifier} -> extensionIdentifier) (\s@ListExtensionAssociations' {} a -> s {extensionIdentifier = a} :: ListExtensionAssociations)++-- | The version number for the extension defined in the association.+listExtensionAssociations_extensionVersionNumber :: Lens.Lens' ListExtensionAssociations (Prelude.Maybe Prelude.Int)+listExtensionAssociations_extensionVersionNumber = Lens.lens (\ListExtensionAssociations' {extensionVersionNumber} -> extensionVersionNumber) (\s@ListExtensionAssociations' {} a -> s {extensionVersionNumber = a} :: ListExtensionAssociations)++-- | The maximum number of items to return for this call. The call also+-- returns a token that you can specify in a subsequent call to get the+-- next set of results.+listExtensionAssociations_maxResults :: Lens.Lens' ListExtensionAssociations (Prelude.Maybe Prelude.Natural)+listExtensionAssociations_maxResults = Lens.lens (\ListExtensionAssociations' {maxResults} -> maxResults) (\s@ListExtensionAssociations' {} a -> s {maxResults = a} :: ListExtensionAssociations)++-- | A token to start the list. Use this token to get the next set of results+-- or pass null to get the first set of results.+listExtensionAssociations_nextToken :: Lens.Lens' ListExtensionAssociations (Prelude.Maybe Prelude.Text)+listExtensionAssociations_nextToken = Lens.lens (\ListExtensionAssociations' {nextToken} -> nextToken) (\s@ListExtensionAssociations' {} a -> s {nextToken = a} :: ListExtensionAssociations)++-- | The ARN of an application, configuration profile, or environment.+listExtensionAssociations_resourceIdentifier :: Lens.Lens' ListExtensionAssociations (Prelude.Maybe Prelude.Text)+listExtensionAssociations_resourceIdentifier = Lens.lens (\ListExtensionAssociations' {resourceIdentifier} -> resourceIdentifier) (\s@ListExtensionAssociations' {} a -> s {resourceIdentifier = a} :: ListExtensionAssociations)++instance Core.AWSRequest ListExtensionAssociations where+  type+    AWSResponse ListExtensionAssociations =+      ListExtensionAssociationsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListExtensionAssociationsResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListExtensionAssociations where+  hashWithSalt _salt ListExtensionAssociations' {..} =+    _salt+      `Prelude.hashWithSalt` extensionIdentifier+      `Prelude.hashWithSalt` extensionVersionNumber+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` resourceIdentifier++instance Prelude.NFData ListExtensionAssociations where+  rnf ListExtensionAssociations' {..} =+    Prelude.rnf extensionIdentifier+      `Prelude.seq` Prelude.rnf extensionVersionNumber+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf resourceIdentifier++instance Data.ToHeaders ListExtensionAssociations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListExtensionAssociations where+  toPath = Prelude.const "/extensionassociations"++instance Data.ToQuery ListExtensionAssociations where+  toQuery ListExtensionAssociations' {..} =+    Prelude.mconcat+      [ "extension_identifier" Data.=: extensionIdentifier,+        "extension_version_number"+          Data.=: extensionVersionNumber,+        "max_results" Data.=: maxResults,+        "next_token" Data.=: nextToken,+        "resource_identifier" Data.=: resourceIdentifier+      ]++-- | /See:/ 'newListExtensionAssociationsResponse' smart constructor.+data ListExtensionAssociationsResponse = ListExtensionAssociationsResponse'+  { -- | The list of extension associations. Each item represents an extension+    -- association to an application, environment, or configuration profile.+    items :: Prelude.Maybe [ExtensionAssociationSummary],+    -- | The token for the next set of items to return. Use this token to get the+    -- next set of 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 'ListExtensionAssociationsResponse' 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:+--+-- 'items', 'listExtensionAssociationsResponse_items' - The list of extension associations. Each item represents an extension+-- association to an application, environment, or configuration profile.+--+-- 'nextToken', 'listExtensionAssociationsResponse_nextToken' - The token for the next set of items to return. Use this token to get the+-- next set of results.+--+-- 'httpStatus', 'listExtensionAssociationsResponse_httpStatus' - The response's http status code.+newListExtensionAssociationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListExtensionAssociationsResponse+newListExtensionAssociationsResponse pHttpStatus_ =+  ListExtensionAssociationsResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The list of extension associations. Each item represents an extension+-- association to an application, environment, or configuration profile.+listExtensionAssociationsResponse_items :: Lens.Lens' ListExtensionAssociationsResponse (Prelude.Maybe [ExtensionAssociationSummary])+listExtensionAssociationsResponse_items = Lens.lens (\ListExtensionAssociationsResponse' {items} -> items) (\s@ListExtensionAssociationsResponse' {} a -> s {items = a} :: ListExtensionAssociationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of items to return. Use this token to get the+-- next set of results.+listExtensionAssociationsResponse_nextToken :: Lens.Lens' ListExtensionAssociationsResponse (Prelude.Maybe Prelude.Text)+listExtensionAssociationsResponse_nextToken = Lens.lens (\ListExtensionAssociationsResponse' {nextToken} -> nextToken) (\s@ListExtensionAssociationsResponse' {} a -> s {nextToken = a} :: ListExtensionAssociationsResponse)++-- | The response's http status code.+listExtensionAssociationsResponse_httpStatus :: Lens.Lens' ListExtensionAssociationsResponse Prelude.Int+listExtensionAssociationsResponse_httpStatus = Lens.lens (\ListExtensionAssociationsResponse' {httpStatus} -> httpStatus) (\s@ListExtensionAssociationsResponse' {} a -> s {httpStatus = a} :: ListExtensionAssociationsResponse)++instance+  Prelude.NFData+    ListExtensionAssociationsResponse+  where+  rnf ListExtensionAssociationsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AppConfig/ListExtensions.hs view
@@ -0,0 +1,217 @@+{-# 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.AppConfig.ListExtensions+-- 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 all custom and Amazon Web Services-authored AppConfig extensions+-- in the account. For more information about extensions, see+-- <https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html Working with AppConfig extensions>+-- in the /AppConfig User Guide/.+module Amazonka.AppConfig.ListExtensions+  ( -- * Creating a Request+    ListExtensions (..),+    newListExtensions,++    -- * Request Lenses+    listExtensions_maxResults,+    listExtensions_name,+    listExtensions_nextToken,++    -- * Destructuring the Response+    ListExtensionsResponse (..),+    newListExtensionsResponse,++    -- * Response Lenses+    listExtensionsResponse_items,+    listExtensionsResponse_nextToken,+    listExtensionsResponse_httpStatus,+  )+where++import Amazonka.AppConfig.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:/ 'newListExtensions' smart constructor.+data ListExtensions = ListExtensions'+  { -- | The maximum number of items to return for this call. The call also+    -- returns a token that you can specify in a subsequent call to get the+    -- next set of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The extension name.+    name :: Prelude.Maybe Prelude.Text,+    -- | A token to start the list. Use this token to get the next set of+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListExtensions' 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:+--+-- 'maxResults', 'listExtensions_maxResults' - The maximum number of items to return for this call. The call also+-- returns a token that you can specify in a subsequent call to get the+-- next set of results.+--+-- 'name', 'listExtensions_name' - The extension name.+--+-- 'nextToken', 'listExtensions_nextToken' - A token to start the list. Use this token to get the next set of+-- results.+newListExtensions ::+  ListExtensions+newListExtensions =+  ListExtensions'+    { maxResults = Prelude.Nothing,+      name = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of items to return for this call. The call also+-- returns a token that you can specify in a subsequent call to get the+-- next set of results.+listExtensions_maxResults :: Lens.Lens' ListExtensions (Prelude.Maybe Prelude.Natural)+listExtensions_maxResults = Lens.lens (\ListExtensions' {maxResults} -> maxResults) (\s@ListExtensions' {} a -> s {maxResults = a} :: ListExtensions)++-- | The extension name.+listExtensions_name :: Lens.Lens' ListExtensions (Prelude.Maybe Prelude.Text)+listExtensions_name = Lens.lens (\ListExtensions' {name} -> name) (\s@ListExtensions' {} a -> s {name = a} :: ListExtensions)++-- | A token to start the list. Use this token to get the next set of+-- results.+listExtensions_nextToken :: Lens.Lens' ListExtensions (Prelude.Maybe Prelude.Text)+listExtensions_nextToken = Lens.lens (\ListExtensions' {nextToken} -> nextToken) (\s@ListExtensions' {} a -> s {nextToken = a} :: ListExtensions)++instance Core.AWSRequest ListExtensions where+  type+    AWSResponse ListExtensions =+      ListExtensionsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListExtensionsResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListExtensions where+  hashWithSalt _salt ListExtensions' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListExtensions where+  rnf ListExtensions' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListExtensions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListExtensions where+  toPath = Prelude.const "/extensions"++instance Data.ToQuery ListExtensions where+  toQuery ListExtensions' {..} =+    Prelude.mconcat+      [ "max_results" Data.=: maxResults,+        "name" Data.=: name,+        "next_token" Data.=: nextToken+      ]++-- | /See:/ 'newListExtensionsResponse' smart constructor.+data ListExtensionsResponse = ListExtensionsResponse'+  { -- | The list of available extensions. The list includes Amazon Web+    -- Services-authored and user-created extensions.+    items :: Prelude.Maybe [ExtensionSummary],+    -- | The token for the next set of items to return. Use this token to get the+    -- next set of 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 'ListExtensionsResponse' 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:+--+-- 'items', 'listExtensionsResponse_items' - The list of available extensions. The list includes Amazon Web+-- Services-authored and user-created extensions.+--+-- 'nextToken', 'listExtensionsResponse_nextToken' - The token for the next set of items to return. Use this token to get the+-- next set of results.+--+-- 'httpStatus', 'listExtensionsResponse_httpStatus' - The response's http status code.+newListExtensionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListExtensionsResponse+newListExtensionsResponse pHttpStatus_ =+  ListExtensionsResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The list of available extensions. The list includes Amazon Web+-- Services-authored and user-created extensions.+listExtensionsResponse_items :: Lens.Lens' ListExtensionsResponse (Prelude.Maybe [ExtensionSummary])+listExtensionsResponse_items = Lens.lens (\ListExtensionsResponse' {items} -> items) (\s@ListExtensionsResponse' {} a -> s {items = a} :: ListExtensionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of items to return. Use this token to get the+-- next set of results.+listExtensionsResponse_nextToken :: Lens.Lens' ListExtensionsResponse (Prelude.Maybe Prelude.Text)+listExtensionsResponse_nextToken = Lens.lens (\ListExtensionsResponse' {nextToken} -> nextToken) (\s@ListExtensionsResponse' {} a -> s {nextToken = a} :: ListExtensionsResponse)++-- | The response's http status code.+listExtensionsResponse_httpStatus :: Lens.Lens' ListExtensionsResponse Prelude.Int+listExtensionsResponse_httpStatus = Lens.lens (\ListExtensionsResponse' {httpStatus} -> httpStatus) (\s@ListExtensionsResponse' {} a -> s {httpStatus = a} :: ListExtensionsResponse)++instance Prelude.NFData ListExtensionsResponse where+  rnf ListExtensionsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AppConfig/ListHostedConfigurationVersions.hs view
@@ -0,0 +1,257 @@+{-# 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.AppConfig.ListHostedConfigurationVersions+-- 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 configurations stored in the AppConfig hosted configuration store+-- by version.+module Amazonka.AppConfig.ListHostedConfigurationVersions+  ( -- * Creating a Request+    ListHostedConfigurationVersions (..),+    newListHostedConfigurationVersions,++    -- * Request Lenses+    listHostedConfigurationVersions_maxResults,+    listHostedConfigurationVersions_nextToken,+    listHostedConfigurationVersions_applicationId,+    listHostedConfigurationVersions_configurationProfileId,++    -- * Destructuring the Response+    ListHostedConfigurationVersionsResponse (..),+    newListHostedConfigurationVersionsResponse,++    -- * Response Lenses+    listHostedConfigurationVersionsResponse_items,+    listHostedConfigurationVersionsResponse_nextToken,+    listHostedConfigurationVersionsResponse_httpStatus,+  )+where++import Amazonka.AppConfig.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:/ 'newListHostedConfigurationVersions' smart constructor.+data ListHostedConfigurationVersions = ListHostedConfigurationVersions'+  { -- | The maximum number of items to return for this call. The call also+    -- returns a token that you can specify in a subsequent call to get the+    -- next set of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token to start the list. Use this token to get the next set of+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The application ID.+    applicationId :: Prelude.Text,+    -- | The configuration profile ID.+    configurationProfileId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListHostedConfigurationVersions' 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:+--+-- 'maxResults', 'listHostedConfigurationVersions_maxResults' - The maximum number of items to return for this call. The call also+-- returns a token that you can specify in a subsequent call to get the+-- next set of results.+--+-- 'nextToken', 'listHostedConfigurationVersions_nextToken' - A token to start the list. Use this token to get the next set of+-- results.+--+-- 'applicationId', 'listHostedConfigurationVersions_applicationId' - The application ID.+--+-- 'configurationProfileId', 'listHostedConfigurationVersions_configurationProfileId' - The configuration profile ID.+newListHostedConfigurationVersions ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'configurationProfileId'+  Prelude.Text ->+  ListHostedConfigurationVersions+newListHostedConfigurationVersions+  pApplicationId_+  pConfigurationProfileId_ =+    ListHostedConfigurationVersions'+      { maxResults =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        applicationId = pApplicationId_,+        configurationProfileId =+          pConfigurationProfileId_+      }++-- | The maximum number of items to return for this call. The call also+-- returns a token that you can specify in a subsequent call to get the+-- next set of results.+listHostedConfigurationVersions_maxResults :: Lens.Lens' ListHostedConfigurationVersions (Prelude.Maybe Prelude.Natural)+listHostedConfigurationVersions_maxResults = Lens.lens (\ListHostedConfigurationVersions' {maxResults} -> maxResults) (\s@ListHostedConfigurationVersions' {} a -> s {maxResults = a} :: ListHostedConfigurationVersions)++-- | A token to start the list. Use this token to get the next set of+-- results.+listHostedConfigurationVersions_nextToken :: Lens.Lens' ListHostedConfigurationVersions (Prelude.Maybe Prelude.Text)+listHostedConfigurationVersions_nextToken = Lens.lens (\ListHostedConfigurationVersions' {nextToken} -> nextToken) (\s@ListHostedConfigurationVersions' {} a -> s {nextToken = a} :: ListHostedConfigurationVersions)++-- | The application ID.+listHostedConfigurationVersions_applicationId :: Lens.Lens' ListHostedConfigurationVersions Prelude.Text+listHostedConfigurationVersions_applicationId = Lens.lens (\ListHostedConfigurationVersions' {applicationId} -> applicationId) (\s@ListHostedConfigurationVersions' {} a -> s {applicationId = a} :: ListHostedConfigurationVersions)++-- | The configuration profile ID.+listHostedConfigurationVersions_configurationProfileId :: Lens.Lens' ListHostedConfigurationVersions Prelude.Text+listHostedConfigurationVersions_configurationProfileId = Lens.lens (\ListHostedConfigurationVersions' {configurationProfileId} -> configurationProfileId) (\s@ListHostedConfigurationVersions' {} a -> s {configurationProfileId = a} :: ListHostedConfigurationVersions)++instance+  Core.AWSRequest+    ListHostedConfigurationVersions+  where+  type+    AWSResponse ListHostedConfigurationVersions =+      ListHostedConfigurationVersionsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListHostedConfigurationVersionsResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ListHostedConfigurationVersions+  where+  hashWithSalt+    _salt+    ListHostedConfigurationVersions' {..} =+      _salt+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` applicationId+        `Prelude.hashWithSalt` configurationProfileId++instance+  Prelude.NFData+    ListHostedConfigurationVersions+  where+  rnf ListHostedConfigurationVersions' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf configurationProfileId++instance+  Data.ToHeaders+    ListHostedConfigurationVersions+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListHostedConfigurationVersions where+  toPath ListHostedConfigurationVersions' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/configurationprofiles/",+        Data.toBS configurationProfileId,+        "/hostedconfigurationversions"+      ]++instance Data.ToQuery ListHostedConfigurationVersions where+  toQuery ListHostedConfigurationVersions' {..} =+    Prelude.mconcat+      [ "max_results" Data.=: maxResults,+        "next_token" Data.=: nextToken+      ]++-- | /See:/ 'newListHostedConfigurationVersionsResponse' smart constructor.+data ListHostedConfigurationVersionsResponse = ListHostedConfigurationVersionsResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [HostedConfigurationVersionSummary],+    -- | The token for the next set of items to return. Use this token to get the+    -- next set of 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 'ListHostedConfigurationVersionsResponse' 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:+--+-- 'items', 'listHostedConfigurationVersionsResponse_items' - The elements from this collection.+--+-- 'nextToken', 'listHostedConfigurationVersionsResponse_nextToken' - The token for the next set of items to return. Use this token to get the+-- next set of results.+--+-- 'httpStatus', 'listHostedConfigurationVersionsResponse_httpStatus' - The response's http status code.+newListHostedConfigurationVersionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListHostedConfigurationVersionsResponse+newListHostedConfigurationVersionsResponse+  pHttpStatus_ =+    ListHostedConfigurationVersionsResponse'+      { items =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The elements from this collection.+listHostedConfigurationVersionsResponse_items :: Lens.Lens' ListHostedConfigurationVersionsResponse (Prelude.Maybe [HostedConfigurationVersionSummary])+listHostedConfigurationVersionsResponse_items = Lens.lens (\ListHostedConfigurationVersionsResponse' {items} -> items) (\s@ListHostedConfigurationVersionsResponse' {} a -> s {items = a} :: ListHostedConfigurationVersionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of items to return. Use this token to get the+-- next set of results.+listHostedConfigurationVersionsResponse_nextToken :: Lens.Lens' ListHostedConfigurationVersionsResponse (Prelude.Maybe Prelude.Text)+listHostedConfigurationVersionsResponse_nextToken = Lens.lens (\ListHostedConfigurationVersionsResponse' {nextToken} -> nextToken) (\s@ListHostedConfigurationVersionsResponse' {} a -> s {nextToken = a} :: ListHostedConfigurationVersionsResponse)++-- | The response's http status code.+listHostedConfigurationVersionsResponse_httpStatus :: Lens.Lens' ListHostedConfigurationVersionsResponse Prelude.Int+listHostedConfigurationVersionsResponse_httpStatus = Lens.lens (\ListHostedConfigurationVersionsResponse' {httpStatus} -> httpStatus) (\s@ListHostedConfigurationVersionsResponse' {} a -> s {httpStatus = a} :: ListHostedConfigurationVersionsResponse)++instance+  Prelude.NFData+    ListHostedConfigurationVersionsResponse+  where+  rnf ListHostedConfigurationVersionsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AppConfig/ListTagsForResource.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.AppConfig.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)+--+-- Retrieves the list of key-value tags assigned to the resource.+module Amazonka.AppConfig.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceArn,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+where++import Amazonka.AppConfig.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 resource ARN.+    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 resource ARN.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The resource ARN.+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'+  { -- | Metadata to assign to AppConfig resources. Tags help organize and+    -- categorize your AppConfig resources. Each tag consists of a key and an+    -- optional value, both of which you define.+    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' - Metadata to assign to AppConfig resources. Tags help organize and+-- categorize your AppConfig resources. Each tag consists of a key and an+-- optional value, both of which you define.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Metadata to assign to AppConfig resources. Tags help organize and+-- categorize your AppConfig resources. Each tag consists of a key and an+-- optional value, both of which you define.+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/AppConfig/StartDeployment.hs view
@@ -0,0 +1,247 @@+{-# 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.AppConfig.StartDeployment+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts a deployment.+module Amazonka.AppConfig.StartDeployment+  ( -- * Creating a Request+    StartDeployment (..),+    newStartDeployment,++    -- * Request Lenses+    startDeployment_description,+    startDeployment_tags,+    startDeployment_applicationId,+    startDeployment_environmentId,+    startDeployment_deploymentStrategyId,+    startDeployment_configurationProfileId,+    startDeployment_configurationVersion,++    -- * Destructuring the Response+    Deployment (..),+    newDeployment,++    -- * Response Lenses+    deployment_applicationId,+    deployment_appliedExtensions,+    deployment_completedAt,+    deployment_configurationLocationUri,+    deployment_configurationName,+    deployment_configurationProfileId,+    deployment_configurationVersion,+    deployment_deploymentDurationInMinutes,+    deployment_deploymentNumber,+    deployment_deploymentStrategyId,+    deployment_description,+    deployment_environmentId,+    deployment_eventLog,+    deployment_finalBakeTimeInMinutes,+    deployment_growthFactor,+    deployment_growthType,+    deployment_percentageComplete,+    deployment_startedAt,+    deployment_state,+  )+where++import Amazonka.AppConfig.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:/ 'newStartDeployment' smart constructor.+data StartDeployment = StartDeployment'+  { -- | A description of the deployment.+    description :: Prelude.Maybe Prelude.Text,+    -- | Metadata to assign to the deployment. Tags help organize and categorize+    -- your AppConfig resources. Each tag consists of a key and an optional+    -- value, both of which you define.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The application ID.+    applicationId :: Prelude.Text,+    -- | The environment ID.+    environmentId :: Prelude.Text,+    -- | The deployment strategy ID.+    deploymentStrategyId :: Prelude.Text,+    -- | The configuration profile ID.+    configurationProfileId :: Prelude.Text,+    -- | The configuration version to deploy.+    configurationVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartDeployment' 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', 'startDeployment_description' - A description of the deployment.+--+-- 'tags', 'startDeployment_tags' - Metadata to assign to the deployment. Tags help organize and categorize+-- your AppConfig resources. Each tag consists of a key and an optional+-- value, both of which you define.+--+-- 'applicationId', 'startDeployment_applicationId' - The application ID.+--+-- 'environmentId', 'startDeployment_environmentId' - The environment ID.+--+-- 'deploymentStrategyId', 'startDeployment_deploymentStrategyId' - The deployment strategy ID.+--+-- 'configurationProfileId', 'startDeployment_configurationProfileId' - The configuration profile ID.+--+-- 'configurationVersion', 'startDeployment_configurationVersion' - The configuration version to deploy.+newStartDeployment ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'environmentId'+  Prelude.Text ->+  -- | 'deploymentStrategyId'+  Prelude.Text ->+  -- | 'configurationProfileId'+  Prelude.Text ->+  -- | 'configurationVersion'+  Prelude.Text ->+  StartDeployment+newStartDeployment+  pApplicationId_+  pEnvironmentId_+  pDeploymentStrategyId_+  pConfigurationProfileId_+  pConfigurationVersion_ =+    StartDeployment'+      { description = Prelude.Nothing,+        tags = Prelude.Nothing,+        applicationId = pApplicationId_,+        environmentId = pEnvironmentId_,+        deploymentStrategyId = pDeploymentStrategyId_,+        configurationProfileId = pConfigurationProfileId_,+        configurationVersion = pConfigurationVersion_+      }++-- | A description of the deployment.+startDeployment_description :: Lens.Lens' StartDeployment (Prelude.Maybe Prelude.Text)+startDeployment_description = Lens.lens (\StartDeployment' {description} -> description) (\s@StartDeployment' {} a -> s {description = a} :: StartDeployment)++-- | Metadata to assign to the deployment. Tags help organize and categorize+-- your AppConfig resources. Each tag consists of a key and an optional+-- value, both of which you define.+startDeployment_tags :: Lens.Lens' StartDeployment (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+startDeployment_tags = Lens.lens (\StartDeployment' {tags} -> tags) (\s@StartDeployment' {} a -> s {tags = a} :: StartDeployment) Prelude.. Lens.mapping Lens.coerced++-- | The application ID.+startDeployment_applicationId :: Lens.Lens' StartDeployment Prelude.Text+startDeployment_applicationId = Lens.lens (\StartDeployment' {applicationId} -> applicationId) (\s@StartDeployment' {} a -> s {applicationId = a} :: StartDeployment)++-- | The environment ID.+startDeployment_environmentId :: Lens.Lens' StartDeployment Prelude.Text+startDeployment_environmentId = Lens.lens (\StartDeployment' {environmentId} -> environmentId) (\s@StartDeployment' {} a -> s {environmentId = a} :: StartDeployment)++-- | The deployment strategy ID.+startDeployment_deploymentStrategyId :: Lens.Lens' StartDeployment Prelude.Text+startDeployment_deploymentStrategyId = Lens.lens (\StartDeployment' {deploymentStrategyId} -> deploymentStrategyId) (\s@StartDeployment' {} a -> s {deploymentStrategyId = a} :: StartDeployment)++-- | The configuration profile ID.+startDeployment_configurationProfileId :: Lens.Lens' StartDeployment Prelude.Text+startDeployment_configurationProfileId = Lens.lens (\StartDeployment' {configurationProfileId} -> configurationProfileId) (\s@StartDeployment' {} a -> s {configurationProfileId = a} :: StartDeployment)++-- | The configuration version to deploy.+startDeployment_configurationVersion :: Lens.Lens' StartDeployment Prelude.Text+startDeployment_configurationVersion = Lens.lens (\StartDeployment' {configurationVersion} -> configurationVersion) (\s@StartDeployment' {} a -> s {configurationVersion = a} :: StartDeployment)++instance Core.AWSRequest StartDeployment where+  type AWSResponse StartDeployment = Deployment+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable StartDeployment where+  hashWithSalt _salt StartDeployment' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` environmentId+      `Prelude.hashWithSalt` deploymentStrategyId+      `Prelude.hashWithSalt` configurationProfileId+      `Prelude.hashWithSalt` configurationVersion++instance Prelude.NFData StartDeployment where+  rnf StartDeployment' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf environmentId+      `Prelude.seq` Prelude.rnf deploymentStrategyId+      `Prelude.seq` Prelude.rnf configurationProfileId+      `Prelude.seq` Prelude.rnf configurationVersion++instance Data.ToHeaders StartDeployment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartDeployment where+  toJSON StartDeployment' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ( "DeploymentStrategyId"+                  Data..= deploymentStrategyId+              ),+            Prelude.Just+              ( "ConfigurationProfileId"+                  Data..= configurationProfileId+              ),+            Prelude.Just+              ( "ConfigurationVersion"+                  Data..= configurationVersion+              )+          ]+      )++instance Data.ToPath StartDeployment where+  toPath StartDeployment' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/environments/",+        Data.toBS environmentId,+        "/deployments"+      ]++instance Data.ToQuery StartDeployment where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/StopDeployment.hs view
@@ -0,0 +1,169 @@+{-# 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.AppConfig.StopDeployment+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stops a deployment. This API action works only on deployments that have+-- a status of @DEPLOYING@. This action moves the deployment to a status of+-- @ROLLED_BACK@.+module Amazonka.AppConfig.StopDeployment+  ( -- * Creating a Request+    StopDeployment (..),+    newStopDeployment,++    -- * Request Lenses+    stopDeployment_applicationId,+    stopDeployment_environmentId,+    stopDeployment_deploymentNumber,++    -- * Destructuring the Response+    Deployment (..),+    newDeployment,++    -- * Response Lenses+    deployment_applicationId,+    deployment_appliedExtensions,+    deployment_completedAt,+    deployment_configurationLocationUri,+    deployment_configurationName,+    deployment_configurationProfileId,+    deployment_configurationVersion,+    deployment_deploymentDurationInMinutes,+    deployment_deploymentNumber,+    deployment_deploymentStrategyId,+    deployment_description,+    deployment_environmentId,+    deployment_eventLog,+    deployment_finalBakeTimeInMinutes,+    deployment_growthFactor,+    deployment_growthType,+    deployment_percentageComplete,+    deployment_startedAt,+    deployment_state,+  )+where++import Amazonka.AppConfig.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:/ 'newStopDeployment' smart constructor.+data StopDeployment = StopDeployment'+  { -- | The application ID.+    applicationId :: Prelude.Text,+    -- | The environment ID.+    environmentId :: Prelude.Text,+    -- | The sequence number of the deployment.+    deploymentNumber :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopDeployment' 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:+--+-- 'applicationId', 'stopDeployment_applicationId' - The application ID.+--+-- 'environmentId', 'stopDeployment_environmentId' - The environment ID.+--+-- 'deploymentNumber', 'stopDeployment_deploymentNumber' - The sequence number of the deployment.+newStopDeployment ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'environmentId'+  Prelude.Text ->+  -- | 'deploymentNumber'+  Prelude.Int ->+  StopDeployment+newStopDeployment+  pApplicationId_+  pEnvironmentId_+  pDeploymentNumber_ =+    StopDeployment'+      { applicationId = pApplicationId_,+        environmentId = pEnvironmentId_,+        deploymentNumber = pDeploymentNumber_+      }++-- | The application ID.+stopDeployment_applicationId :: Lens.Lens' StopDeployment Prelude.Text+stopDeployment_applicationId = Lens.lens (\StopDeployment' {applicationId} -> applicationId) (\s@StopDeployment' {} a -> s {applicationId = a} :: StopDeployment)++-- | The environment ID.+stopDeployment_environmentId :: Lens.Lens' StopDeployment Prelude.Text+stopDeployment_environmentId = Lens.lens (\StopDeployment' {environmentId} -> environmentId) (\s@StopDeployment' {} a -> s {environmentId = a} :: StopDeployment)++-- | The sequence number of the deployment.+stopDeployment_deploymentNumber :: Lens.Lens' StopDeployment Prelude.Int+stopDeployment_deploymentNumber = Lens.lens (\StopDeployment' {deploymentNumber} -> deploymentNumber) (\s@StopDeployment' {} a -> s {deploymentNumber = a} :: StopDeployment)++instance Core.AWSRequest StopDeployment where+  type AWSResponse StopDeployment = Deployment+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable StopDeployment where+  hashWithSalt _salt StopDeployment' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` environmentId+      `Prelude.hashWithSalt` deploymentNumber++instance Prelude.NFData StopDeployment where+  rnf StopDeployment' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf environmentId+      `Prelude.seq` Prelude.rnf deploymentNumber++instance Data.ToHeaders StopDeployment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath StopDeployment where+  toPath StopDeployment' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/environments/",+        Data.toBS environmentId,+        "/deployments/",+        Data.toBS deploymentNumber+      ]++instance Data.ToQuery StopDeployment where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/TagResource.hs view
@@ -0,0 +1,151 @@+{-# 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.AppConfig.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)+--+-- Assigns metadata to an AppConfig resource. Tags help organize and+-- categorize your AppConfig resources. Each tag consists of a key and an+-- optional value, both of which you define. You can specify a maximum of+-- 50 tags for a resource.+module Amazonka.AppConfig.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,+  )+where++import Amazonka.AppConfig.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 ARN of the resource for which to retrieve tags.+    resourceArn :: Prelude.Text,+    -- | The key-value string map. The valid character set is [a-zA-Z+-=._:\/].+    -- The tag key can be up to 128 characters and must not start with @aws:@.+    -- The tag value can be up to 256 characters.+    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 ARN of the resource for which to retrieve tags.+--+-- 'tags', 'tagResource_tags' - The key-value string map. The valid character set is [a-zA-Z+-=._:\/].+-- The tag key can be up to 128 characters and must not start with @aws:@.+-- The tag value can be up to 256 characters.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The ARN of the resource for which to retrieve tags.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The key-value string map. The valid character set is [a-zA-Z+-=._:\/].+-- The tag key can be up to 128 characters and must not start with @aws:@.+-- The tag value can be up to 256 characters.+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.receiveNull TagResourceResponse'++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'+  {+  }+  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.+newTagResourceResponse ::+  TagResourceResponse+newTagResourceResponse = TagResourceResponse'++instance Prelude.NFData TagResourceResponse where+  rnf _ = ()
+ gen/Amazonka/AppConfig/Types.hs view
@@ -0,0 +1,406 @@+{-# 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.AppConfig.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.AppConfig.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _BadRequestException,+    _ConflictException,+    _InternalServerException,+    _PayloadTooLargeException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,++    -- * ActionPoint+    ActionPoint (..),++    -- * DeploymentEventType+    DeploymentEventType (..),++    -- * DeploymentState+    DeploymentState (..),++    -- * EnvironmentState+    EnvironmentState (..),++    -- * GrowthType+    GrowthType (..),++    -- * ReplicateTo+    ReplicateTo (..),++    -- * TriggeredBy+    TriggeredBy (..),++    -- * ValidatorType+    ValidatorType (..),++    -- * Action+    Action (..),+    newAction,+    action_description,+    action_name,+    action_roleArn,+    action_uri,++    -- * ActionInvocation+    ActionInvocation (..),+    newActionInvocation,+    actionInvocation_actionName,+    actionInvocation_errorCode,+    actionInvocation_errorMessage,+    actionInvocation_extensionIdentifier,+    actionInvocation_invocationId,+    actionInvocation_roleArn,+    actionInvocation_uri,++    -- * Application+    Application (..),+    newApplication,+    application_description,+    application_id,+    application_name,++    -- * AppliedExtension+    AppliedExtension (..),+    newAppliedExtension,+    appliedExtension_extensionAssociationId,+    appliedExtension_extensionId,+    appliedExtension_parameters,+    appliedExtension_versionNumber,++    -- * ConfigurationProfile+    ConfigurationProfile (..),+    newConfigurationProfile,+    configurationProfile_applicationId,+    configurationProfile_description,+    configurationProfile_id,+    configurationProfile_locationUri,+    configurationProfile_name,+    configurationProfile_retrievalRoleArn,+    configurationProfile_type,+    configurationProfile_validators,++    -- * ConfigurationProfileSummary+    ConfigurationProfileSummary (..),+    newConfigurationProfileSummary,+    configurationProfileSummary_applicationId,+    configurationProfileSummary_id,+    configurationProfileSummary_locationUri,+    configurationProfileSummary_name,+    configurationProfileSummary_type,+    configurationProfileSummary_validatorTypes,++    -- * Deployment+    Deployment (..),+    newDeployment,+    deployment_applicationId,+    deployment_appliedExtensions,+    deployment_completedAt,+    deployment_configurationLocationUri,+    deployment_configurationName,+    deployment_configurationProfileId,+    deployment_configurationVersion,+    deployment_deploymentDurationInMinutes,+    deployment_deploymentNumber,+    deployment_deploymentStrategyId,+    deployment_description,+    deployment_environmentId,+    deployment_eventLog,+    deployment_finalBakeTimeInMinutes,+    deployment_growthFactor,+    deployment_growthType,+    deployment_percentageComplete,+    deployment_startedAt,+    deployment_state,++    -- * DeploymentEvent+    DeploymentEvent (..),+    newDeploymentEvent,+    deploymentEvent_actionInvocations,+    deploymentEvent_description,+    deploymentEvent_eventType,+    deploymentEvent_occurredAt,+    deploymentEvent_triggeredBy,++    -- * DeploymentStrategy+    DeploymentStrategy (..),+    newDeploymentStrategy,+    deploymentStrategy_deploymentDurationInMinutes,+    deploymentStrategy_description,+    deploymentStrategy_finalBakeTimeInMinutes,+    deploymentStrategy_growthFactor,+    deploymentStrategy_growthType,+    deploymentStrategy_id,+    deploymentStrategy_name,+    deploymentStrategy_replicateTo,++    -- * DeploymentSummary+    DeploymentSummary (..),+    newDeploymentSummary,+    deploymentSummary_completedAt,+    deploymentSummary_configurationName,+    deploymentSummary_configurationVersion,+    deploymentSummary_deploymentDurationInMinutes,+    deploymentSummary_deploymentNumber,+    deploymentSummary_finalBakeTimeInMinutes,+    deploymentSummary_growthFactor,+    deploymentSummary_growthType,+    deploymentSummary_percentageComplete,+    deploymentSummary_startedAt,+    deploymentSummary_state,++    -- * Environment+    Environment (..),+    newEnvironment,+    environment_applicationId,+    environment_description,+    environment_id,+    environment_monitors,+    environment_name,+    environment_state,++    -- * Extension+    Extension (..),+    newExtension,+    extension_actions,+    extension_arn,+    extension_description,+    extension_id,+    extension_name,+    extension_parameters,+    extension_versionNumber,++    -- * ExtensionAssociation+    ExtensionAssociation (..),+    newExtensionAssociation,+    extensionAssociation_arn,+    extensionAssociation_extensionArn,+    extensionAssociation_extensionVersionNumber,+    extensionAssociation_id,+    extensionAssociation_parameters,+    extensionAssociation_resourceArn,++    -- * ExtensionAssociationSummary+    ExtensionAssociationSummary (..),+    newExtensionAssociationSummary,+    extensionAssociationSummary_extensionArn,+    extensionAssociationSummary_id,+    extensionAssociationSummary_resourceArn,++    -- * ExtensionSummary+    ExtensionSummary (..),+    newExtensionSummary,+    extensionSummary_arn,+    extensionSummary_description,+    extensionSummary_id,+    extensionSummary_name,+    extensionSummary_versionNumber,++    -- * HostedConfigurationVersion+    HostedConfigurationVersion (..),+    newHostedConfigurationVersion,+    hostedConfigurationVersion_applicationId,+    hostedConfigurationVersion_configurationProfileId,+    hostedConfigurationVersion_content,+    hostedConfigurationVersion_contentType,+    hostedConfigurationVersion_description,+    hostedConfigurationVersion_versionNumber,++    -- * HostedConfigurationVersionSummary+    HostedConfigurationVersionSummary (..),+    newHostedConfigurationVersionSummary,+    hostedConfigurationVersionSummary_applicationId,+    hostedConfigurationVersionSummary_configurationProfileId,+    hostedConfigurationVersionSummary_contentType,+    hostedConfigurationVersionSummary_description,+    hostedConfigurationVersionSummary_versionNumber,++    -- * Monitor+    Monitor (..),+    newMonitor,+    monitor_alarmRoleArn,+    monitor_alarmArn,++    -- * Parameter+    Parameter (..),+    newParameter,+    parameter_description,+    parameter_required,++    -- * Validator+    Validator (..),+    newValidator,+    validator_type,+    validator_content,+  )+where++import Amazonka.AppConfig.Types.Action+import Amazonka.AppConfig.Types.ActionInvocation+import Amazonka.AppConfig.Types.ActionPoint+import Amazonka.AppConfig.Types.Application+import Amazonka.AppConfig.Types.AppliedExtension+import Amazonka.AppConfig.Types.ConfigurationProfile+import Amazonka.AppConfig.Types.ConfigurationProfileSummary+import Amazonka.AppConfig.Types.Deployment+import Amazonka.AppConfig.Types.DeploymentEvent+import Amazonka.AppConfig.Types.DeploymentEventType+import Amazonka.AppConfig.Types.DeploymentState+import Amazonka.AppConfig.Types.DeploymentStrategy+import Amazonka.AppConfig.Types.DeploymentSummary+import Amazonka.AppConfig.Types.Environment+import Amazonka.AppConfig.Types.EnvironmentState+import Amazonka.AppConfig.Types.Extension+import Amazonka.AppConfig.Types.ExtensionAssociation+import Amazonka.AppConfig.Types.ExtensionAssociationSummary+import Amazonka.AppConfig.Types.ExtensionSummary+import Amazonka.AppConfig.Types.GrowthType+import Amazonka.AppConfig.Types.HostedConfigurationVersion+import Amazonka.AppConfig.Types.HostedConfigurationVersionSummary+import Amazonka.AppConfig.Types.Monitor+import Amazonka.AppConfig.Types.Parameter+import Amazonka.AppConfig.Types.ReplicateTo+import Amazonka.AppConfig.Types.TriggeredBy+import Amazonka.AppConfig.Types.Validator+import Amazonka.AppConfig.Types.ValidatorType+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 @2019-10-09@ of the Amazon AppConfig SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "AppConfig",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "appconfig",+      Core.signingName = "appconfig",+      Core.version = "2019-10-09",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "AppConfig",+      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++-- | The input fails to satisfy the constraints specified by an Amazon Web+-- Services service.+_BadRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BadRequestException =+  Core._MatchServiceError+    defaultService+    "BadRequestException"+    Prelude.. Core.hasStatus 400++-- | The request could not be processed because of conflict in the current+-- state of the resource.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | There was an internal failure in the AppConfig service.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | The configuration size is too large.+_PayloadTooLargeException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_PayloadTooLargeException =+  Core._MatchServiceError+    defaultService+    "PayloadTooLargeException"+    Prelude.. Core.hasStatus 413++-- | The requested resource could not be found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | The number of hosted configuration versions exceeds the limit for the+-- AppConfig hosted configuration store. Delete one or more versions and+-- try again.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"+    Prelude.. Core.hasStatus 402
+ gen/Amazonka/AppConfig/Types/Action.hs view
@@ -0,0 +1,155 @@+{-# 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.AppConfig.Types.Action+-- 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.AppConfig.Types.Action 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++-- | An action defines the tasks the extension performs during the AppConfig+-- workflow. Each action includes an action point such as+-- @ON_CREATE_HOSTED_CONFIGURATION@, @PRE_DEPLOYMENT@, or @ON_DEPLOYMENT@.+-- Each action also includes a name, a URI to an Lambda function, and an+-- Amazon Resource Name (ARN) for an Identity and Access Management assume+-- role. You specify the name, URI, and ARN for each /action point/ defined+-- in the extension. You can specify the following actions for an+-- extension:+--+-- -   @PRE_CREATE_HOSTED_CONFIGURATION_VERSION@+--+-- -   @PRE_START_DEPLOYMENT@+--+-- -   @ON_DEPLOYMENT_START@+--+-- -   @ON_DEPLOYMENT_STEP@+--+-- -   @ON_DEPLOYMENT_BAKING@+--+-- -   @ON_DEPLOYMENT_COMPLETE@+--+-- -   @ON_DEPLOYMENT_ROLLED_BACK@+--+-- /See:/ 'newAction' smart constructor.+data Action = Action'+  { -- | Information about the action.+    description :: Prelude.Maybe Prelude.Text,+    -- | The action name.+    name :: Prelude.Maybe Prelude.Text,+    -- | An Amazon Resource Name (ARN) for an Identity and Access Management+    -- assume role.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The extension URI associated to the action point in the extension+    -- definition. The URI can be an Amazon Resource Name (ARN) for one of the+    -- following: an Lambda function, an Amazon Simple Queue Service queue, an+    -- Amazon Simple Notification Service topic, or the Amazon EventBridge+    -- default event bus.+    uri :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Action' 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', 'action_description' - Information about the action.+--+-- 'name', 'action_name' - The action name.+--+-- 'roleArn', 'action_roleArn' - An Amazon Resource Name (ARN) for an Identity and Access Management+-- assume role.+--+-- 'uri', 'action_uri' - The extension URI associated to the action point in the extension+-- definition. The URI can be an Amazon Resource Name (ARN) for one of the+-- following: an Lambda function, an Amazon Simple Queue Service queue, an+-- Amazon Simple Notification Service topic, or the Amazon EventBridge+-- default event bus.+newAction ::+  Action+newAction =+  Action'+    { description = Prelude.Nothing,+      name = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      uri = Prelude.Nothing+    }++-- | Information about the action.+action_description :: Lens.Lens' Action (Prelude.Maybe Prelude.Text)+action_description = Lens.lens (\Action' {description} -> description) (\s@Action' {} a -> s {description = a} :: Action)++-- | The action name.+action_name :: Lens.Lens' Action (Prelude.Maybe Prelude.Text)+action_name = Lens.lens (\Action' {name} -> name) (\s@Action' {} a -> s {name = a} :: Action)++-- | An Amazon Resource Name (ARN) for an Identity and Access Management+-- assume role.+action_roleArn :: Lens.Lens' Action (Prelude.Maybe Prelude.Text)+action_roleArn = Lens.lens (\Action' {roleArn} -> roleArn) (\s@Action' {} a -> s {roleArn = a} :: Action)++-- | The extension URI associated to the action point in the extension+-- definition. The URI can be an Amazon Resource Name (ARN) for one of the+-- following: an Lambda function, an Amazon Simple Queue Service queue, an+-- Amazon Simple Notification Service topic, or the Amazon EventBridge+-- default event bus.+action_uri :: Lens.Lens' Action (Prelude.Maybe Prelude.Text)+action_uri = Lens.lens (\Action' {uri} -> uri) (\s@Action' {} a -> s {uri = a} :: Action)++instance Data.FromJSON Action where+  parseJSON =+    Data.withObject+      "Action"+      ( \x ->+          Action'+            Prelude.<$> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "RoleArn")+            Prelude.<*> (x Data..:? "Uri")+      )++instance Prelude.Hashable Action where+  hashWithSalt _salt Action' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` uri++instance Prelude.NFData Action where+  rnf Action' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf uri++instance Data.ToJSON Action where+  toJSON Action' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Name" Data..=) Prelude.<$> name,+            ("RoleArn" Data..=) Prelude.<$> roleArn,+            ("Uri" Data..=) Prelude.<$> uri+          ]+      )
+ gen/Amazonka/AppConfig/Types/ActionInvocation.hs view
@@ -0,0 +1,159 @@+{-# 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.AppConfig.Types.ActionInvocation+-- 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.AppConfig.Types.ActionInvocation 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++-- | An extension that was invoked as part of a deployment event.+--+-- /See:/ 'newActionInvocation' smart constructor.+data ActionInvocation = ActionInvocation'+  { -- | The name of the action.+    actionName :: Prelude.Maybe Prelude.Text,+    -- | The error code when an extension invocation fails.+    errorCode :: Prelude.Maybe Prelude.Text,+    -- | The error message when an extension invocation fails.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The name, the ID, or the Amazon Resource Name (ARN) of the extension.+    extensionIdentifier :: Prelude.Maybe Prelude.Text,+    -- | A system-generated ID for this invocation.+    invocationId :: Prelude.Maybe Prelude.Text,+    -- | An Amazon Resource Name (ARN) for an Identity and Access Management+    -- assume role.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The extension URI associated to the action point in the extension+    -- definition. The URI can be an Amazon Resource Name (ARN) for one of the+    -- following: an Lambda function, an Amazon Simple Queue Service queue, an+    -- Amazon Simple Notification Service topic, or the Amazon EventBridge+    -- default event bus.+    uri :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ActionInvocation' 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:+--+-- 'actionName', 'actionInvocation_actionName' - The name of the action.+--+-- 'errorCode', 'actionInvocation_errorCode' - The error code when an extension invocation fails.+--+-- 'errorMessage', 'actionInvocation_errorMessage' - The error message when an extension invocation fails.+--+-- 'extensionIdentifier', 'actionInvocation_extensionIdentifier' - The name, the ID, or the Amazon Resource Name (ARN) of the extension.+--+-- 'invocationId', 'actionInvocation_invocationId' - A system-generated ID for this invocation.+--+-- 'roleArn', 'actionInvocation_roleArn' - An Amazon Resource Name (ARN) for an Identity and Access Management+-- assume role.+--+-- 'uri', 'actionInvocation_uri' - The extension URI associated to the action point in the extension+-- definition. The URI can be an Amazon Resource Name (ARN) for one of the+-- following: an Lambda function, an Amazon Simple Queue Service queue, an+-- Amazon Simple Notification Service topic, or the Amazon EventBridge+-- default event bus.+newActionInvocation ::+  ActionInvocation+newActionInvocation =+  ActionInvocation'+    { actionName = Prelude.Nothing,+      errorCode = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      extensionIdentifier = Prelude.Nothing,+      invocationId = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      uri = Prelude.Nothing+    }++-- | The name of the action.+actionInvocation_actionName :: Lens.Lens' ActionInvocation (Prelude.Maybe Prelude.Text)+actionInvocation_actionName = Lens.lens (\ActionInvocation' {actionName} -> actionName) (\s@ActionInvocation' {} a -> s {actionName = a} :: ActionInvocation)++-- | The error code when an extension invocation fails.+actionInvocation_errorCode :: Lens.Lens' ActionInvocation (Prelude.Maybe Prelude.Text)+actionInvocation_errorCode = Lens.lens (\ActionInvocation' {errorCode} -> errorCode) (\s@ActionInvocation' {} a -> s {errorCode = a} :: ActionInvocation)++-- | The error message when an extension invocation fails.+actionInvocation_errorMessage :: Lens.Lens' ActionInvocation (Prelude.Maybe Prelude.Text)+actionInvocation_errorMessage = Lens.lens (\ActionInvocation' {errorMessage} -> errorMessage) (\s@ActionInvocation' {} a -> s {errorMessage = a} :: ActionInvocation)++-- | The name, the ID, or the Amazon Resource Name (ARN) of the extension.+actionInvocation_extensionIdentifier :: Lens.Lens' ActionInvocation (Prelude.Maybe Prelude.Text)+actionInvocation_extensionIdentifier = Lens.lens (\ActionInvocation' {extensionIdentifier} -> extensionIdentifier) (\s@ActionInvocation' {} a -> s {extensionIdentifier = a} :: ActionInvocation)++-- | A system-generated ID for this invocation.+actionInvocation_invocationId :: Lens.Lens' ActionInvocation (Prelude.Maybe Prelude.Text)+actionInvocation_invocationId = Lens.lens (\ActionInvocation' {invocationId} -> invocationId) (\s@ActionInvocation' {} a -> s {invocationId = a} :: ActionInvocation)++-- | An Amazon Resource Name (ARN) for an Identity and Access Management+-- assume role.+actionInvocation_roleArn :: Lens.Lens' ActionInvocation (Prelude.Maybe Prelude.Text)+actionInvocation_roleArn = Lens.lens (\ActionInvocation' {roleArn} -> roleArn) (\s@ActionInvocation' {} a -> s {roleArn = a} :: ActionInvocation)++-- | The extension URI associated to the action point in the extension+-- definition. The URI can be an Amazon Resource Name (ARN) for one of the+-- following: an Lambda function, an Amazon Simple Queue Service queue, an+-- Amazon Simple Notification Service topic, or the Amazon EventBridge+-- default event bus.+actionInvocation_uri :: Lens.Lens' ActionInvocation (Prelude.Maybe Prelude.Text)+actionInvocation_uri = Lens.lens (\ActionInvocation' {uri} -> uri) (\s@ActionInvocation' {} a -> s {uri = a} :: ActionInvocation)++instance Data.FromJSON ActionInvocation where+  parseJSON =+    Data.withObject+      "ActionInvocation"+      ( \x ->+          ActionInvocation'+            Prelude.<$> (x Data..:? "ActionName")+            Prelude.<*> (x Data..:? "ErrorCode")+            Prelude.<*> (x Data..:? "ErrorMessage")+            Prelude.<*> (x Data..:? "ExtensionIdentifier")+            Prelude.<*> (x Data..:? "InvocationId")+            Prelude.<*> (x Data..:? "RoleArn")+            Prelude.<*> (x Data..:? "Uri")+      )++instance Prelude.Hashable ActionInvocation where+  hashWithSalt _salt ActionInvocation' {..} =+    _salt+      `Prelude.hashWithSalt` actionName+      `Prelude.hashWithSalt` errorCode+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` extensionIdentifier+      `Prelude.hashWithSalt` invocationId+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` uri++instance Prelude.NFData ActionInvocation where+  rnf ActionInvocation' {..} =+    Prelude.rnf actionName+      `Prelude.seq` Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf extensionIdentifier+      `Prelude.seq` Prelude.rnf invocationId+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf uri
+ gen/Amazonka/AppConfig/Types/ActionPoint.hs view
@@ -0,0 +1,96 @@+{-# 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.AppConfig.Types.ActionPoint+-- 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.AppConfig.Types.ActionPoint+  ( ActionPoint+      ( ..,+        ActionPoint_ON_DEPLOYMENT_BAKING,+        ActionPoint_ON_DEPLOYMENT_COMPLETE,+        ActionPoint_ON_DEPLOYMENT_ROLLED_BACK,+        ActionPoint_ON_DEPLOYMENT_START,+        ActionPoint_ON_DEPLOYMENT_STEP,+        ActionPoint_PRE_CREATE_HOSTED_CONFIGURATION_VERSION,+        ActionPoint_PRE_START_DEPLOYMENT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ActionPoint = ActionPoint'+  { fromActionPoint ::+      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 ActionPoint_ON_DEPLOYMENT_BAKING :: ActionPoint+pattern ActionPoint_ON_DEPLOYMENT_BAKING = ActionPoint' "ON_DEPLOYMENT_BAKING"++pattern ActionPoint_ON_DEPLOYMENT_COMPLETE :: ActionPoint+pattern ActionPoint_ON_DEPLOYMENT_COMPLETE = ActionPoint' "ON_DEPLOYMENT_COMPLETE"++pattern ActionPoint_ON_DEPLOYMENT_ROLLED_BACK :: ActionPoint+pattern ActionPoint_ON_DEPLOYMENT_ROLLED_BACK = ActionPoint' "ON_DEPLOYMENT_ROLLED_BACK"++pattern ActionPoint_ON_DEPLOYMENT_START :: ActionPoint+pattern ActionPoint_ON_DEPLOYMENT_START = ActionPoint' "ON_DEPLOYMENT_START"++pattern ActionPoint_ON_DEPLOYMENT_STEP :: ActionPoint+pattern ActionPoint_ON_DEPLOYMENT_STEP = ActionPoint' "ON_DEPLOYMENT_STEP"++pattern ActionPoint_PRE_CREATE_HOSTED_CONFIGURATION_VERSION :: ActionPoint+pattern ActionPoint_PRE_CREATE_HOSTED_CONFIGURATION_VERSION = ActionPoint' "PRE_CREATE_HOSTED_CONFIGURATION_VERSION"++pattern ActionPoint_PRE_START_DEPLOYMENT :: ActionPoint+pattern ActionPoint_PRE_START_DEPLOYMENT = ActionPoint' "PRE_START_DEPLOYMENT"++{-# COMPLETE+  ActionPoint_ON_DEPLOYMENT_BAKING,+  ActionPoint_ON_DEPLOYMENT_COMPLETE,+  ActionPoint_ON_DEPLOYMENT_ROLLED_BACK,+  ActionPoint_ON_DEPLOYMENT_START,+  ActionPoint_ON_DEPLOYMENT_STEP,+  ActionPoint_PRE_CREATE_HOSTED_CONFIGURATION_VERSION,+  ActionPoint_PRE_START_DEPLOYMENT,+  ActionPoint'+  #-}
+ gen/Amazonka/AppConfig/Types/Application.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.AppConfig.Types.Application+-- 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.AppConfig.Types.Application 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++-- | /See:/ 'newApplication' smart constructor.+data Application = Application'+  { -- | The description of the application.+    description :: Prelude.Maybe Prelude.Text,+    -- | The application ID.+    id :: Prelude.Maybe Prelude.Text,+    -- | The application name.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Application' 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', 'application_description' - The description of the application.+--+-- 'id', 'application_id' - The application ID.+--+-- 'name', 'application_name' - The application name.+newApplication ::+  Application+newApplication =+  Application'+    { description = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The description of the application.+application_description :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_description = Lens.lens (\Application' {description} -> description) (\s@Application' {} a -> s {description = a} :: Application)++-- | The application ID.+application_id :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_id = Lens.lens (\Application' {id} -> id) (\s@Application' {} a -> s {id = a} :: Application)++-- | The application name.+application_name :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_name = Lens.lens (\Application' {name} -> name) (\s@Application' {} a -> s {name = a} :: Application)++instance Data.FromJSON Application where+  parseJSON =+    Data.withObject+      "Application"+      ( \x ->+          Application'+            Prelude.<$> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "Name")+      )++instance Prelude.Hashable Application where+  hashWithSalt _salt Application' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name++instance Prelude.NFData Application where+  rnf Application' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/AppConfig/Types/AppliedExtension.hs view
@@ -0,0 +1,109 @@+{-# 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.AppConfig.Types.AppliedExtension+-- 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.AppConfig.Types.AppliedExtension 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++-- | An extension that was invoked during a deployment.+--+-- /See:/ 'newAppliedExtension' smart constructor.+data AppliedExtension = AppliedExtension'+  { -- | The system-generated ID for the association.+    extensionAssociationId :: Prelude.Maybe Prelude.Text,+    -- | The system-generated ID of the extension.+    extensionId :: Prelude.Maybe Prelude.Text,+    -- | One or more parameters for the actions called by the extension.+    parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The extension version number.+    versionNumber :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AppliedExtension' 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:+--+-- 'extensionAssociationId', 'appliedExtension_extensionAssociationId' - The system-generated ID for the association.+--+-- 'extensionId', 'appliedExtension_extensionId' - The system-generated ID of the extension.+--+-- 'parameters', 'appliedExtension_parameters' - One or more parameters for the actions called by the extension.+--+-- 'versionNumber', 'appliedExtension_versionNumber' - The extension version number.+newAppliedExtension ::+  AppliedExtension+newAppliedExtension =+  AppliedExtension'+    { extensionAssociationId =+        Prelude.Nothing,+      extensionId = Prelude.Nothing,+      parameters = Prelude.Nothing,+      versionNumber = Prelude.Nothing+    }++-- | The system-generated ID for the association.+appliedExtension_extensionAssociationId :: Lens.Lens' AppliedExtension (Prelude.Maybe Prelude.Text)+appliedExtension_extensionAssociationId = Lens.lens (\AppliedExtension' {extensionAssociationId} -> extensionAssociationId) (\s@AppliedExtension' {} a -> s {extensionAssociationId = a} :: AppliedExtension)++-- | The system-generated ID of the extension.+appliedExtension_extensionId :: Lens.Lens' AppliedExtension (Prelude.Maybe Prelude.Text)+appliedExtension_extensionId = Lens.lens (\AppliedExtension' {extensionId} -> extensionId) (\s@AppliedExtension' {} a -> s {extensionId = a} :: AppliedExtension)++-- | One or more parameters for the actions called by the extension.+appliedExtension_parameters :: Lens.Lens' AppliedExtension (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+appliedExtension_parameters = Lens.lens (\AppliedExtension' {parameters} -> parameters) (\s@AppliedExtension' {} a -> s {parameters = a} :: AppliedExtension) Prelude.. Lens.mapping Lens.coerced++-- | The extension version number.+appliedExtension_versionNumber :: Lens.Lens' AppliedExtension (Prelude.Maybe Prelude.Int)+appliedExtension_versionNumber = Lens.lens (\AppliedExtension' {versionNumber} -> versionNumber) (\s@AppliedExtension' {} a -> s {versionNumber = a} :: AppliedExtension)++instance Data.FromJSON AppliedExtension where+  parseJSON =+    Data.withObject+      "AppliedExtension"+      ( \x ->+          AppliedExtension'+            Prelude.<$> (x Data..:? "ExtensionAssociationId")+            Prelude.<*> (x Data..:? "ExtensionId")+            Prelude.<*> (x Data..:? "Parameters" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "VersionNumber")+      )++instance Prelude.Hashable AppliedExtension where+  hashWithSalt _salt AppliedExtension' {..} =+    _salt+      `Prelude.hashWithSalt` extensionAssociationId+      `Prelude.hashWithSalt` extensionId+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` versionNumber++instance Prelude.NFData AppliedExtension where+  rnf AppliedExtension' {..} =+    Prelude.rnf extensionAssociationId+      `Prelude.seq` Prelude.rnf extensionId+      `Prelude.seq` Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf versionNumber
+ gen/Amazonka/AppConfig/Types/ConfigurationProfile.hs view
@@ -0,0 +1,183 @@+{-# 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.AppConfig.Types.ConfigurationProfile+-- 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.AppConfig.Types.ConfigurationProfile where++import Amazonka.AppConfig.Types.Validator+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++-- | /See:/ 'newConfigurationProfile' smart constructor.+data ConfigurationProfile = ConfigurationProfile'+  { -- | The application ID.+    applicationId :: Prelude.Maybe Prelude.Text,+    -- | The configuration profile description.+    description :: Prelude.Maybe Prelude.Text,+    -- | The configuration profile ID.+    id :: Prelude.Maybe Prelude.Text,+    -- | The URI location of the configuration.+    locationUri :: Prelude.Maybe Prelude.Text,+    -- | The name of the configuration profile.+    name :: Prelude.Maybe Prelude.Text,+    -- | The ARN of an IAM role with permission to access the configuration at+    -- the specified @LocationUri@.+    retrievalRoleArn :: Prelude.Maybe Prelude.Text,+    -- | The type of configurations contained in the profile. AppConfig supports+    -- @feature flags@ and @freeform@ configurations. We recommend you create+    -- feature flag configurations to enable or disable new features and+    -- freeform configurations to distribute configurations to an application.+    -- When calling this API, enter one of the following values for @Type@:+    --+    -- @AWS.AppConfig.FeatureFlags@+    --+    -- @AWS.Freeform@+    type' :: Prelude.Maybe Prelude.Text,+    -- | A list of methods for validating the configuration.+    validators :: Prelude.Maybe [Validator]+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfigurationProfile' 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:+--+-- 'applicationId', 'configurationProfile_applicationId' - The application ID.+--+-- 'description', 'configurationProfile_description' - The configuration profile description.+--+-- 'id', 'configurationProfile_id' - The configuration profile ID.+--+-- 'locationUri', 'configurationProfile_locationUri' - The URI location of the configuration.+--+-- 'name', 'configurationProfile_name' - The name of the configuration profile.+--+-- 'retrievalRoleArn', 'configurationProfile_retrievalRoleArn' - The ARN of an IAM role with permission to access the configuration at+-- the specified @LocationUri@.+--+-- 'type'', 'configurationProfile_type' - The type of configurations contained in the profile. AppConfig supports+-- @feature flags@ and @freeform@ configurations. We recommend you create+-- feature flag configurations to enable or disable new features and+-- freeform configurations to distribute configurations to an application.+-- When calling this API, enter one of the following values for @Type@:+--+-- @AWS.AppConfig.FeatureFlags@+--+-- @AWS.Freeform@+--+-- 'validators', 'configurationProfile_validators' - A list of methods for validating the configuration.+newConfigurationProfile ::+  ConfigurationProfile+newConfigurationProfile =+  ConfigurationProfile'+    { applicationId =+        Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      locationUri = Prelude.Nothing,+      name = Prelude.Nothing,+      retrievalRoleArn = Prelude.Nothing,+      type' = Prelude.Nothing,+      validators = Prelude.Nothing+    }++-- | The application ID.+configurationProfile_applicationId :: Lens.Lens' ConfigurationProfile (Prelude.Maybe Prelude.Text)+configurationProfile_applicationId = Lens.lens (\ConfigurationProfile' {applicationId} -> applicationId) (\s@ConfigurationProfile' {} a -> s {applicationId = a} :: ConfigurationProfile)++-- | The configuration profile description.+configurationProfile_description :: Lens.Lens' ConfigurationProfile (Prelude.Maybe Prelude.Text)+configurationProfile_description = Lens.lens (\ConfigurationProfile' {description} -> description) (\s@ConfigurationProfile' {} a -> s {description = a} :: ConfigurationProfile)++-- | The configuration profile ID.+configurationProfile_id :: Lens.Lens' ConfigurationProfile (Prelude.Maybe Prelude.Text)+configurationProfile_id = Lens.lens (\ConfigurationProfile' {id} -> id) (\s@ConfigurationProfile' {} a -> s {id = a} :: ConfigurationProfile)++-- | The URI location of the configuration.+configurationProfile_locationUri :: Lens.Lens' ConfigurationProfile (Prelude.Maybe Prelude.Text)+configurationProfile_locationUri = Lens.lens (\ConfigurationProfile' {locationUri} -> locationUri) (\s@ConfigurationProfile' {} a -> s {locationUri = a} :: ConfigurationProfile)++-- | The name of the configuration profile.+configurationProfile_name :: Lens.Lens' ConfigurationProfile (Prelude.Maybe Prelude.Text)+configurationProfile_name = Lens.lens (\ConfigurationProfile' {name} -> name) (\s@ConfigurationProfile' {} a -> s {name = a} :: ConfigurationProfile)++-- | The ARN of an IAM role with permission to access the configuration at+-- the specified @LocationUri@.+configurationProfile_retrievalRoleArn :: Lens.Lens' ConfigurationProfile (Prelude.Maybe Prelude.Text)+configurationProfile_retrievalRoleArn = Lens.lens (\ConfigurationProfile' {retrievalRoleArn} -> retrievalRoleArn) (\s@ConfigurationProfile' {} a -> s {retrievalRoleArn = a} :: ConfigurationProfile)++-- | The type of configurations contained in the profile. AppConfig supports+-- @feature flags@ and @freeform@ configurations. We recommend you create+-- feature flag configurations to enable or disable new features and+-- freeform configurations to distribute configurations to an application.+-- When calling this API, enter one of the following values for @Type@:+--+-- @AWS.AppConfig.FeatureFlags@+--+-- @AWS.Freeform@+configurationProfile_type :: Lens.Lens' ConfigurationProfile (Prelude.Maybe Prelude.Text)+configurationProfile_type = Lens.lens (\ConfigurationProfile' {type'} -> type') (\s@ConfigurationProfile' {} a -> s {type' = a} :: ConfigurationProfile)++-- | A list of methods for validating the configuration.+configurationProfile_validators :: Lens.Lens' ConfigurationProfile (Prelude.Maybe [Validator])+configurationProfile_validators = Lens.lens (\ConfigurationProfile' {validators} -> validators) (\s@ConfigurationProfile' {} a -> s {validators = a} :: ConfigurationProfile) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ConfigurationProfile where+  parseJSON =+    Data.withObject+      "ConfigurationProfile"+      ( \x ->+          ConfigurationProfile'+            Prelude.<$> (x Data..:? "ApplicationId")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "LocationUri")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "RetrievalRoleArn")+            Prelude.<*> (x Data..:? "Type")+            Prelude.<*> (x Data..:? "Validators" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable ConfigurationProfile where+  hashWithSalt _salt ConfigurationProfile' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` locationUri+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` retrievalRoleArn+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` validators++instance Prelude.NFData ConfigurationProfile where+  rnf ConfigurationProfile' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf locationUri+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf retrievalRoleArn+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf validators
+ gen/Amazonka/AppConfig/Types/ConfigurationProfileSummary.hs view
@@ -0,0 +1,161 @@+{-# 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.AppConfig.Types.ConfigurationProfileSummary+-- 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.AppConfig.Types.ConfigurationProfileSummary where++import Amazonka.AppConfig.Types.ValidatorType+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 of a configuration profile.+--+-- /See:/ 'newConfigurationProfileSummary' smart constructor.+data ConfigurationProfileSummary = ConfigurationProfileSummary'+  { -- | The application ID.+    applicationId :: Prelude.Maybe Prelude.Text,+    -- | The ID of the configuration profile.+    id :: Prelude.Maybe Prelude.Text,+    -- | The URI location of the configuration.+    locationUri :: Prelude.Maybe Prelude.Text,+    -- | The name of the configuration profile.+    name :: Prelude.Maybe Prelude.Text,+    -- | The type of configurations contained in the profile. AppConfig supports+    -- @feature flags@ and @freeform@ configurations. We recommend you create+    -- feature flag configurations to enable or disable new features and+    -- freeform configurations to distribute configurations to an application.+    -- When calling this API, enter one of the following values for @Type@:+    --+    -- @AWS.AppConfig.FeatureFlags@+    --+    -- @AWS.Freeform@+    type' :: Prelude.Maybe Prelude.Text,+    -- | The types of validators in the configuration profile.+    validatorTypes :: Prelude.Maybe [ValidatorType]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfigurationProfileSummary' 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:+--+-- 'applicationId', 'configurationProfileSummary_applicationId' - The application ID.+--+-- 'id', 'configurationProfileSummary_id' - The ID of the configuration profile.+--+-- 'locationUri', 'configurationProfileSummary_locationUri' - The URI location of the configuration.+--+-- 'name', 'configurationProfileSummary_name' - The name of the configuration profile.+--+-- 'type'', 'configurationProfileSummary_type' - The type of configurations contained in the profile. AppConfig supports+-- @feature flags@ and @freeform@ configurations. We recommend you create+-- feature flag configurations to enable or disable new features and+-- freeform configurations to distribute configurations to an application.+-- When calling this API, enter one of the following values for @Type@:+--+-- @AWS.AppConfig.FeatureFlags@+--+-- @AWS.Freeform@+--+-- 'validatorTypes', 'configurationProfileSummary_validatorTypes' - The types of validators in the configuration profile.+newConfigurationProfileSummary ::+  ConfigurationProfileSummary+newConfigurationProfileSummary =+  ConfigurationProfileSummary'+    { applicationId =+        Prelude.Nothing,+      id = Prelude.Nothing,+      locationUri = Prelude.Nothing,+      name = Prelude.Nothing,+      type' = Prelude.Nothing,+      validatorTypes = Prelude.Nothing+    }++-- | The application ID.+configurationProfileSummary_applicationId :: Lens.Lens' ConfigurationProfileSummary (Prelude.Maybe Prelude.Text)+configurationProfileSummary_applicationId = Lens.lens (\ConfigurationProfileSummary' {applicationId} -> applicationId) (\s@ConfigurationProfileSummary' {} a -> s {applicationId = a} :: ConfigurationProfileSummary)++-- | The ID of the configuration profile.+configurationProfileSummary_id :: Lens.Lens' ConfigurationProfileSummary (Prelude.Maybe Prelude.Text)+configurationProfileSummary_id = Lens.lens (\ConfigurationProfileSummary' {id} -> id) (\s@ConfigurationProfileSummary' {} a -> s {id = a} :: ConfigurationProfileSummary)++-- | The URI location of the configuration.+configurationProfileSummary_locationUri :: Lens.Lens' ConfigurationProfileSummary (Prelude.Maybe Prelude.Text)+configurationProfileSummary_locationUri = Lens.lens (\ConfigurationProfileSummary' {locationUri} -> locationUri) (\s@ConfigurationProfileSummary' {} a -> s {locationUri = a} :: ConfigurationProfileSummary)++-- | The name of the configuration profile.+configurationProfileSummary_name :: Lens.Lens' ConfigurationProfileSummary (Prelude.Maybe Prelude.Text)+configurationProfileSummary_name = Lens.lens (\ConfigurationProfileSummary' {name} -> name) (\s@ConfigurationProfileSummary' {} a -> s {name = a} :: ConfigurationProfileSummary)++-- | The type of configurations contained in the profile. AppConfig supports+-- @feature flags@ and @freeform@ configurations. We recommend you create+-- feature flag configurations to enable or disable new features and+-- freeform configurations to distribute configurations to an application.+-- When calling this API, enter one of the following values for @Type@:+--+-- @AWS.AppConfig.FeatureFlags@+--+-- @AWS.Freeform@+configurationProfileSummary_type :: Lens.Lens' ConfigurationProfileSummary (Prelude.Maybe Prelude.Text)+configurationProfileSummary_type = Lens.lens (\ConfigurationProfileSummary' {type'} -> type') (\s@ConfigurationProfileSummary' {} a -> s {type' = a} :: ConfigurationProfileSummary)++-- | The types of validators in the configuration profile.+configurationProfileSummary_validatorTypes :: Lens.Lens' ConfigurationProfileSummary (Prelude.Maybe [ValidatorType])+configurationProfileSummary_validatorTypes = Lens.lens (\ConfigurationProfileSummary' {validatorTypes} -> validatorTypes) (\s@ConfigurationProfileSummary' {} a -> s {validatorTypes = a} :: ConfigurationProfileSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ConfigurationProfileSummary where+  parseJSON =+    Data.withObject+      "ConfigurationProfileSummary"+      ( \x ->+          ConfigurationProfileSummary'+            Prelude.<$> (x Data..:? "ApplicationId")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "LocationUri")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Type")+            Prelude.<*> ( x+                            Data..:? "ValidatorTypes"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable ConfigurationProfileSummary where+  hashWithSalt _salt ConfigurationProfileSummary' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` locationUri+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` validatorTypes++instance Prelude.NFData ConfigurationProfileSummary where+  rnf ConfigurationProfileSummary' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf locationUri+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf validatorTypes
+ gen/Amazonka/AppConfig/Types/Deployment.hs view
@@ -0,0 +1,311 @@+{-# 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.AppConfig.Types.Deployment+-- 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.AppConfig.Types.Deployment where++import Amazonka.AppConfig.Types.AppliedExtension+import Amazonka.AppConfig.Types.DeploymentEvent+import Amazonka.AppConfig.Types.DeploymentState+import Amazonka.AppConfig.Types.GrowthType+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++-- | /See:/ 'newDeployment' smart constructor.+data Deployment = Deployment'+  { -- | The ID of the application that was deployed.+    applicationId :: Prelude.Maybe Prelude.Text,+    -- | A list of extensions that were processed as part of the deployment. The+    -- extensions that were previously associated to the configuration profile,+    -- environment, or the application when @StartDeployment@ was called.+    appliedExtensions :: Prelude.Maybe [AppliedExtension],+    -- | The time the deployment completed.+    completedAt :: Prelude.Maybe Data.ISO8601,+    -- | Information about the source location of the configuration.+    configurationLocationUri :: Prelude.Maybe Prelude.Text,+    -- | The name of the configuration.+    configurationName :: Prelude.Maybe Prelude.Text,+    -- | The ID of the configuration profile that was deployed.+    configurationProfileId :: Prelude.Maybe Prelude.Text,+    -- | The configuration version that was deployed.+    configurationVersion :: Prelude.Maybe Prelude.Text,+    -- | Total amount of time the deployment lasted.+    deploymentDurationInMinutes :: Prelude.Maybe Prelude.Natural,+    -- | The sequence number of the deployment.+    deploymentNumber :: Prelude.Maybe Prelude.Int,+    -- | The ID of the deployment strategy that was deployed.+    deploymentStrategyId :: Prelude.Maybe Prelude.Text,+    -- | The description of the deployment.+    description :: Prelude.Maybe Prelude.Text,+    -- | The ID of the environment that was deployed.+    environmentId :: Prelude.Maybe Prelude.Text,+    -- | A list containing all events related to a deployment. The most recent+    -- events are displayed first.+    eventLog :: Prelude.Maybe [DeploymentEvent],+    -- | The amount of time that AppConfig monitored for alarms before+    -- considering the deployment to be complete and no longer eligible for+    -- automatic rollback.+    finalBakeTimeInMinutes :: Prelude.Maybe Prelude.Natural,+    -- | The percentage of targets to receive a deployed configuration during+    -- each interval.+    growthFactor :: Prelude.Maybe Prelude.Double,+    -- | The algorithm used to define how percentage grew over time.+    growthType :: Prelude.Maybe GrowthType,+    -- | The percentage of targets for which the deployment is available.+    percentageComplete :: Prelude.Maybe Prelude.Double,+    -- | The time the deployment started.+    startedAt :: Prelude.Maybe Data.ISO8601,+    -- | The state of the deployment.+    state :: Prelude.Maybe DeploymentState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Deployment' 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:+--+-- 'applicationId', 'deployment_applicationId' - The ID of the application that was deployed.+--+-- 'appliedExtensions', 'deployment_appliedExtensions' - A list of extensions that were processed as part of the deployment. The+-- extensions that were previously associated to the configuration profile,+-- environment, or the application when @StartDeployment@ was called.+--+-- 'completedAt', 'deployment_completedAt' - The time the deployment completed.+--+-- 'configurationLocationUri', 'deployment_configurationLocationUri' - Information about the source location of the configuration.+--+-- 'configurationName', 'deployment_configurationName' - The name of the configuration.+--+-- 'configurationProfileId', 'deployment_configurationProfileId' - The ID of the configuration profile that was deployed.+--+-- 'configurationVersion', 'deployment_configurationVersion' - The configuration version that was deployed.+--+-- 'deploymentDurationInMinutes', 'deployment_deploymentDurationInMinutes' - Total amount of time the deployment lasted.+--+-- 'deploymentNumber', 'deployment_deploymentNumber' - The sequence number of the deployment.+--+-- 'deploymentStrategyId', 'deployment_deploymentStrategyId' - The ID of the deployment strategy that was deployed.+--+-- 'description', 'deployment_description' - The description of the deployment.+--+-- 'environmentId', 'deployment_environmentId' - The ID of the environment that was deployed.+--+-- 'eventLog', 'deployment_eventLog' - A list containing all events related to a deployment. The most recent+-- events are displayed first.+--+-- 'finalBakeTimeInMinutes', 'deployment_finalBakeTimeInMinutes' - The amount of time that AppConfig monitored for alarms before+-- considering the deployment to be complete and no longer eligible for+-- automatic rollback.+--+-- 'growthFactor', 'deployment_growthFactor' - The percentage of targets to receive a deployed configuration during+-- each interval.+--+-- 'growthType', 'deployment_growthType' - The algorithm used to define how percentage grew over time.+--+-- 'percentageComplete', 'deployment_percentageComplete' - The percentage of targets for which the deployment is available.+--+-- 'startedAt', 'deployment_startedAt' - The time the deployment started.+--+-- 'state', 'deployment_state' - The state of the deployment.+newDeployment ::+  Deployment+newDeployment =+  Deployment'+    { applicationId = Prelude.Nothing,+      appliedExtensions = Prelude.Nothing,+      completedAt = Prelude.Nothing,+      configurationLocationUri = Prelude.Nothing,+      configurationName = Prelude.Nothing,+      configurationProfileId = Prelude.Nothing,+      configurationVersion = Prelude.Nothing,+      deploymentDurationInMinutes = Prelude.Nothing,+      deploymentNumber = Prelude.Nothing,+      deploymentStrategyId = Prelude.Nothing,+      description = Prelude.Nothing,+      environmentId = Prelude.Nothing,+      eventLog = Prelude.Nothing,+      finalBakeTimeInMinutes = Prelude.Nothing,+      growthFactor = Prelude.Nothing,+      growthType = Prelude.Nothing,+      percentageComplete = Prelude.Nothing,+      startedAt = Prelude.Nothing,+      state = Prelude.Nothing+    }++-- | The ID of the application that was deployed.+deployment_applicationId :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_applicationId = Lens.lens (\Deployment' {applicationId} -> applicationId) (\s@Deployment' {} a -> s {applicationId = a} :: Deployment)++-- | A list of extensions that were processed as part of the deployment. The+-- extensions that were previously associated to the configuration profile,+-- environment, or the application when @StartDeployment@ was called.+deployment_appliedExtensions :: Lens.Lens' Deployment (Prelude.Maybe [AppliedExtension])+deployment_appliedExtensions = Lens.lens (\Deployment' {appliedExtensions} -> appliedExtensions) (\s@Deployment' {} a -> s {appliedExtensions = a} :: Deployment) Prelude.. Lens.mapping Lens.coerced++-- | The time the deployment completed.+deployment_completedAt :: Lens.Lens' Deployment (Prelude.Maybe Prelude.UTCTime)+deployment_completedAt = Lens.lens (\Deployment' {completedAt} -> completedAt) (\s@Deployment' {} a -> s {completedAt = a} :: Deployment) Prelude.. Lens.mapping Data._Time++-- | Information about the source location of the configuration.+deployment_configurationLocationUri :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_configurationLocationUri = Lens.lens (\Deployment' {configurationLocationUri} -> configurationLocationUri) (\s@Deployment' {} a -> s {configurationLocationUri = a} :: Deployment)++-- | The name of the configuration.+deployment_configurationName :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_configurationName = Lens.lens (\Deployment' {configurationName} -> configurationName) (\s@Deployment' {} a -> s {configurationName = a} :: Deployment)++-- | The ID of the configuration profile that was deployed.+deployment_configurationProfileId :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_configurationProfileId = Lens.lens (\Deployment' {configurationProfileId} -> configurationProfileId) (\s@Deployment' {} a -> s {configurationProfileId = a} :: Deployment)++-- | The configuration version that was deployed.+deployment_configurationVersion :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_configurationVersion = Lens.lens (\Deployment' {configurationVersion} -> configurationVersion) (\s@Deployment' {} a -> s {configurationVersion = a} :: Deployment)++-- | Total amount of time the deployment lasted.+deployment_deploymentDurationInMinutes :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Natural)+deployment_deploymentDurationInMinutes = Lens.lens (\Deployment' {deploymentDurationInMinutes} -> deploymentDurationInMinutes) (\s@Deployment' {} a -> s {deploymentDurationInMinutes = a} :: Deployment)++-- | The sequence number of the deployment.+deployment_deploymentNumber :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Int)+deployment_deploymentNumber = Lens.lens (\Deployment' {deploymentNumber} -> deploymentNumber) (\s@Deployment' {} a -> s {deploymentNumber = a} :: Deployment)++-- | The ID of the deployment strategy that was deployed.+deployment_deploymentStrategyId :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_deploymentStrategyId = Lens.lens (\Deployment' {deploymentStrategyId} -> deploymentStrategyId) (\s@Deployment' {} a -> s {deploymentStrategyId = a} :: Deployment)++-- | The description of the deployment.+deployment_description :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_description = Lens.lens (\Deployment' {description} -> description) (\s@Deployment' {} a -> s {description = a} :: Deployment)++-- | The ID of the environment that was deployed.+deployment_environmentId :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_environmentId = Lens.lens (\Deployment' {environmentId} -> environmentId) (\s@Deployment' {} a -> s {environmentId = a} :: Deployment)++-- | A list containing all events related to a deployment. The most recent+-- events are displayed first.+deployment_eventLog :: Lens.Lens' Deployment (Prelude.Maybe [DeploymentEvent])+deployment_eventLog = Lens.lens (\Deployment' {eventLog} -> eventLog) (\s@Deployment' {} a -> s {eventLog = a} :: Deployment) Prelude.. Lens.mapping Lens.coerced++-- | The amount of time that AppConfig monitored for alarms before+-- considering the deployment to be complete and no longer eligible for+-- automatic rollback.+deployment_finalBakeTimeInMinutes :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Natural)+deployment_finalBakeTimeInMinutes = Lens.lens (\Deployment' {finalBakeTimeInMinutes} -> finalBakeTimeInMinutes) (\s@Deployment' {} a -> s {finalBakeTimeInMinutes = a} :: Deployment)++-- | The percentage of targets to receive a deployed configuration during+-- each interval.+deployment_growthFactor :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Double)+deployment_growthFactor = Lens.lens (\Deployment' {growthFactor} -> growthFactor) (\s@Deployment' {} a -> s {growthFactor = a} :: Deployment)++-- | The algorithm used to define how percentage grew over time.+deployment_growthType :: Lens.Lens' Deployment (Prelude.Maybe GrowthType)+deployment_growthType = Lens.lens (\Deployment' {growthType} -> growthType) (\s@Deployment' {} a -> s {growthType = a} :: Deployment)++-- | The percentage of targets for which the deployment is available.+deployment_percentageComplete :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Double)+deployment_percentageComplete = Lens.lens (\Deployment' {percentageComplete} -> percentageComplete) (\s@Deployment' {} a -> s {percentageComplete = a} :: Deployment)++-- | The time the deployment started.+deployment_startedAt :: Lens.Lens' Deployment (Prelude.Maybe Prelude.UTCTime)+deployment_startedAt = Lens.lens (\Deployment' {startedAt} -> startedAt) (\s@Deployment' {} a -> s {startedAt = a} :: Deployment) Prelude.. Lens.mapping Data._Time++-- | The state of the deployment.+deployment_state :: Lens.Lens' Deployment (Prelude.Maybe DeploymentState)+deployment_state = Lens.lens (\Deployment' {state} -> state) (\s@Deployment' {} a -> s {state = a} :: Deployment)++instance Data.FromJSON Deployment where+  parseJSON =+    Data.withObject+      "Deployment"+      ( \x ->+          Deployment'+            Prelude.<$> (x Data..:? "ApplicationId")+            Prelude.<*> ( x+                            Data..:? "AppliedExtensions"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "CompletedAt")+            Prelude.<*> (x Data..:? "ConfigurationLocationUri")+            Prelude.<*> (x Data..:? "ConfigurationName")+            Prelude.<*> (x Data..:? "ConfigurationProfileId")+            Prelude.<*> (x Data..:? "ConfigurationVersion")+            Prelude.<*> (x Data..:? "DeploymentDurationInMinutes")+            Prelude.<*> (x Data..:? "DeploymentNumber")+            Prelude.<*> (x Data..:? "DeploymentStrategyId")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "EnvironmentId")+            Prelude.<*> (x Data..:? "EventLog" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "FinalBakeTimeInMinutes")+            Prelude.<*> (x Data..:? "GrowthFactor")+            Prelude.<*> (x Data..:? "GrowthType")+            Prelude.<*> (x Data..:? "PercentageComplete")+            Prelude.<*> (x Data..:? "StartedAt")+            Prelude.<*> (x Data..:? "State")+      )++instance Prelude.Hashable Deployment where+  hashWithSalt _salt Deployment' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` appliedExtensions+      `Prelude.hashWithSalt` completedAt+      `Prelude.hashWithSalt` configurationLocationUri+      `Prelude.hashWithSalt` configurationName+      `Prelude.hashWithSalt` configurationProfileId+      `Prelude.hashWithSalt` configurationVersion+      `Prelude.hashWithSalt` deploymentDurationInMinutes+      `Prelude.hashWithSalt` deploymentNumber+      `Prelude.hashWithSalt` deploymentStrategyId+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` environmentId+      `Prelude.hashWithSalt` eventLog+      `Prelude.hashWithSalt` finalBakeTimeInMinutes+      `Prelude.hashWithSalt` growthFactor+      `Prelude.hashWithSalt` growthType+      `Prelude.hashWithSalt` percentageComplete+      `Prelude.hashWithSalt` startedAt+      `Prelude.hashWithSalt` state++instance Prelude.NFData Deployment where+  rnf Deployment' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf appliedExtensions+      `Prelude.seq` Prelude.rnf completedAt+      `Prelude.seq` Prelude.rnf configurationLocationUri+      `Prelude.seq` Prelude.rnf configurationName+      `Prelude.seq` Prelude.rnf configurationProfileId+      `Prelude.seq` Prelude.rnf configurationVersion+      `Prelude.seq` Prelude.rnf deploymentDurationInMinutes+      `Prelude.seq` Prelude.rnf deploymentNumber+      `Prelude.seq` Prelude.rnf deploymentStrategyId+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf environmentId+      `Prelude.seq` Prelude.rnf eventLog+      `Prelude.seq` Prelude.rnf finalBakeTimeInMinutes+      `Prelude.seq` Prelude.rnf growthFactor+      `Prelude.seq` Prelude.rnf growthType+      `Prelude.seq` Prelude.rnf percentageComplete+      `Prelude.seq` Prelude.rnf startedAt+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/AppConfig/Types/DeploymentEvent.hs view
@@ -0,0 +1,148 @@+{-# 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.AppConfig.Types.DeploymentEvent+-- 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.AppConfig.Types.DeploymentEvent where++import Amazonka.AppConfig.Types.ActionInvocation+import Amazonka.AppConfig.Types.DeploymentEventType+import Amazonka.AppConfig.Types.TriggeredBy+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++-- | An object that describes a deployment event.+--+-- /See:/ 'newDeploymentEvent' smart constructor.+data DeploymentEvent = DeploymentEvent'+  { -- | The list of extensions that were invoked as part of the deployment.+    actionInvocations :: Prelude.Maybe [ActionInvocation],+    -- | A description of the deployment event. Descriptions include, but are not+    -- limited to, the user account or the Amazon CloudWatch alarm ARN that+    -- initiated a rollback, the percentage of hosts that received the+    -- deployment, or in the case of an internal error, a recommendation to+    -- attempt a new deployment.+    description :: Prelude.Maybe Prelude.Text,+    -- | The type of deployment event. Deployment event types include the start,+    -- stop, or completion of a deployment; a percentage update; the start or+    -- stop of a bake period; and the start or completion of a rollback.+    eventType :: Prelude.Maybe DeploymentEventType,+    -- | The date and time the event occurred.+    occurredAt :: Prelude.Maybe Data.ISO8601,+    -- | The entity that triggered the deployment event. Events can be triggered+    -- by a user, AppConfig, an Amazon CloudWatch alarm, or an internal error.+    triggeredBy :: Prelude.Maybe TriggeredBy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeploymentEvent' 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:+--+-- 'actionInvocations', 'deploymentEvent_actionInvocations' - The list of extensions that were invoked as part of the deployment.+--+-- 'description', 'deploymentEvent_description' - A description of the deployment event. Descriptions include, but are not+-- limited to, the user account or the Amazon CloudWatch alarm ARN that+-- initiated a rollback, the percentage of hosts that received the+-- deployment, or in the case of an internal error, a recommendation to+-- attempt a new deployment.+--+-- 'eventType', 'deploymentEvent_eventType' - The type of deployment event. Deployment event types include the start,+-- stop, or completion of a deployment; a percentage update; the start or+-- stop of a bake period; and the start or completion of a rollback.+--+-- 'occurredAt', 'deploymentEvent_occurredAt' - The date and time the event occurred.+--+-- 'triggeredBy', 'deploymentEvent_triggeredBy' - The entity that triggered the deployment event. Events can be triggered+-- by a user, AppConfig, an Amazon CloudWatch alarm, or an internal error.+newDeploymentEvent ::+  DeploymentEvent+newDeploymentEvent =+  DeploymentEvent'+    { actionInvocations =+        Prelude.Nothing,+      description = Prelude.Nothing,+      eventType = Prelude.Nothing,+      occurredAt = Prelude.Nothing,+      triggeredBy = Prelude.Nothing+    }++-- | The list of extensions that were invoked as part of the deployment.+deploymentEvent_actionInvocations :: Lens.Lens' DeploymentEvent (Prelude.Maybe [ActionInvocation])+deploymentEvent_actionInvocations = Lens.lens (\DeploymentEvent' {actionInvocations} -> actionInvocations) (\s@DeploymentEvent' {} a -> s {actionInvocations = a} :: DeploymentEvent) Prelude.. Lens.mapping Lens.coerced++-- | A description of the deployment event. Descriptions include, but are not+-- limited to, the user account or the Amazon CloudWatch alarm ARN that+-- initiated a rollback, the percentage of hosts that received the+-- deployment, or in the case of an internal error, a recommendation to+-- attempt a new deployment.+deploymentEvent_description :: Lens.Lens' DeploymentEvent (Prelude.Maybe Prelude.Text)+deploymentEvent_description = Lens.lens (\DeploymentEvent' {description} -> description) (\s@DeploymentEvent' {} a -> s {description = a} :: DeploymentEvent)++-- | The type of deployment event. Deployment event types include the start,+-- stop, or completion of a deployment; a percentage update; the start or+-- stop of a bake period; and the start or completion of a rollback.+deploymentEvent_eventType :: Lens.Lens' DeploymentEvent (Prelude.Maybe DeploymentEventType)+deploymentEvent_eventType = Lens.lens (\DeploymentEvent' {eventType} -> eventType) (\s@DeploymentEvent' {} a -> s {eventType = a} :: DeploymentEvent)++-- | The date and time the event occurred.+deploymentEvent_occurredAt :: Lens.Lens' DeploymentEvent (Prelude.Maybe Prelude.UTCTime)+deploymentEvent_occurredAt = Lens.lens (\DeploymentEvent' {occurredAt} -> occurredAt) (\s@DeploymentEvent' {} a -> s {occurredAt = a} :: DeploymentEvent) Prelude.. Lens.mapping Data._Time++-- | The entity that triggered the deployment event. Events can be triggered+-- by a user, AppConfig, an Amazon CloudWatch alarm, or an internal error.+deploymentEvent_triggeredBy :: Lens.Lens' DeploymentEvent (Prelude.Maybe TriggeredBy)+deploymentEvent_triggeredBy = Lens.lens (\DeploymentEvent' {triggeredBy} -> triggeredBy) (\s@DeploymentEvent' {} a -> s {triggeredBy = a} :: DeploymentEvent)++instance Data.FromJSON DeploymentEvent where+  parseJSON =+    Data.withObject+      "DeploymentEvent"+      ( \x ->+          DeploymentEvent'+            Prelude.<$> ( x+                            Data..:? "ActionInvocations"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "EventType")+            Prelude.<*> (x Data..:? "OccurredAt")+            Prelude.<*> (x Data..:? "TriggeredBy")+      )++instance Prelude.Hashable DeploymentEvent where+  hashWithSalt _salt DeploymentEvent' {..} =+    _salt+      `Prelude.hashWithSalt` actionInvocations+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` eventType+      `Prelude.hashWithSalt` occurredAt+      `Prelude.hashWithSalt` triggeredBy++instance Prelude.NFData DeploymentEvent where+  rnf DeploymentEvent' {..} =+    Prelude.rnf actionInvocations+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf eventType+      `Prelude.seq` Prelude.rnf occurredAt+      `Prelude.seq` Prelude.rnf triggeredBy
+ gen/Amazonka/AppConfig/Types/DeploymentEventType.hs view
@@ -0,0 +1,91 @@+{-# 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.AppConfig.Types.DeploymentEventType+-- 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.AppConfig.Types.DeploymentEventType+  ( DeploymentEventType+      ( ..,+        DeploymentEventType_BAKE_TIME_STARTED,+        DeploymentEventType_DEPLOYMENT_COMPLETED,+        DeploymentEventType_DEPLOYMENT_STARTED,+        DeploymentEventType_PERCENTAGE_UPDATED,+        DeploymentEventType_ROLLBACK_COMPLETED,+        DeploymentEventType_ROLLBACK_STARTED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DeploymentEventType = DeploymentEventType'+  { fromDeploymentEventType ::+      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 DeploymentEventType_BAKE_TIME_STARTED :: DeploymentEventType+pattern DeploymentEventType_BAKE_TIME_STARTED = DeploymentEventType' "BAKE_TIME_STARTED"++pattern DeploymentEventType_DEPLOYMENT_COMPLETED :: DeploymentEventType+pattern DeploymentEventType_DEPLOYMENT_COMPLETED = DeploymentEventType' "DEPLOYMENT_COMPLETED"++pattern DeploymentEventType_DEPLOYMENT_STARTED :: DeploymentEventType+pattern DeploymentEventType_DEPLOYMENT_STARTED = DeploymentEventType' "DEPLOYMENT_STARTED"++pattern DeploymentEventType_PERCENTAGE_UPDATED :: DeploymentEventType+pattern DeploymentEventType_PERCENTAGE_UPDATED = DeploymentEventType' "PERCENTAGE_UPDATED"++pattern DeploymentEventType_ROLLBACK_COMPLETED :: DeploymentEventType+pattern DeploymentEventType_ROLLBACK_COMPLETED = DeploymentEventType' "ROLLBACK_COMPLETED"++pattern DeploymentEventType_ROLLBACK_STARTED :: DeploymentEventType+pattern DeploymentEventType_ROLLBACK_STARTED = DeploymentEventType' "ROLLBACK_STARTED"++{-# COMPLETE+  DeploymentEventType_BAKE_TIME_STARTED,+  DeploymentEventType_DEPLOYMENT_COMPLETED,+  DeploymentEventType_DEPLOYMENT_STARTED,+  DeploymentEventType_PERCENTAGE_UPDATED,+  DeploymentEventType_ROLLBACK_COMPLETED,+  DeploymentEventType_ROLLBACK_STARTED,+  DeploymentEventType'+  #-}
+ gen/Amazonka/AppConfig/Types/DeploymentState.hs view
@@ -0,0 +1,91 @@+{-# 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.AppConfig.Types.DeploymentState+-- 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.AppConfig.Types.DeploymentState+  ( DeploymentState+      ( ..,+        DeploymentState_BAKING,+        DeploymentState_COMPLETE,+        DeploymentState_DEPLOYING,+        DeploymentState_ROLLED_BACK,+        DeploymentState_ROLLING_BACK,+        DeploymentState_VALIDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DeploymentState = DeploymentState'+  { fromDeploymentState ::+      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 DeploymentState_BAKING :: DeploymentState+pattern DeploymentState_BAKING = DeploymentState' "BAKING"++pattern DeploymentState_COMPLETE :: DeploymentState+pattern DeploymentState_COMPLETE = DeploymentState' "COMPLETE"++pattern DeploymentState_DEPLOYING :: DeploymentState+pattern DeploymentState_DEPLOYING = DeploymentState' "DEPLOYING"++pattern DeploymentState_ROLLED_BACK :: DeploymentState+pattern DeploymentState_ROLLED_BACK = DeploymentState' "ROLLED_BACK"++pattern DeploymentState_ROLLING_BACK :: DeploymentState+pattern DeploymentState_ROLLING_BACK = DeploymentState' "ROLLING_BACK"++pattern DeploymentState_VALIDATING :: DeploymentState+pattern DeploymentState_VALIDATING = DeploymentState' "VALIDATING"++{-# COMPLETE+  DeploymentState_BAKING,+  DeploymentState_COMPLETE,+  DeploymentState_DEPLOYING,+  DeploymentState_ROLLED_BACK,+  DeploymentState_ROLLING_BACK,+  DeploymentState_VALIDATING,+  DeploymentState'+  #-}
+ gen/Amazonka/AppConfig/Types/DeploymentStrategy.hs view
@@ -0,0 +1,166 @@+{-# 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.AppConfig.Types.DeploymentStrategy+-- 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.AppConfig.Types.DeploymentStrategy where++import Amazonka.AppConfig.Types.GrowthType+import Amazonka.AppConfig.Types.ReplicateTo+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++-- | /See:/ 'newDeploymentStrategy' smart constructor.+data DeploymentStrategy = DeploymentStrategy'+  { -- | Total amount of time the deployment lasted.+    deploymentDurationInMinutes :: Prelude.Maybe Prelude.Natural,+    -- | The description of the deployment strategy.+    description :: Prelude.Maybe Prelude.Text,+    -- | The amount of time that AppConfig monitored for alarms before+    -- considering the deployment to be complete and no longer eligible for+    -- automatic rollback.+    finalBakeTimeInMinutes :: Prelude.Maybe Prelude.Natural,+    -- | The percentage of targets that received a deployed configuration during+    -- each interval.+    growthFactor :: Prelude.Maybe Prelude.Double,+    -- | The algorithm used to define how percentage grew over time.+    growthType :: Prelude.Maybe GrowthType,+    -- | The deployment strategy ID.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the deployment strategy.+    name :: Prelude.Maybe Prelude.Text,+    -- | Save the deployment strategy to a Systems Manager (SSM) document.+    replicateTo :: Prelude.Maybe ReplicateTo+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeploymentStrategy' 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:+--+-- 'deploymentDurationInMinutes', 'deploymentStrategy_deploymentDurationInMinutes' - Total amount of time the deployment lasted.+--+-- 'description', 'deploymentStrategy_description' - The description of the deployment strategy.+--+-- 'finalBakeTimeInMinutes', 'deploymentStrategy_finalBakeTimeInMinutes' - The amount of time that AppConfig monitored for alarms before+-- considering the deployment to be complete and no longer eligible for+-- automatic rollback.+--+-- 'growthFactor', 'deploymentStrategy_growthFactor' - The percentage of targets that received a deployed configuration during+-- each interval.+--+-- 'growthType', 'deploymentStrategy_growthType' - The algorithm used to define how percentage grew over time.+--+-- 'id', 'deploymentStrategy_id' - The deployment strategy ID.+--+-- 'name', 'deploymentStrategy_name' - The name of the deployment strategy.+--+-- 'replicateTo', 'deploymentStrategy_replicateTo' - Save the deployment strategy to a Systems Manager (SSM) document.+newDeploymentStrategy ::+  DeploymentStrategy+newDeploymentStrategy =+  DeploymentStrategy'+    { deploymentDurationInMinutes =+        Prelude.Nothing,+      description = Prelude.Nothing,+      finalBakeTimeInMinutes = Prelude.Nothing,+      growthFactor = Prelude.Nothing,+      growthType = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      replicateTo = Prelude.Nothing+    }++-- | Total amount of time the deployment lasted.+deploymentStrategy_deploymentDurationInMinutes :: Lens.Lens' DeploymentStrategy (Prelude.Maybe Prelude.Natural)+deploymentStrategy_deploymentDurationInMinutes = Lens.lens (\DeploymentStrategy' {deploymentDurationInMinutes} -> deploymentDurationInMinutes) (\s@DeploymentStrategy' {} a -> s {deploymentDurationInMinutes = a} :: DeploymentStrategy)++-- | The description of the deployment strategy.+deploymentStrategy_description :: Lens.Lens' DeploymentStrategy (Prelude.Maybe Prelude.Text)+deploymentStrategy_description = Lens.lens (\DeploymentStrategy' {description} -> description) (\s@DeploymentStrategy' {} a -> s {description = a} :: DeploymentStrategy)++-- | The amount of time that AppConfig monitored for alarms before+-- considering the deployment to be complete and no longer eligible for+-- automatic rollback.+deploymentStrategy_finalBakeTimeInMinutes :: Lens.Lens' DeploymentStrategy (Prelude.Maybe Prelude.Natural)+deploymentStrategy_finalBakeTimeInMinutes = Lens.lens (\DeploymentStrategy' {finalBakeTimeInMinutes} -> finalBakeTimeInMinutes) (\s@DeploymentStrategy' {} a -> s {finalBakeTimeInMinutes = a} :: DeploymentStrategy)++-- | The percentage of targets that received a deployed configuration during+-- each interval.+deploymentStrategy_growthFactor :: Lens.Lens' DeploymentStrategy (Prelude.Maybe Prelude.Double)+deploymentStrategy_growthFactor = Lens.lens (\DeploymentStrategy' {growthFactor} -> growthFactor) (\s@DeploymentStrategy' {} a -> s {growthFactor = a} :: DeploymentStrategy)++-- | The algorithm used to define how percentage grew over time.+deploymentStrategy_growthType :: Lens.Lens' DeploymentStrategy (Prelude.Maybe GrowthType)+deploymentStrategy_growthType = Lens.lens (\DeploymentStrategy' {growthType} -> growthType) (\s@DeploymentStrategy' {} a -> s {growthType = a} :: DeploymentStrategy)++-- | The deployment strategy ID.+deploymentStrategy_id :: Lens.Lens' DeploymentStrategy (Prelude.Maybe Prelude.Text)+deploymentStrategy_id = Lens.lens (\DeploymentStrategy' {id} -> id) (\s@DeploymentStrategy' {} a -> s {id = a} :: DeploymentStrategy)++-- | The name of the deployment strategy.+deploymentStrategy_name :: Lens.Lens' DeploymentStrategy (Prelude.Maybe Prelude.Text)+deploymentStrategy_name = Lens.lens (\DeploymentStrategy' {name} -> name) (\s@DeploymentStrategy' {} a -> s {name = a} :: DeploymentStrategy)++-- | Save the deployment strategy to a Systems Manager (SSM) document.+deploymentStrategy_replicateTo :: Lens.Lens' DeploymentStrategy (Prelude.Maybe ReplicateTo)+deploymentStrategy_replicateTo = Lens.lens (\DeploymentStrategy' {replicateTo} -> replicateTo) (\s@DeploymentStrategy' {} a -> s {replicateTo = a} :: DeploymentStrategy)++instance Data.FromJSON DeploymentStrategy where+  parseJSON =+    Data.withObject+      "DeploymentStrategy"+      ( \x ->+          DeploymentStrategy'+            Prelude.<$> (x Data..:? "DeploymentDurationInMinutes")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "FinalBakeTimeInMinutes")+            Prelude.<*> (x Data..:? "GrowthFactor")+            Prelude.<*> (x Data..:? "GrowthType")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "ReplicateTo")+      )++instance Prelude.Hashable DeploymentStrategy where+  hashWithSalt _salt DeploymentStrategy' {..} =+    _salt+      `Prelude.hashWithSalt` deploymentDurationInMinutes+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` finalBakeTimeInMinutes+      `Prelude.hashWithSalt` growthFactor+      `Prelude.hashWithSalt` growthType+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` replicateTo++instance Prelude.NFData DeploymentStrategy where+  rnf DeploymentStrategy' {..} =+    Prelude.rnf deploymentDurationInMinutes+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf finalBakeTimeInMinutes+      `Prelude.seq` Prelude.rnf growthFactor+      `Prelude.seq` Prelude.rnf growthType+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf replicateTo
+ gen/Amazonka/AppConfig/Types/DeploymentSummary.hs view
@@ -0,0 +1,203 @@+{-# 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.AppConfig.Types.DeploymentSummary+-- 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.AppConfig.Types.DeploymentSummary where++import Amazonka.AppConfig.Types.DeploymentState+import Amazonka.AppConfig.Types.GrowthType+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++-- | Information about the deployment.+--+-- /See:/ 'newDeploymentSummary' smart constructor.+data DeploymentSummary = DeploymentSummary'+  { -- | Time the deployment completed.+    completedAt :: Prelude.Maybe Data.ISO8601,+    -- | The name of the configuration.+    configurationName :: Prelude.Maybe Prelude.Text,+    -- | The version of the configuration.+    configurationVersion :: Prelude.Maybe Prelude.Text,+    -- | Total amount of time the deployment lasted.+    deploymentDurationInMinutes :: Prelude.Maybe Prelude.Natural,+    -- | The sequence number of the deployment.+    deploymentNumber :: Prelude.Maybe Prelude.Int,+    -- | The amount of time that AppConfig monitors for alarms before considering+    -- the deployment to be complete and no longer eligible for automatic+    -- rollback.+    finalBakeTimeInMinutes :: Prelude.Maybe Prelude.Natural,+    -- | The percentage of targets to receive a deployed configuration during+    -- each interval.+    growthFactor :: Prelude.Maybe Prelude.Double,+    -- | The algorithm used to define how percentage grows over time.+    growthType :: Prelude.Maybe GrowthType,+    -- | The percentage of targets for which the deployment is available.+    percentageComplete :: Prelude.Maybe Prelude.Double,+    -- | Time the deployment started.+    startedAt :: Prelude.Maybe Data.ISO8601,+    -- | The state of the deployment.+    state :: Prelude.Maybe DeploymentState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeploymentSummary' 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:+--+-- 'completedAt', 'deploymentSummary_completedAt' - Time the deployment completed.+--+-- 'configurationName', 'deploymentSummary_configurationName' - The name of the configuration.+--+-- 'configurationVersion', 'deploymentSummary_configurationVersion' - The version of the configuration.+--+-- 'deploymentDurationInMinutes', 'deploymentSummary_deploymentDurationInMinutes' - Total amount of time the deployment lasted.+--+-- 'deploymentNumber', 'deploymentSummary_deploymentNumber' - The sequence number of the deployment.+--+-- 'finalBakeTimeInMinutes', 'deploymentSummary_finalBakeTimeInMinutes' - The amount of time that AppConfig monitors for alarms before considering+-- the deployment to be complete and no longer eligible for automatic+-- rollback.+--+-- 'growthFactor', 'deploymentSummary_growthFactor' - The percentage of targets to receive a deployed configuration during+-- each interval.+--+-- 'growthType', 'deploymentSummary_growthType' - The algorithm used to define how percentage grows over time.+--+-- 'percentageComplete', 'deploymentSummary_percentageComplete' - The percentage of targets for which the deployment is available.+--+-- 'startedAt', 'deploymentSummary_startedAt' - Time the deployment started.+--+-- 'state', 'deploymentSummary_state' - The state of the deployment.+newDeploymentSummary ::+  DeploymentSummary+newDeploymentSummary =+  DeploymentSummary'+    { completedAt = Prelude.Nothing,+      configurationName = Prelude.Nothing,+      configurationVersion = Prelude.Nothing,+      deploymentDurationInMinutes = Prelude.Nothing,+      deploymentNumber = Prelude.Nothing,+      finalBakeTimeInMinutes = Prelude.Nothing,+      growthFactor = Prelude.Nothing,+      growthType = Prelude.Nothing,+      percentageComplete = Prelude.Nothing,+      startedAt = Prelude.Nothing,+      state = Prelude.Nothing+    }++-- | Time the deployment completed.+deploymentSummary_completedAt :: Lens.Lens' DeploymentSummary (Prelude.Maybe Prelude.UTCTime)+deploymentSummary_completedAt = Lens.lens (\DeploymentSummary' {completedAt} -> completedAt) (\s@DeploymentSummary' {} a -> s {completedAt = a} :: DeploymentSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the configuration.+deploymentSummary_configurationName :: Lens.Lens' DeploymentSummary (Prelude.Maybe Prelude.Text)+deploymentSummary_configurationName = Lens.lens (\DeploymentSummary' {configurationName} -> configurationName) (\s@DeploymentSummary' {} a -> s {configurationName = a} :: DeploymentSummary)++-- | The version of the configuration.+deploymentSummary_configurationVersion :: Lens.Lens' DeploymentSummary (Prelude.Maybe Prelude.Text)+deploymentSummary_configurationVersion = Lens.lens (\DeploymentSummary' {configurationVersion} -> configurationVersion) (\s@DeploymentSummary' {} a -> s {configurationVersion = a} :: DeploymentSummary)++-- | Total amount of time the deployment lasted.+deploymentSummary_deploymentDurationInMinutes :: Lens.Lens' DeploymentSummary (Prelude.Maybe Prelude.Natural)+deploymentSummary_deploymentDurationInMinutes = Lens.lens (\DeploymentSummary' {deploymentDurationInMinutes} -> deploymentDurationInMinutes) (\s@DeploymentSummary' {} a -> s {deploymentDurationInMinutes = a} :: DeploymentSummary)++-- | The sequence number of the deployment.+deploymentSummary_deploymentNumber :: Lens.Lens' DeploymentSummary (Prelude.Maybe Prelude.Int)+deploymentSummary_deploymentNumber = Lens.lens (\DeploymentSummary' {deploymentNumber} -> deploymentNumber) (\s@DeploymentSummary' {} a -> s {deploymentNumber = a} :: DeploymentSummary)++-- | The amount of time that AppConfig monitors for alarms before considering+-- the deployment to be complete and no longer eligible for automatic+-- rollback.+deploymentSummary_finalBakeTimeInMinutes :: Lens.Lens' DeploymentSummary (Prelude.Maybe Prelude.Natural)+deploymentSummary_finalBakeTimeInMinutes = Lens.lens (\DeploymentSummary' {finalBakeTimeInMinutes} -> finalBakeTimeInMinutes) (\s@DeploymentSummary' {} a -> s {finalBakeTimeInMinutes = a} :: DeploymentSummary)++-- | The percentage of targets to receive a deployed configuration during+-- each interval.+deploymentSummary_growthFactor :: Lens.Lens' DeploymentSummary (Prelude.Maybe Prelude.Double)+deploymentSummary_growthFactor = Lens.lens (\DeploymentSummary' {growthFactor} -> growthFactor) (\s@DeploymentSummary' {} a -> s {growthFactor = a} :: DeploymentSummary)++-- | The algorithm used to define how percentage grows over time.+deploymentSummary_growthType :: Lens.Lens' DeploymentSummary (Prelude.Maybe GrowthType)+deploymentSummary_growthType = Lens.lens (\DeploymentSummary' {growthType} -> growthType) (\s@DeploymentSummary' {} a -> s {growthType = a} :: DeploymentSummary)++-- | The percentage of targets for which the deployment is available.+deploymentSummary_percentageComplete :: Lens.Lens' DeploymentSummary (Prelude.Maybe Prelude.Double)+deploymentSummary_percentageComplete = Lens.lens (\DeploymentSummary' {percentageComplete} -> percentageComplete) (\s@DeploymentSummary' {} a -> s {percentageComplete = a} :: DeploymentSummary)++-- | Time the deployment started.+deploymentSummary_startedAt :: Lens.Lens' DeploymentSummary (Prelude.Maybe Prelude.UTCTime)+deploymentSummary_startedAt = Lens.lens (\DeploymentSummary' {startedAt} -> startedAt) (\s@DeploymentSummary' {} a -> s {startedAt = a} :: DeploymentSummary) Prelude.. Lens.mapping Data._Time++-- | The state of the deployment.+deploymentSummary_state :: Lens.Lens' DeploymentSummary (Prelude.Maybe DeploymentState)+deploymentSummary_state = Lens.lens (\DeploymentSummary' {state} -> state) (\s@DeploymentSummary' {} a -> s {state = a} :: DeploymentSummary)++instance Data.FromJSON DeploymentSummary where+  parseJSON =+    Data.withObject+      "DeploymentSummary"+      ( \x ->+          DeploymentSummary'+            Prelude.<$> (x Data..:? "CompletedAt")+            Prelude.<*> (x Data..:? "ConfigurationName")+            Prelude.<*> (x Data..:? "ConfigurationVersion")+            Prelude.<*> (x Data..:? "DeploymentDurationInMinutes")+            Prelude.<*> (x Data..:? "DeploymentNumber")+            Prelude.<*> (x Data..:? "FinalBakeTimeInMinutes")+            Prelude.<*> (x Data..:? "GrowthFactor")+            Prelude.<*> (x Data..:? "GrowthType")+            Prelude.<*> (x Data..:? "PercentageComplete")+            Prelude.<*> (x Data..:? "StartedAt")+            Prelude.<*> (x Data..:? "State")+      )++instance Prelude.Hashable DeploymentSummary where+  hashWithSalt _salt DeploymentSummary' {..} =+    _salt+      `Prelude.hashWithSalt` completedAt+      `Prelude.hashWithSalt` configurationName+      `Prelude.hashWithSalt` configurationVersion+      `Prelude.hashWithSalt` deploymentDurationInMinutes+      `Prelude.hashWithSalt` deploymentNumber+      `Prelude.hashWithSalt` finalBakeTimeInMinutes+      `Prelude.hashWithSalt` growthFactor+      `Prelude.hashWithSalt` growthType+      `Prelude.hashWithSalt` percentageComplete+      `Prelude.hashWithSalt` startedAt+      `Prelude.hashWithSalt` state++instance Prelude.NFData DeploymentSummary where+  rnf DeploymentSummary' {..} =+    Prelude.rnf completedAt+      `Prelude.seq` Prelude.rnf configurationName+      `Prelude.seq` Prelude.rnf configurationVersion+      `Prelude.seq` Prelude.rnf deploymentDurationInMinutes+      `Prelude.seq` Prelude.rnf deploymentNumber+      `Prelude.seq` Prelude.rnf finalBakeTimeInMinutes+      `Prelude.seq` Prelude.rnf growthFactor+      `Prelude.seq` Prelude.rnf growthType+      `Prelude.seq` Prelude.rnf percentageComplete+      `Prelude.seq` Prelude.rnf startedAt+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/AppConfig/Types/Environment.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.AppConfig.Types.Environment+-- 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.AppConfig.Types.Environment where++import Amazonka.AppConfig.Types.EnvironmentState+import Amazonka.AppConfig.Types.Monitor+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++-- | /See:/ 'newEnvironment' smart constructor.+data Environment = Environment'+  { -- | The application ID.+    applicationId :: Prelude.Maybe Prelude.Text,+    -- | The description of the environment.+    description :: Prelude.Maybe Prelude.Text,+    -- | The environment ID.+    id :: Prelude.Maybe Prelude.Text,+    -- | Amazon CloudWatch alarms monitored during the deployment.+    monitors :: Prelude.Maybe [Monitor],+    -- | The name of the environment.+    name :: Prelude.Maybe Prelude.Text,+    -- | The state of the environment. An environment can be in one of the+    -- following states: @READY_FOR_DEPLOYMENT@, @DEPLOYING@, @ROLLING_BACK@,+    -- or @ROLLED_BACK@+    state :: Prelude.Maybe EnvironmentState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Environment' 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:+--+-- 'applicationId', 'environment_applicationId' - The application ID.+--+-- 'description', 'environment_description' - The description of the environment.+--+-- 'id', 'environment_id' - The environment ID.+--+-- 'monitors', 'environment_monitors' - Amazon CloudWatch alarms monitored during the deployment.+--+-- 'name', 'environment_name' - The name of the environment.+--+-- 'state', 'environment_state' - The state of the environment. An environment can be in one of the+-- following states: @READY_FOR_DEPLOYMENT@, @DEPLOYING@, @ROLLING_BACK@,+-- or @ROLLED_BACK@+newEnvironment ::+  Environment+newEnvironment =+  Environment'+    { applicationId = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      monitors = Prelude.Nothing,+      name = Prelude.Nothing,+      state = Prelude.Nothing+    }++-- | The application ID.+environment_applicationId :: Lens.Lens' Environment (Prelude.Maybe Prelude.Text)+environment_applicationId = Lens.lens (\Environment' {applicationId} -> applicationId) (\s@Environment' {} a -> s {applicationId = a} :: Environment)++-- | The description of the environment.+environment_description :: Lens.Lens' Environment (Prelude.Maybe Prelude.Text)+environment_description = Lens.lens (\Environment' {description} -> description) (\s@Environment' {} a -> s {description = a} :: Environment)++-- | The environment ID.+environment_id :: Lens.Lens' Environment (Prelude.Maybe Prelude.Text)+environment_id = Lens.lens (\Environment' {id} -> id) (\s@Environment' {} a -> s {id = a} :: Environment)++-- | Amazon CloudWatch alarms monitored during the deployment.+environment_monitors :: Lens.Lens' Environment (Prelude.Maybe [Monitor])+environment_monitors = Lens.lens (\Environment' {monitors} -> monitors) (\s@Environment' {} a -> s {monitors = a} :: Environment) Prelude.. Lens.mapping Lens.coerced++-- | The name of the environment.+environment_name :: Lens.Lens' Environment (Prelude.Maybe Prelude.Text)+environment_name = Lens.lens (\Environment' {name} -> name) (\s@Environment' {} a -> s {name = a} :: Environment)++-- | The state of the environment. An environment can be in one of the+-- following states: @READY_FOR_DEPLOYMENT@, @DEPLOYING@, @ROLLING_BACK@,+-- or @ROLLED_BACK@+environment_state :: Lens.Lens' Environment (Prelude.Maybe EnvironmentState)+environment_state = Lens.lens (\Environment' {state} -> state) (\s@Environment' {} a -> s {state = a} :: Environment)++instance Data.FromJSON Environment where+  parseJSON =+    Data.withObject+      "Environment"+      ( \x ->+          Environment'+            Prelude.<$> (x Data..:? "ApplicationId")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "Monitors" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "State")+      )++instance Prelude.Hashable Environment where+  hashWithSalt _salt Environment' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` monitors+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` state++instance Prelude.NFData Environment where+  rnf Environment' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf monitors+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/AppConfig/Types/EnvironmentState.hs view
@@ -0,0 +1,81 @@+{-# 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.AppConfig.Types.EnvironmentState+-- 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.AppConfig.Types.EnvironmentState+  ( EnvironmentState+      ( ..,+        EnvironmentState_DEPLOYING,+        EnvironmentState_READY_FOR_DEPLOYMENT,+        EnvironmentState_ROLLED_BACK,+        EnvironmentState_ROLLING_BACK+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EnvironmentState = EnvironmentState'+  { fromEnvironmentState ::+      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 EnvironmentState_DEPLOYING :: EnvironmentState+pattern EnvironmentState_DEPLOYING = EnvironmentState' "DEPLOYING"++pattern EnvironmentState_READY_FOR_DEPLOYMENT :: EnvironmentState+pattern EnvironmentState_READY_FOR_DEPLOYMENT = EnvironmentState' "READY_FOR_DEPLOYMENT"++pattern EnvironmentState_ROLLED_BACK :: EnvironmentState+pattern EnvironmentState_ROLLED_BACK = EnvironmentState' "ROLLED_BACK"++pattern EnvironmentState_ROLLING_BACK :: EnvironmentState+pattern EnvironmentState_ROLLING_BACK = EnvironmentState' "ROLLING_BACK"++{-# COMPLETE+  EnvironmentState_DEPLOYING,+  EnvironmentState_READY_FOR_DEPLOYMENT,+  EnvironmentState_ROLLED_BACK,+  EnvironmentState_ROLLING_BACK,+  EnvironmentState'+  #-}
+ gen/Amazonka/AppConfig/Types/Extension.hs view
@@ -0,0 +1,154 @@+{-# 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.AppConfig.Types.Extension+-- 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.AppConfig.Types.Extension where++import Amazonka.AppConfig.Types.Action+import Amazonka.AppConfig.Types.ActionPoint+import Amazonka.AppConfig.Types.Parameter+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++-- | /See:/ 'newExtension' smart constructor.+data Extension = Extension'+  { -- | The actions defined in the extension.+    actions :: Prelude.Maybe (Prelude.HashMap ActionPoint (Prelude.NonEmpty Action)),+    -- | The system-generated Amazon Resource Name (ARN) for the extension.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Information about the extension.+    description :: Prelude.Maybe Prelude.Text,+    -- | The system-generated ID of the extension.+    id :: Prelude.Maybe Prelude.Text,+    -- | The extension name.+    name :: Prelude.Maybe Prelude.Text,+    -- | The parameters accepted by the extension. You specify parameter values+    -- when you associate the extension to an AppConfig resource by using the+    -- @CreateExtensionAssociation@ API action. For Lambda extension actions,+    -- these parameters are included in the Lambda request object.+    parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Parameter),+    -- | The extension version number.+    versionNumber :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Extension' 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:+--+-- 'actions', 'extension_actions' - The actions defined in the extension.+--+-- 'arn', 'extension_arn' - The system-generated Amazon Resource Name (ARN) for the extension.+--+-- 'description', 'extension_description' - Information about the extension.+--+-- 'id', 'extension_id' - The system-generated ID of the extension.+--+-- 'name', 'extension_name' - The extension name.+--+-- 'parameters', 'extension_parameters' - The parameters accepted by the extension. You specify parameter values+-- when you associate the extension to an AppConfig resource by using the+-- @CreateExtensionAssociation@ API action. For Lambda extension actions,+-- these parameters are included in the Lambda request object.+--+-- 'versionNumber', 'extension_versionNumber' - The extension version number.+newExtension ::+  Extension+newExtension =+  Extension'+    { actions = Prelude.Nothing,+      arn = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      parameters = Prelude.Nothing,+      versionNumber = Prelude.Nothing+    }++-- | The actions defined in the extension.+extension_actions :: Lens.Lens' Extension (Prelude.Maybe (Prelude.HashMap ActionPoint (Prelude.NonEmpty Action)))+extension_actions = Lens.lens (\Extension' {actions} -> actions) (\s@Extension' {} a -> s {actions = a} :: Extension) Prelude.. Lens.mapping Lens.coerced++-- | The system-generated Amazon Resource Name (ARN) for the extension.+extension_arn :: Lens.Lens' Extension (Prelude.Maybe Prelude.Text)+extension_arn = Lens.lens (\Extension' {arn} -> arn) (\s@Extension' {} a -> s {arn = a} :: Extension)++-- | Information about the extension.+extension_description :: Lens.Lens' Extension (Prelude.Maybe Prelude.Text)+extension_description = Lens.lens (\Extension' {description} -> description) (\s@Extension' {} a -> s {description = a} :: Extension)++-- | The system-generated ID of the extension.+extension_id :: Lens.Lens' Extension (Prelude.Maybe Prelude.Text)+extension_id = Lens.lens (\Extension' {id} -> id) (\s@Extension' {} a -> s {id = a} :: Extension)++-- | The extension name.+extension_name :: Lens.Lens' Extension (Prelude.Maybe Prelude.Text)+extension_name = Lens.lens (\Extension' {name} -> name) (\s@Extension' {} a -> s {name = a} :: Extension)++-- | The parameters accepted by the extension. You specify parameter values+-- when you associate the extension to an AppConfig resource by using the+-- @CreateExtensionAssociation@ API action. For Lambda extension actions,+-- these parameters are included in the Lambda request object.+extension_parameters :: Lens.Lens' Extension (Prelude.Maybe (Prelude.HashMap Prelude.Text Parameter))+extension_parameters = Lens.lens (\Extension' {parameters} -> parameters) (\s@Extension' {} a -> s {parameters = a} :: Extension) Prelude.. Lens.mapping Lens.coerced++-- | The extension version number.+extension_versionNumber :: Lens.Lens' Extension (Prelude.Maybe Prelude.Int)+extension_versionNumber = Lens.lens (\Extension' {versionNumber} -> versionNumber) (\s@Extension' {} a -> s {versionNumber = a} :: Extension)++instance Data.FromJSON Extension where+  parseJSON =+    Data.withObject+      "Extension"+      ( \x ->+          Extension'+            Prelude.<$> (x Data..:? "Actions" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Parameters" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "VersionNumber")+      )++instance Prelude.Hashable Extension where+  hashWithSalt _salt Extension' {..} =+    _salt+      `Prelude.hashWithSalt` actions+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` versionNumber++instance Prelude.NFData Extension where+  rnf Extension' {..} =+    Prelude.rnf actions+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf versionNumber
+ gen/Amazonka/AppConfig/Types/ExtensionAssociation.hs view
@@ -0,0 +1,133 @@+{-# 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.AppConfig.Types.ExtensionAssociation+-- 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.AppConfig.Types.ExtensionAssociation 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++-- | /See:/ 'newExtensionAssociation' smart constructor.+data ExtensionAssociation = ExtensionAssociation'+  { -- | The system-generated Amazon Resource Name (ARN) for the extension.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the extension defined in the association.+    extensionArn :: Prelude.Maybe Prelude.Text,+    -- | The version number for the extension defined in the association.+    extensionVersionNumber :: Prelude.Maybe Prelude.Int,+    -- | The system-generated ID for the association.+    id :: Prelude.Maybe Prelude.Text,+    -- | The parameter names and values defined in the association.+    parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ARNs of applications, configuration profiles, or environments+    -- defined in the association.+    resourceArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExtensionAssociation' 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', 'extensionAssociation_arn' - The system-generated Amazon Resource Name (ARN) for the extension.+--+-- 'extensionArn', 'extensionAssociation_extensionArn' - The ARN of the extension defined in the association.+--+-- 'extensionVersionNumber', 'extensionAssociation_extensionVersionNumber' - The version number for the extension defined in the association.+--+-- 'id', 'extensionAssociation_id' - The system-generated ID for the association.+--+-- 'parameters', 'extensionAssociation_parameters' - The parameter names and values defined in the association.+--+-- 'resourceArn', 'extensionAssociation_resourceArn' - The ARNs of applications, configuration profiles, or environments+-- defined in the association.+newExtensionAssociation ::+  ExtensionAssociation+newExtensionAssociation =+  ExtensionAssociation'+    { arn = Prelude.Nothing,+      extensionArn = Prelude.Nothing,+      extensionVersionNumber = Prelude.Nothing,+      id = Prelude.Nothing,+      parameters = Prelude.Nothing,+      resourceArn = Prelude.Nothing+    }++-- | The system-generated Amazon Resource Name (ARN) for the extension.+extensionAssociation_arn :: Lens.Lens' ExtensionAssociation (Prelude.Maybe Prelude.Text)+extensionAssociation_arn = Lens.lens (\ExtensionAssociation' {arn} -> arn) (\s@ExtensionAssociation' {} a -> s {arn = a} :: ExtensionAssociation)++-- | The ARN of the extension defined in the association.+extensionAssociation_extensionArn :: Lens.Lens' ExtensionAssociation (Prelude.Maybe Prelude.Text)+extensionAssociation_extensionArn = Lens.lens (\ExtensionAssociation' {extensionArn} -> extensionArn) (\s@ExtensionAssociation' {} a -> s {extensionArn = a} :: ExtensionAssociation)++-- | The version number for the extension defined in the association.+extensionAssociation_extensionVersionNumber :: Lens.Lens' ExtensionAssociation (Prelude.Maybe Prelude.Int)+extensionAssociation_extensionVersionNumber = Lens.lens (\ExtensionAssociation' {extensionVersionNumber} -> extensionVersionNumber) (\s@ExtensionAssociation' {} a -> s {extensionVersionNumber = a} :: ExtensionAssociation)++-- | The system-generated ID for the association.+extensionAssociation_id :: Lens.Lens' ExtensionAssociation (Prelude.Maybe Prelude.Text)+extensionAssociation_id = Lens.lens (\ExtensionAssociation' {id} -> id) (\s@ExtensionAssociation' {} a -> s {id = a} :: ExtensionAssociation)++-- | The parameter names and values defined in the association.+extensionAssociation_parameters :: Lens.Lens' ExtensionAssociation (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+extensionAssociation_parameters = Lens.lens (\ExtensionAssociation' {parameters} -> parameters) (\s@ExtensionAssociation' {} a -> s {parameters = a} :: ExtensionAssociation) Prelude.. Lens.mapping Lens.coerced++-- | The ARNs of applications, configuration profiles, or environments+-- defined in the association.+extensionAssociation_resourceArn :: Lens.Lens' ExtensionAssociation (Prelude.Maybe Prelude.Text)+extensionAssociation_resourceArn = Lens.lens (\ExtensionAssociation' {resourceArn} -> resourceArn) (\s@ExtensionAssociation' {} a -> s {resourceArn = a} :: ExtensionAssociation)++instance Data.FromJSON ExtensionAssociation where+  parseJSON =+    Data.withObject+      "ExtensionAssociation"+      ( \x ->+          ExtensionAssociation'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "ExtensionArn")+            Prelude.<*> (x Data..:? "ExtensionVersionNumber")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "Parameters" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "ResourceArn")+      )++instance Prelude.Hashable ExtensionAssociation where+  hashWithSalt _salt ExtensionAssociation' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` extensionArn+      `Prelude.hashWithSalt` extensionVersionNumber+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ExtensionAssociation where+  rnf ExtensionAssociation' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf extensionArn+      `Prelude.seq` Prelude.rnf extensionVersionNumber+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf resourceArn
+ gen/Amazonka/AppConfig/Types/ExtensionAssociationSummary.hs view
@@ -0,0 +1,109 @@+{-# 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.AppConfig.Types.ExtensionAssociationSummary+-- 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.AppConfig.Types.ExtensionAssociationSummary 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++-- | Information about an association between an extension and an AppConfig+-- resource such as an application, environment, or configuration profile.+-- Call @GetExtensionAssociation@ to get more information about an+-- association.+--+-- /See:/ 'newExtensionAssociationSummary' smart constructor.+data ExtensionAssociationSummary = ExtensionAssociationSummary'+  { -- | The system-generated Amazon Resource Name (ARN) for the extension.+    extensionArn :: Prelude.Maybe Prelude.Text,+    -- | The extension association ID. This ID is used to call other+    -- @ExtensionAssociation@ API actions such as @GetExtensionAssociation@ or+    -- @DeleteExtensionAssociation@.+    id :: Prelude.Maybe Prelude.Text,+    -- | The ARNs of applications, configuration profiles, or environments+    -- defined in the association.+    resourceArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExtensionAssociationSummary' 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:+--+-- 'extensionArn', 'extensionAssociationSummary_extensionArn' - The system-generated Amazon Resource Name (ARN) for the extension.+--+-- 'id', 'extensionAssociationSummary_id' - The extension association ID. This ID is used to call other+-- @ExtensionAssociation@ API actions such as @GetExtensionAssociation@ or+-- @DeleteExtensionAssociation@.+--+-- 'resourceArn', 'extensionAssociationSummary_resourceArn' - The ARNs of applications, configuration profiles, or environments+-- defined in the association.+newExtensionAssociationSummary ::+  ExtensionAssociationSummary+newExtensionAssociationSummary =+  ExtensionAssociationSummary'+    { extensionArn =+        Prelude.Nothing,+      id = Prelude.Nothing,+      resourceArn = Prelude.Nothing+    }++-- | The system-generated Amazon Resource Name (ARN) for the extension.+extensionAssociationSummary_extensionArn :: Lens.Lens' ExtensionAssociationSummary (Prelude.Maybe Prelude.Text)+extensionAssociationSummary_extensionArn = Lens.lens (\ExtensionAssociationSummary' {extensionArn} -> extensionArn) (\s@ExtensionAssociationSummary' {} a -> s {extensionArn = a} :: ExtensionAssociationSummary)++-- | The extension association ID. This ID is used to call other+-- @ExtensionAssociation@ API actions such as @GetExtensionAssociation@ or+-- @DeleteExtensionAssociation@.+extensionAssociationSummary_id :: Lens.Lens' ExtensionAssociationSummary (Prelude.Maybe Prelude.Text)+extensionAssociationSummary_id = Lens.lens (\ExtensionAssociationSummary' {id} -> id) (\s@ExtensionAssociationSummary' {} a -> s {id = a} :: ExtensionAssociationSummary)++-- | The ARNs of applications, configuration profiles, or environments+-- defined in the association.+extensionAssociationSummary_resourceArn :: Lens.Lens' ExtensionAssociationSummary (Prelude.Maybe Prelude.Text)+extensionAssociationSummary_resourceArn = Lens.lens (\ExtensionAssociationSummary' {resourceArn} -> resourceArn) (\s@ExtensionAssociationSummary' {} a -> s {resourceArn = a} :: ExtensionAssociationSummary)++instance Data.FromJSON ExtensionAssociationSummary where+  parseJSON =+    Data.withObject+      "ExtensionAssociationSummary"+      ( \x ->+          ExtensionAssociationSummary'+            Prelude.<$> (x Data..:? "ExtensionArn")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "ResourceArn")+      )++instance Prelude.Hashable ExtensionAssociationSummary where+  hashWithSalt _salt ExtensionAssociationSummary' {..} =+    _salt+      `Prelude.hashWithSalt` extensionArn+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ExtensionAssociationSummary where+  rnf ExtensionAssociationSummary' {..} =+    Prelude.rnf extensionArn+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf resourceArn
+ gen/Amazonka/AppConfig/Types/ExtensionSummary.hs view
@@ -0,0 +1,121 @@+{-# 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.AppConfig.Types.ExtensionSummary+-- 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.AppConfig.Types.ExtensionSummary 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++-- | Information about an extension. Call @GetExtension@ to get more+-- information about an extension.+--+-- /See:/ 'newExtensionSummary' smart constructor.+data ExtensionSummary = ExtensionSummary'+  { -- | The system-generated Amazon Resource Name (ARN) for the extension.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Information about the extension.+    description :: Prelude.Maybe Prelude.Text,+    -- | The system-generated ID of the extension.+    id :: Prelude.Maybe Prelude.Text,+    -- | The extension name.+    name :: Prelude.Maybe Prelude.Text,+    -- | The extension version number.+    versionNumber :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExtensionSummary' 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', 'extensionSummary_arn' - The system-generated Amazon Resource Name (ARN) for the extension.+--+-- 'description', 'extensionSummary_description' - Information about the extension.+--+-- 'id', 'extensionSummary_id' - The system-generated ID of the extension.+--+-- 'name', 'extensionSummary_name' - The extension name.+--+-- 'versionNumber', 'extensionSummary_versionNumber' - The extension version number.+newExtensionSummary ::+  ExtensionSummary+newExtensionSummary =+  ExtensionSummary'+    { arn = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      versionNumber = Prelude.Nothing+    }++-- | The system-generated Amazon Resource Name (ARN) for the extension.+extensionSummary_arn :: Lens.Lens' ExtensionSummary (Prelude.Maybe Prelude.Text)+extensionSummary_arn = Lens.lens (\ExtensionSummary' {arn} -> arn) (\s@ExtensionSummary' {} a -> s {arn = a} :: ExtensionSummary)++-- | Information about the extension.+extensionSummary_description :: Lens.Lens' ExtensionSummary (Prelude.Maybe Prelude.Text)+extensionSummary_description = Lens.lens (\ExtensionSummary' {description} -> description) (\s@ExtensionSummary' {} a -> s {description = a} :: ExtensionSummary)++-- | The system-generated ID of the extension.+extensionSummary_id :: Lens.Lens' ExtensionSummary (Prelude.Maybe Prelude.Text)+extensionSummary_id = Lens.lens (\ExtensionSummary' {id} -> id) (\s@ExtensionSummary' {} a -> s {id = a} :: ExtensionSummary)++-- | The extension name.+extensionSummary_name :: Lens.Lens' ExtensionSummary (Prelude.Maybe Prelude.Text)+extensionSummary_name = Lens.lens (\ExtensionSummary' {name} -> name) (\s@ExtensionSummary' {} a -> s {name = a} :: ExtensionSummary)++-- | The extension version number.+extensionSummary_versionNumber :: Lens.Lens' ExtensionSummary (Prelude.Maybe Prelude.Int)+extensionSummary_versionNumber = Lens.lens (\ExtensionSummary' {versionNumber} -> versionNumber) (\s@ExtensionSummary' {} a -> s {versionNumber = a} :: ExtensionSummary)++instance Data.FromJSON ExtensionSummary where+  parseJSON =+    Data.withObject+      "ExtensionSummary"+      ( \x ->+          ExtensionSummary'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "VersionNumber")+      )++instance Prelude.Hashable ExtensionSummary where+  hashWithSalt _salt ExtensionSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` versionNumber++instance Prelude.NFData ExtensionSummary where+  rnf ExtensionSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf versionNumber
+ gen/Amazonka/AppConfig/Types/GrowthType.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.AppConfig.Types.GrowthType+-- 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.AppConfig.Types.GrowthType+  ( GrowthType+      ( ..,+        GrowthType_EXPONENTIAL,+        GrowthType_LINEAR+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype GrowthType = GrowthType'+  { fromGrowthType ::+      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 GrowthType_EXPONENTIAL :: GrowthType+pattern GrowthType_EXPONENTIAL = GrowthType' "EXPONENTIAL"++pattern GrowthType_LINEAR :: GrowthType+pattern GrowthType_LINEAR = GrowthType' "LINEAR"++{-# COMPLETE+  GrowthType_EXPONENTIAL,+  GrowthType_LINEAR,+  GrowthType'+  #-}
+ gen/Amazonka/AppConfig/Types/HostedConfigurationVersion.hs view
@@ -0,0 +1,123 @@+{-# 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.AppConfig.Types.HostedConfigurationVersion+-- 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.AppConfig.Types.HostedConfigurationVersion 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++-- | /See:/ 'newHostedConfigurationVersion' smart constructor.+data HostedConfigurationVersion = HostedConfigurationVersion'+  { -- | The application ID.+    applicationId :: Prelude.Maybe Prelude.Text,+    -- | The configuration profile ID.+    configurationProfileId :: Prelude.Maybe Prelude.Text,+    -- | The content of the configuration or the configuration data.+    content :: Prelude.Maybe (Data.Sensitive Prelude.ByteString),+    -- | A standard MIME type describing the format of the configuration content.+    -- For more information, see+    -- <https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17 Content-Type>.+    contentType :: Prelude.Maybe Prelude.Text,+    -- | A description of the configuration.+    description :: Prelude.Maybe Prelude.Text,+    -- | The configuration version.+    versionNumber :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HostedConfigurationVersion' 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:+--+-- 'applicationId', 'hostedConfigurationVersion_applicationId' - The application ID.+--+-- 'configurationProfileId', 'hostedConfigurationVersion_configurationProfileId' - The configuration profile ID.+--+-- 'content', 'hostedConfigurationVersion_content' - The content of the configuration or the configuration data.+--+-- 'contentType', 'hostedConfigurationVersion_contentType' - A standard MIME type describing the format of the configuration content.+-- For more information, see+-- <https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17 Content-Type>.+--+-- 'description', 'hostedConfigurationVersion_description' - A description of the configuration.+--+-- 'versionNumber', 'hostedConfigurationVersion_versionNumber' - The configuration version.+newHostedConfigurationVersion ::+  HostedConfigurationVersion+newHostedConfigurationVersion =+  HostedConfigurationVersion'+    { applicationId =+        Prelude.Nothing,+      configurationProfileId = Prelude.Nothing,+      content = Prelude.Nothing,+      contentType = Prelude.Nothing,+      description = Prelude.Nothing,+      versionNumber = Prelude.Nothing+    }++-- | The application ID.+hostedConfigurationVersion_applicationId :: Lens.Lens' HostedConfigurationVersion (Prelude.Maybe Prelude.Text)+hostedConfigurationVersion_applicationId = Lens.lens (\HostedConfigurationVersion' {applicationId} -> applicationId) (\s@HostedConfigurationVersion' {} a -> s {applicationId = a} :: HostedConfigurationVersion)++-- | The configuration profile ID.+hostedConfigurationVersion_configurationProfileId :: Lens.Lens' HostedConfigurationVersion (Prelude.Maybe Prelude.Text)+hostedConfigurationVersion_configurationProfileId = Lens.lens (\HostedConfigurationVersion' {configurationProfileId} -> configurationProfileId) (\s@HostedConfigurationVersion' {} a -> s {configurationProfileId = a} :: HostedConfigurationVersion)++-- | The content of the configuration or the configuration data.+hostedConfigurationVersion_content :: Lens.Lens' HostedConfigurationVersion (Prelude.Maybe Prelude.ByteString)+hostedConfigurationVersion_content = Lens.lens (\HostedConfigurationVersion' {content} -> content) (\s@HostedConfigurationVersion' {} a -> s {content = a} :: HostedConfigurationVersion) Prelude.. Lens.mapping Data._Sensitive++-- | A standard MIME type describing the format of the configuration content.+-- For more information, see+-- <https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17 Content-Type>.+hostedConfigurationVersion_contentType :: Lens.Lens' HostedConfigurationVersion (Prelude.Maybe Prelude.Text)+hostedConfigurationVersion_contentType = Lens.lens (\HostedConfigurationVersion' {contentType} -> contentType) (\s@HostedConfigurationVersion' {} a -> s {contentType = a} :: HostedConfigurationVersion)++-- | A description of the configuration.+hostedConfigurationVersion_description :: Lens.Lens' HostedConfigurationVersion (Prelude.Maybe Prelude.Text)+hostedConfigurationVersion_description = Lens.lens (\HostedConfigurationVersion' {description} -> description) (\s@HostedConfigurationVersion' {} a -> s {description = a} :: HostedConfigurationVersion)++-- | The configuration version.+hostedConfigurationVersion_versionNumber :: Lens.Lens' HostedConfigurationVersion (Prelude.Maybe Prelude.Int)+hostedConfigurationVersion_versionNumber = Lens.lens (\HostedConfigurationVersion' {versionNumber} -> versionNumber) (\s@HostedConfigurationVersion' {} a -> s {versionNumber = a} :: HostedConfigurationVersion)++instance Prelude.Hashable HostedConfigurationVersion where+  hashWithSalt _salt HostedConfigurationVersion' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` configurationProfileId+      `Prelude.hashWithSalt` content+      `Prelude.hashWithSalt` contentType+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` versionNumber++instance Prelude.NFData HostedConfigurationVersion where+  rnf HostedConfigurationVersion' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf configurationProfileId+      `Prelude.seq` Prelude.rnf content+      `Prelude.seq` Prelude.rnf contentType+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf versionNumber
+ gen/Amazonka/AppConfig/Types/HostedConfigurationVersionSummary.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.AppConfig.Types.HostedConfigurationVersionSummary+-- 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.AppConfig.Types.HostedConfigurationVersionSummary 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++-- | Information about the configuration.+--+-- /See:/ 'newHostedConfigurationVersionSummary' smart constructor.+data HostedConfigurationVersionSummary = HostedConfigurationVersionSummary'+  { -- | The application ID.+    applicationId :: Prelude.Maybe Prelude.Text,+    -- | The configuration profile ID.+    configurationProfileId :: Prelude.Maybe Prelude.Text,+    -- | A standard MIME type describing the format of the configuration content.+    -- For more information, see+    -- <https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17 Content-Type>.+    contentType :: Prelude.Maybe Prelude.Text,+    -- | A description of the configuration.+    description :: Prelude.Maybe Prelude.Text,+    -- | The configuration version.+    versionNumber :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HostedConfigurationVersionSummary' 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:+--+-- 'applicationId', 'hostedConfigurationVersionSummary_applicationId' - The application ID.+--+-- 'configurationProfileId', 'hostedConfigurationVersionSummary_configurationProfileId' - The configuration profile ID.+--+-- 'contentType', 'hostedConfigurationVersionSummary_contentType' - A standard MIME type describing the format of the configuration content.+-- For more information, see+-- <https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17 Content-Type>.+--+-- 'description', 'hostedConfigurationVersionSummary_description' - A description of the configuration.+--+-- 'versionNumber', 'hostedConfigurationVersionSummary_versionNumber' - The configuration version.+newHostedConfigurationVersionSummary ::+  HostedConfigurationVersionSummary+newHostedConfigurationVersionSummary =+  HostedConfigurationVersionSummary'+    { applicationId =+        Prelude.Nothing,+      configurationProfileId = Prelude.Nothing,+      contentType = Prelude.Nothing,+      description = Prelude.Nothing,+      versionNumber = Prelude.Nothing+    }++-- | The application ID.+hostedConfigurationVersionSummary_applicationId :: Lens.Lens' HostedConfigurationVersionSummary (Prelude.Maybe Prelude.Text)+hostedConfigurationVersionSummary_applicationId = Lens.lens (\HostedConfigurationVersionSummary' {applicationId} -> applicationId) (\s@HostedConfigurationVersionSummary' {} a -> s {applicationId = a} :: HostedConfigurationVersionSummary)++-- | The configuration profile ID.+hostedConfigurationVersionSummary_configurationProfileId :: Lens.Lens' HostedConfigurationVersionSummary (Prelude.Maybe Prelude.Text)+hostedConfigurationVersionSummary_configurationProfileId = Lens.lens (\HostedConfigurationVersionSummary' {configurationProfileId} -> configurationProfileId) (\s@HostedConfigurationVersionSummary' {} a -> s {configurationProfileId = a} :: HostedConfigurationVersionSummary)++-- | A standard MIME type describing the format of the configuration content.+-- For more information, see+-- <https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17 Content-Type>.+hostedConfigurationVersionSummary_contentType :: Lens.Lens' HostedConfigurationVersionSummary (Prelude.Maybe Prelude.Text)+hostedConfigurationVersionSummary_contentType = Lens.lens (\HostedConfigurationVersionSummary' {contentType} -> contentType) (\s@HostedConfigurationVersionSummary' {} a -> s {contentType = a} :: HostedConfigurationVersionSummary)++-- | A description of the configuration.+hostedConfigurationVersionSummary_description :: Lens.Lens' HostedConfigurationVersionSummary (Prelude.Maybe Prelude.Text)+hostedConfigurationVersionSummary_description = Lens.lens (\HostedConfigurationVersionSummary' {description} -> description) (\s@HostedConfigurationVersionSummary' {} a -> s {description = a} :: HostedConfigurationVersionSummary)++-- | The configuration version.+hostedConfigurationVersionSummary_versionNumber :: Lens.Lens' HostedConfigurationVersionSummary (Prelude.Maybe Prelude.Int)+hostedConfigurationVersionSummary_versionNumber = Lens.lens (\HostedConfigurationVersionSummary' {versionNumber} -> versionNumber) (\s@HostedConfigurationVersionSummary' {} a -> s {versionNumber = a} :: HostedConfigurationVersionSummary)++instance+  Data.FromJSON+    HostedConfigurationVersionSummary+  where+  parseJSON =+    Data.withObject+      "HostedConfigurationVersionSummary"+      ( \x ->+          HostedConfigurationVersionSummary'+            Prelude.<$> (x Data..:? "ApplicationId")+            Prelude.<*> (x Data..:? "ConfigurationProfileId")+            Prelude.<*> (x Data..:? "ContentType")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "VersionNumber")+      )++instance+  Prelude.Hashable+    HostedConfigurationVersionSummary+  where+  hashWithSalt+    _salt+    HostedConfigurationVersionSummary' {..} =+      _salt+        `Prelude.hashWithSalt` applicationId+        `Prelude.hashWithSalt` configurationProfileId+        `Prelude.hashWithSalt` contentType+        `Prelude.hashWithSalt` description+        `Prelude.hashWithSalt` versionNumber++instance+  Prelude.NFData+    HostedConfigurationVersionSummary+  where+  rnf HostedConfigurationVersionSummary' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf configurationProfileId+      `Prelude.seq` Prelude.rnf contentType+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf versionNumber
+ gen/Amazonka/AppConfig/Types/Monitor.hs view
@@ -0,0 +1,98 @@+{-# 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.AppConfig.Types.Monitor+-- 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.AppConfig.Types.Monitor 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++-- | Amazon CloudWatch alarms to monitor during the deployment process.+--+-- /See:/ 'newMonitor' smart constructor.+data Monitor = Monitor'+  { -- | ARN of an Identity and Access Management (IAM) role for AppConfig to+    -- monitor @AlarmArn@.+    alarmRoleArn :: Prelude.Maybe Prelude.Text,+    -- | Amazon Resource Name (ARN) of the Amazon CloudWatch alarm.+    alarmArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Monitor' 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:+--+-- 'alarmRoleArn', 'monitor_alarmRoleArn' - ARN of an Identity and Access Management (IAM) role for AppConfig to+-- monitor @AlarmArn@.+--+-- 'alarmArn', 'monitor_alarmArn' - Amazon Resource Name (ARN) of the Amazon CloudWatch alarm.+newMonitor ::+  -- | 'alarmArn'+  Prelude.Text ->+  Monitor+newMonitor pAlarmArn_ =+  Monitor'+    { alarmRoleArn = Prelude.Nothing,+      alarmArn = pAlarmArn_+    }++-- | ARN of an Identity and Access Management (IAM) role for AppConfig to+-- monitor @AlarmArn@.+monitor_alarmRoleArn :: Lens.Lens' Monitor (Prelude.Maybe Prelude.Text)+monitor_alarmRoleArn = Lens.lens (\Monitor' {alarmRoleArn} -> alarmRoleArn) (\s@Monitor' {} a -> s {alarmRoleArn = a} :: Monitor)++-- | Amazon Resource Name (ARN) of the Amazon CloudWatch alarm.+monitor_alarmArn :: Lens.Lens' Monitor Prelude.Text+monitor_alarmArn = Lens.lens (\Monitor' {alarmArn} -> alarmArn) (\s@Monitor' {} a -> s {alarmArn = a} :: Monitor)++instance Data.FromJSON Monitor where+  parseJSON =+    Data.withObject+      "Monitor"+      ( \x ->+          Monitor'+            Prelude.<$> (x Data..:? "AlarmRoleArn")+            Prelude.<*> (x Data..: "AlarmArn")+      )++instance Prelude.Hashable Monitor where+  hashWithSalt _salt Monitor' {..} =+    _salt+      `Prelude.hashWithSalt` alarmRoleArn+      `Prelude.hashWithSalt` alarmArn++instance Prelude.NFData Monitor where+  rnf Monitor' {..} =+    Prelude.rnf alarmRoleArn+      `Prelude.seq` Prelude.rnf alarmArn++instance Data.ToJSON Monitor where+  toJSON Monitor' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AlarmRoleArn" Data..=) Prelude.<$> alarmRoleArn,+            Prelude.Just ("AlarmArn" Data..= alarmArn)+          ]+      )
+ gen/Amazonka/AppConfig/Types/Parameter.hs view
@@ -0,0 +1,98 @@+{-# 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.AppConfig.Types.Parameter+-- 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.AppConfig.Types.Parameter 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 value such as an Amazon Resource Name (ARN) or an Amazon Simple+-- Notification Service topic entered in an extension when invoked.+-- Parameter values are specified in an extension association. For more+-- information about extensions, see+-- <https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html Working with AppConfig extensions>+-- in the /AppConfig User Guide/.+--+-- /See:/ 'newParameter' smart constructor.+data Parameter = Parameter'+  { -- | Information about the parameter.+    description :: Prelude.Maybe Prelude.Text,+    -- | A parameter value must be specified in the extension association.+    required :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Parameter' 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', 'parameter_description' - Information about the parameter.+--+-- 'required', 'parameter_required' - A parameter value must be specified in the extension association.+newParameter ::+  Parameter+newParameter =+  Parameter'+    { description = Prelude.Nothing,+      required = Prelude.Nothing+    }++-- | Information about the parameter.+parameter_description :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)+parameter_description = Lens.lens (\Parameter' {description} -> description) (\s@Parameter' {} a -> s {description = a} :: Parameter)++-- | A parameter value must be specified in the extension association.+parameter_required :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Bool)+parameter_required = Lens.lens (\Parameter' {required} -> required) (\s@Parameter' {} a -> s {required = a} :: Parameter)++instance Data.FromJSON Parameter where+  parseJSON =+    Data.withObject+      "Parameter"+      ( \x ->+          Parameter'+            Prelude.<$> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "Required")+      )++instance Prelude.Hashable Parameter where+  hashWithSalt _salt Parameter' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` required++instance Prelude.NFData Parameter where+  rnf Parameter' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf required++instance Data.ToJSON Parameter where+  toJSON Parameter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Required" Data..=) Prelude.<$> required+          ]+      )
+ gen/Amazonka/AppConfig/Types/ReplicateTo.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.AppConfig.Types.ReplicateTo+-- 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.AppConfig.Types.ReplicateTo+  ( ReplicateTo+      ( ..,+        ReplicateTo_NONE,+        ReplicateTo_SSM_DOCUMENT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ReplicateTo = ReplicateTo'+  { fromReplicateTo ::+      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 ReplicateTo_NONE :: ReplicateTo+pattern ReplicateTo_NONE = ReplicateTo' "NONE"++pattern ReplicateTo_SSM_DOCUMENT :: ReplicateTo+pattern ReplicateTo_SSM_DOCUMENT = ReplicateTo' "SSM_DOCUMENT"++{-# COMPLETE+  ReplicateTo_NONE,+  ReplicateTo_SSM_DOCUMENT,+  ReplicateTo'+  #-}
+ gen/Amazonka/AppConfig/Types/TriggeredBy.hs view
@@ -0,0 +1,81 @@+{-# 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.AppConfig.Types.TriggeredBy+-- 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.AppConfig.Types.TriggeredBy+  ( TriggeredBy+      ( ..,+        TriggeredBy_APPCONFIG,+        TriggeredBy_CLOUDWATCH_ALARM,+        TriggeredBy_INTERNAL_ERROR,+        TriggeredBy_USER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TriggeredBy = TriggeredBy'+  { fromTriggeredBy ::+      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 TriggeredBy_APPCONFIG :: TriggeredBy+pattern TriggeredBy_APPCONFIG = TriggeredBy' "APPCONFIG"++pattern TriggeredBy_CLOUDWATCH_ALARM :: TriggeredBy+pattern TriggeredBy_CLOUDWATCH_ALARM = TriggeredBy' "CLOUDWATCH_ALARM"++pattern TriggeredBy_INTERNAL_ERROR :: TriggeredBy+pattern TriggeredBy_INTERNAL_ERROR = TriggeredBy' "INTERNAL_ERROR"++pattern TriggeredBy_USER :: TriggeredBy+pattern TriggeredBy_USER = TriggeredBy' "USER"++{-# COMPLETE+  TriggeredBy_APPCONFIG,+  TriggeredBy_CLOUDWATCH_ALARM,+  TriggeredBy_INTERNAL_ERROR,+  TriggeredBy_USER,+  TriggeredBy'+  #-}
+ gen/Amazonka/AppConfig/Types/Validator.hs view
@@ -0,0 +1,105 @@+{-# 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.AppConfig.Types.Validator+-- 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.AppConfig.Types.Validator where++import Amazonka.AppConfig.Types.ValidatorType+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 validator provides a syntactic or semantic check to ensure the+-- configuration that you want to deploy functions as intended. To validate+-- your application configuration data, you provide a schema or an Amazon+-- Web Services Lambda function that runs against the configuration. The+-- configuration deployment or update can only proceed when the+-- configuration data is valid.+--+-- /See:/ 'newValidator' smart constructor.+data Validator = Validator'+  { -- | AppConfig supports validators of type @JSON_SCHEMA@ and @LAMBDA@+    type' :: ValidatorType,+    -- | Either the JSON Schema content or the Amazon Resource Name (ARN) of an+    -- Lambda function.+    content :: Data.Sensitive Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Validator' 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:+--+-- 'type'', 'validator_type' - AppConfig supports validators of type @JSON_SCHEMA@ and @LAMBDA@+--+-- 'content', 'validator_content' - Either the JSON Schema content or the Amazon Resource Name (ARN) of an+-- Lambda function.+newValidator ::+  -- | 'type''+  ValidatorType ->+  -- | 'content'+  Prelude.Text ->+  Validator+newValidator pType_ pContent_ =+  Validator'+    { type' = pType_,+      content = Data._Sensitive Lens.# pContent_+    }++-- | AppConfig supports validators of type @JSON_SCHEMA@ and @LAMBDA@+validator_type :: Lens.Lens' Validator ValidatorType+validator_type = Lens.lens (\Validator' {type'} -> type') (\s@Validator' {} a -> s {type' = a} :: Validator)++-- | Either the JSON Schema content or the Amazon Resource Name (ARN) of an+-- Lambda function.+validator_content :: Lens.Lens' Validator Prelude.Text+validator_content = Lens.lens (\Validator' {content} -> content) (\s@Validator' {} a -> s {content = a} :: Validator) Prelude.. Data._Sensitive++instance Data.FromJSON Validator where+  parseJSON =+    Data.withObject+      "Validator"+      ( \x ->+          Validator'+            Prelude.<$> (x Data..: "Type")+            Prelude.<*> (x Data..: "Content")+      )++instance Prelude.Hashable Validator where+  hashWithSalt _salt Validator' {..} =+    _salt+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` content++instance Prelude.NFData Validator where+  rnf Validator' {..} =+    Prelude.rnf type' `Prelude.seq` Prelude.rnf content++instance Data.ToJSON Validator where+  toJSON Validator' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Type" Data..= type'),+            Prelude.Just ("Content" Data..= content)+          ]+      )
+ gen/Amazonka/AppConfig/Types/ValidatorType.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.AppConfig.Types.ValidatorType+-- 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.AppConfig.Types.ValidatorType+  ( ValidatorType+      ( ..,+        ValidatorType_JSON_SCHEMA,+        ValidatorType_LAMBDA+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ValidatorType = ValidatorType'+  { fromValidatorType ::+      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 ValidatorType_JSON_SCHEMA :: ValidatorType+pattern ValidatorType_JSON_SCHEMA = ValidatorType' "JSON_SCHEMA"++pattern ValidatorType_LAMBDA :: ValidatorType+pattern ValidatorType_LAMBDA = ValidatorType' "LAMBDA"++{-# COMPLETE+  ValidatorType_JSON_SCHEMA,+  ValidatorType_LAMBDA,+  ValidatorType'+  #-}
+ gen/Amazonka/AppConfig/UntagResource.hs view
@@ -0,0 +1,140 @@+{-# 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.AppConfig.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 a tag key and value from an AppConfig resource.+module Amazonka.AppConfig.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,+  )+where++import Amazonka.AppConfig.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 ARN of the resource for which to remove tags.+    resourceArn :: Prelude.Text,+    -- | The tag keys to delete.+    tagKeys :: [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 ARN of the resource for which to remove tags.+--+-- 'tagKeys', 'untagResource_tagKeys' - The tag keys to delete.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++-- | The ARN of the resource for which to remove tags.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The tag keys to delete.+untagResource_tagKeys :: Lens.Lens' UntagResource [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.receiveNull UntagResourceResponse'++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'+  {+  }+  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.+newUntagResourceResponse ::+  UntagResourceResponse+newUntagResourceResponse = UntagResourceResponse'++instance Prelude.NFData UntagResourceResponse where+  rnf _ = ()
+ gen/Amazonka/AppConfig/UpdateApplication.hs view
@@ -0,0 +1,147 @@+{-# 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.AppConfig.UpdateApplication+-- 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 application.+module Amazonka.AppConfig.UpdateApplication+  ( -- * Creating a Request+    UpdateApplication (..),+    newUpdateApplication,++    -- * Request Lenses+    updateApplication_description,+    updateApplication_name,+    updateApplication_applicationId,++    -- * Destructuring the Response+    Application (..),+    newApplication,++    -- * Response Lenses+    application_description,+    application_id,+    application_name,+  )+where++import Amazonka.AppConfig.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:/ 'newUpdateApplication' smart constructor.+data UpdateApplication = UpdateApplication'+  { -- | A description of the application.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the application.+    name :: Prelude.Maybe Prelude.Text,+    -- | The application ID.+    applicationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateApplication' 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', 'updateApplication_description' - A description of the application.+--+-- 'name', 'updateApplication_name' - The name of the application.+--+-- 'applicationId', 'updateApplication_applicationId' - The application ID.+newUpdateApplication ::+  -- | 'applicationId'+  Prelude.Text ->+  UpdateApplication+newUpdateApplication pApplicationId_ =+  UpdateApplication'+    { description = Prelude.Nothing,+      name = Prelude.Nothing,+      applicationId = pApplicationId_+    }++-- | A description of the application.+updateApplication_description :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)+updateApplication_description = Lens.lens (\UpdateApplication' {description} -> description) (\s@UpdateApplication' {} a -> s {description = a} :: UpdateApplication)++-- | The name of the application.+updateApplication_name :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)+updateApplication_name = Lens.lens (\UpdateApplication' {name} -> name) (\s@UpdateApplication' {} a -> s {name = a} :: UpdateApplication)++-- | The application ID.+updateApplication_applicationId :: Lens.Lens' UpdateApplication Prelude.Text+updateApplication_applicationId = Lens.lens (\UpdateApplication' {applicationId} -> applicationId) (\s@UpdateApplication' {} a -> s {applicationId = a} :: UpdateApplication)++instance Core.AWSRequest UpdateApplication where+  type AWSResponse UpdateApplication = Application+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable UpdateApplication where+  hashWithSalt _salt UpdateApplication' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` applicationId++instance Prelude.NFData UpdateApplication where+  rnf UpdateApplication' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf applicationId++instance Data.ToHeaders UpdateApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateApplication where+  toJSON UpdateApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Name" Data..=) Prelude.<$> name+          ]+      )++instance Data.ToPath UpdateApplication where+  toPath UpdateApplication' {..} =+    Prelude.mconcat+      ["/applications/", Data.toBS applicationId]++instance Data.ToQuery UpdateApplication where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/UpdateConfigurationProfile.hs view
@@ -0,0 +1,206 @@+{-# 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.AppConfig.UpdateConfigurationProfile+-- 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 a configuration profile.+module Amazonka.AppConfig.UpdateConfigurationProfile+  ( -- * Creating a Request+    UpdateConfigurationProfile (..),+    newUpdateConfigurationProfile,++    -- * Request Lenses+    updateConfigurationProfile_description,+    updateConfigurationProfile_name,+    updateConfigurationProfile_retrievalRoleArn,+    updateConfigurationProfile_validators,+    updateConfigurationProfile_applicationId,+    updateConfigurationProfile_configurationProfileId,++    -- * Destructuring the Response+    ConfigurationProfile (..),+    newConfigurationProfile,++    -- * Response Lenses+    configurationProfile_applicationId,+    configurationProfile_description,+    configurationProfile_id,+    configurationProfile_locationUri,+    configurationProfile_name,+    configurationProfile_retrievalRoleArn,+    configurationProfile_type,+    configurationProfile_validators,+  )+where++import Amazonka.AppConfig.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:/ 'newUpdateConfigurationProfile' smart constructor.+data UpdateConfigurationProfile = UpdateConfigurationProfile'+  { -- | A description of the configuration profile.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the configuration profile.+    name :: Prelude.Maybe Prelude.Text,+    -- | The ARN of an IAM role with permission to access the configuration at+    -- the specified @LocationUri@.+    retrievalRoleArn :: Prelude.Maybe Prelude.Text,+    -- | A list of methods for validating the configuration.+    validators :: Prelude.Maybe [Validator],+    -- | The application ID.+    applicationId :: Prelude.Text,+    -- | The ID of the configuration profile.+    configurationProfileId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateConfigurationProfile' 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', 'updateConfigurationProfile_description' - A description of the configuration profile.+--+-- 'name', 'updateConfigurationProfile_name' - The name of the configuration profile.+--+-- 'retrievalRoleArn', 'updateConfigurationProfile_retrievalRoleArn' - The ARN of an IAM role with permission to access the configuration at+-- the specified @LocationUri@.+--+-- 'validators', 'updateConfigurationProfile_validators' - A list of methods for validating the configuration.+--+-- 'applicationId', 'updateConfigurationProfile_applicationId' - The application ID.+--+-- 'configurationProfileId', 'updateConfigurationProfile_configurationProfileId' - The ID of the configuration profile.+newUpdateConfigurationProfile ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'configurationProfileId'+  Prelude.Text ->+  UpdateConfigurationProfile+newUpdateConfigurationProfile+  pApplicationId_+  pConfigurationProfileId_ =+    UpdateConfigurationProfile'+      { description =+          Prelude.Nothing,+        name = Prelude.Nothing,+        retrievalRoleArn = Prelude.Nothing,+        validators = Prelude.Nothing,+        applicationId = pApplicationId_,+        configurationProfileId =+          pConfigurationProfileId_+      }++-- | A description of the configuration profile.+updateConfigurationProfile_description :: Lens.Lens' UpdateConfigurationProfile (Prelude.Maybe Prelude.Text)+updateConfigurationProfile_description = Lens.lens (\UpdateConfigurationProfile' {description} -> description) (\s@UpdateConfigurationProfile' {} a -> s {description = a} :: UpdateConfigurationProfile)++-- | The name of the configuration profile.+updateConfigurationProfile_name :: Lens.Lens' UpdateConfigurationProfile (Prelude.Maybe Prelude.Text)+updateConfigurationProfile_name = Lens.lens (\UpdateConfigurationProfile' {name} -> name) (\s@UpdateConfigurationProfile' {} a -> s {name = a} :: UpdateConfigurationProfile)++-- | The ARN of an IAM role with permission to access the configuration at+-- the specified @LocationUri@.+updateConfigurationProfile_retrievalRoleArn :: Lens.Lens' UpdateConfigurationProfile (Prelude.Maybe Prelude.Text)+updateConfigurationProfile_retrievalRoleArn = Lens.lens (\UpdateConfigurationProfile' {retrievalRoleArn} -> retrievalRoleArn) (\s@UpdateConfigurationProfile' {} a -> s {retrievalRoleArn = a} :: UpdateConfigurationProfile)++-- | A list of methods for validating the configuration.+updateConfigurationProfile_validators :: Lens.Lens' UpdateConfigurationProfile (Prelude.Maybe [Validator])+updateConfigurationProfile_validators = Lens.lens (\UpdateConfigurationProfile' {validators} -> validators) (\s@UpdateConfigurationProfile' {} a -> s {validators = a} :: UpdateConfigurationProfile) Prelude.. Lens.mapping Lens.coerced++-- | The application ID.+updateConfigurationProfile_applicationId :: Lens.Lens' UpdateConfigurationProfile Prelude.Text+updateConfigurationProfile_applicationId = Lens.lens (\UpdateConfigurationProfile' {applicationId} -> applicationId) (\s@UpdateConfigurationProfile' {} a -> s {applicationId = a} :: UpdateConfigurationProfile)++-- | The ID of the configuration profile.+updateConfigurationProfile_configurationProfileId :: Lens.Lens' UpdateConfigurationProfile Prelude.Text+updateConfigurationProfile_configurationProfileId = Lens.lens (\UpdateConfigurationProfile' {configurationProfileId} -> configurationProfileId) (\s@UpdateConfigurationProfile' {} a -> s {configurationProfileId = a} :: UpdateConfigurationProfile)++instance Core.AWSRequest UpdateConfigurationProfile where+  type+    AWSResponse UpdateConfigurationProfile =+      ConfigurationProfile+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable UpdateConfigurationProfile where+  hashWithSalt _salt UpdateConfigurationProfile' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` retrievalRoleArn+      `Prelude.hashWithSalt` validators+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` configurationProfileId++instance Prelude.NFData UpdateConfigurationProfile where+  rnf UpdateConfigurationProfile' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf retrievalRoleArn+      `Prelude.seq` Prelude.rnf validators+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf configurationProfileId++instance Data.ToHeaders UpdateConfigurationProfile where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateConfigurationProfile where+  toJSON UpdateConfigurationProfile' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Name" Data..=) Prelude.<$> name,+            ("RetrievalRoleArn" Data..=)+              Prelude.<$> retrievalRoleArn,+            ("Validators" Data..=) Prelude.<$> validators+          ]+      )++instance Data.ToPath UpdateConfigurationProfile where+  toPath UpdateConfigurationProfile' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/configurationprofiles/",+        Data.toBS configurationProfileId+      ]++instance Data.ToQuery UpdateConfigurationProfile where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/UpdateDeploymentStrategy.hs view
@@ -0,0 +1,285 @@+{-# 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.AppConfig.UpdateDeploymentStrategy+-- 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 a deployment strategy.+module Amazonka.AppConfig.UpdateDeploymentStrategy+  ( -- * Creating a Request+    UpdateDeploymentStrategy (..),+    newUpdateDeploymentStrategy,++    -- * Request Lenses+    updateDeploymentStrategy_deploymentDurationInMinutes,+    updateDeploymentStrategy_description,+    updateDeploymentStrategy_finalBakeTimeInMinutes,+    updateDeploymentStrategy_growthFactor,+    updateDeploymentStrategy_growthType,+    updateDeploymentStrategy_deploymentStrategyId,++    -- * Destructuring the Response+    DeploymentStrategy (..),+    newDeploymentStrategy,++    -- * Response Lenses+    deploymentStrategy_deploymentDurationInMinutes,+    deploymentStrategy_description,+    deploymentStrategy_finalBakeTimeInMinutes,+    deploymentStrategy_growthFactor,+    deploymentStrategy_growthType,+    deploymentStrategy_id,+    deploymentStrategy_name,+    deploymentStrategy_replicateTo,+  )+where++import Amazonka.AppConfig.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:/ 'newUpdateDeploymentStrategy' smart constructor.+data UpdateDeploymentStrategy = UpdateDeploymentStrategy'+  { -- | Total amount of time for a deployment to last.+    deploymentDurationInMinutes :: Prelude.Maybe Prelude.Natural,+    -- | A description of the deployment strategy.+    description :: Prelude.Maybe Prelude.Text,+    -- | The amount of time that AppConfig monitors for alarms before considering+    -- the deployment to be complete and no longer eligible for automatic+    -- rollback.+    finalBakeTimeInMinutes :: Prelude.Maybe Prelude.Natural,+    -- | The percentage of targets to receive a deployed configuration during+    -- each interval.+    growthFactor :: Prelude.Maybe Prelude.Double,+    -- | The algorithm used to define how percentage grows over time. AppConfig+    -- supports the following growth types:+    --+    -- __Linear__: For this type, AppConfig processes the deployment by+    -- increments of the growth factor evenly distributed over the deployment+    -- time. For example, a linear deployment that uses a growth factor of 20+    -- initially makes the configuration available to 20 percent of the+    -- targets. After 1\/5th of the deployment time has passed, the system+    -- updates the percentage to 40 percent. This continues until 100% of the+    -- targets are set to receive the deployed configuration.+    --+    -- __Exponential__: For this type, AppConfig processes the deployment+    -- exponentially using the following formula: @G*(2^N)@. In this formula,+    -- @G@ is the growth factor specified by the user and @N@ is the number of+    -- steps until the configuration is deployed to all targets. For example,+    -- if you specify a growth factor of 2, then the system rolls out the+    -- configuration as follows:+    --+    -- @2*(2^0)@+    --+    -- @2*(2^1)@+    --+    -- @2*(2^2)@+    --+    -- Expressed numerically, the deployment rolls out as follows: 2% of the+    -- targets, 4% of the targets, 8% of the targets, and continues until the+    -- configuration has been deployed to all targets.+    growthType :: Prelude.Maybe GrowthType,+    -- | The deployment strategy ID.+    deploymentStrategyId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDeploymentStrategy' 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:+--+-- 'deploymentDurationInMinutes', 'updateDeploymentStrategy_deploymentDurationInMinutes' - Total amount of time for a deployment to last.+--+-- 'description', 'updateDeploymentStrategy_description' - A description of the deployment strategy.+--+-- 'finalBakeTimeInMinutes', 'updateDeploymentStrategy_finalBakeTimeInMinutes' - The amount of time that AppConfig monitors for alarms before considering+-- the deployment to be complete and no longer eligible for automatic+-- rollback.+--+-- 'growthFactor', 'updateDeploymentStrategy_growthFactor' - The percentage of targets to receive a deployed configuration during+-- each interval.+--+-- 'growthType', 'updateDeploymentStrategy_growthType' - The algorithm used to define how percentage grows over time. AppConfig+-- supports the following growth types:+--+-- __Linear__: For this type, AppConfig processes the deployment by+-- increments of the growth factor evenly distributed over the deployment+-- time. For example, a linear deployment that uses a growth factor of 20+-- initially makes the configuration available to 20 percent of the+-- targets. After 1\/5th of the deployment time has passed, the system+-- updates the percentage to 40 percent. This continues until 100% of the+-- targets are set to receive the deployed configuration.+--+-- __Exponential__: For this type, AppConfig processes the deployment+-- exponentially using the following formula: @G*(2^N)@. In this formula,+-- @G@ is the growth factor specified by the user and @N@ is the number of+-- steps until the configuration is deployed to all targets. For example,+-- if you specify a growth factor of 2, then the system rolls out the+-- configuration as follows:+--+-- @2*(2^0)@+--+-- @2*(2^1)@+--+-- @2*(2^2)@+--+-- Expressed numerically, the deployment rolls out as follows: 2% of the+-- targets, 4% of the targets, 8% of the targets, and continues until the+-- configuration has been deployed to all targets.+--+-- 'deploymentStrategyId', 'updateDeploymentStrategy_deploymentStrategyId' - The deployment strategy ID.+newUpdateDeploymentStrategy ::+  -- | 'deploymentStrategyId'+  Prelude.Text ->+  UpdateDeploymentStrategy+newUpdateDeploymentStrategy pDeploymentStrategyId_ =+  UpdateDeploymentStrategy'+    { deploymentDurationInMinutes =+        Prelude.Nothing,+      description = Prelude.Nothing,+      finalBakeTimeInMinutes = Prelude.Nothing,+      growthFactor = Prelude.Nothing,+      growthType = Prelude.Nothing,+      deploymentStrategyId = pDeploymentStrategyId_+    }++-- | Total amount of time for a deployment to last.+updateDeploymentStrategy_deploymentDurationInMinutes :: Lens.Lens' UpdateDeploymentStrategy (Prelude.Maybe Prelude.Natural)+updateDeploymentStrategy_deploymentDurationInMinutes = Lens.lens (\UpdateDeploymentStrategy' {deploymentDurationInMinutes} -> deploymentDurationInMinutes) (\s@UpdateDeploymentStrategy' {} a -> s {deploymentDurationInMinutes = a} :: UpdateDeploymentStrategy)++-- | A description of the deployment strategy.+updateDeploymentStrategy_description :: Lens.Lens' UpdateDeploymentStrategy (Prelude.Maybe Prelude.Text)+updateDeploymentStrategy_description = Lens.lens (\UpdateDeploymentStrategy' {description} -> description) (\s@UpdateDeploymentStrategy' {} a -> s {description = a} :: UpdateDeploymentStrategy)++-- | The amount of time that AppConfig monitors for alarms before considering+-- the deployment to be complete and no longer eligible for automatic+-- rollback.+updateDeploymentStrategy_finalBakeTimeInMinutes :: Lens.Lens' UpdateDeploymentStrategy (Prelude.Maybe Prelude.Natural)+updateDeploymentStrategy_finalBakeTimeInMinutes = Lens.lens (\UpdateDeploymentStrategy' {finalBakeTimeInMinutes} -> finalBakeTimeInMinutes) (\s@UpdateDeploymentStrategy' {} a -> s {finalBakeTimeInMinutes = a} :: UpdateDeploymentStrategy)++-- | The percentage of targets to receive a deployed configuration during+-- each interval.+updateDeploymentStrategy_growthFactor :: Lens.Lens' UpdateDeploymentStrategy (Prelude.Maybe Prelude.Double)+updateDeploymentStrategy_growthFactor = Lens.lens (\UpdateDeploymentStrategy' {growthFactor} -> growthFactor) (\s@UpdateDeploymentStrategy' {} a -> s {growthFactor = a} :: UpdateDeploymentStrategy)++-- | The algorithm used to define how percentage grows over time. AppConfig+-- supports the following growth types:+--+-- __Linear__: For this type, AppConfig processes the deployment by+-- increments of the growth factor evenly distributed over the deployment+-- time. For example, a linear deployment that uses a growth factor of 20+-- initially makes the configuration available to 20 percent of the+-- targets. After 1\/5th of the deployment time has passed, the system+-- updates the percentage to 40 percent. This continues until 100% of the+-- targets are set to receive the deployed configuration.+--+-- __Exponential__: For this type, AppConfig processes the deployment+-- exponentially using the following formula: @G*(2^N)@. In this formula,+-- @G@ is the growth factor specified by the user and @N@ is the number of+-- steps until the configuration is deployed to all targets. For example,+-- if you specify a growth factor of 2, then the system rolls out the+-- configuration as follows:+--+-- @2*(2^0)@+--+-- @2*(2^1)@+--+-- @2*(2^2)@+--+-- Expressed numerically, the deployment rolls out as follows: 2% of the+-- targets, 4% of the targets, 8% of the targets, and continues until the+-- configuration has been deployed to all targets.+updateDeploymentStrategy_growthType :: Lens.Lens' UpdateDeploymentStrategy (Prelude.Maybe GrowthType)+updateDeploymentStrategy_growthType = Lens.lens (\UpdateDeploymentStrategy' {growthType} -> growthType) (\s@UpdateDeploymentStrategy' {} a -> s {growthType = a} :: UpdateDeploymentStrategy)++-- | The deployment strategy ID.+updateDeploymentStrategy_deploymentStrategyId :: Lens.Lens' UpdateDeploymentStrategy Prelude.Text+updateDeploymentStrategy_deploymentStrategyId = Lens.lens (\UpdateDeploymentStrategy' {deploymentStrategyId} -> deploymentStrategyId) (\s@UpdateDeploymentStrategy' {} a -> s {deploymentStrategyId = a} :: UpdateDeploymentStrategy)++instance Core.AWSRequest UpdateDeploymentStrategy where+  type+    AWSResponse UpdateDeploymentStrategy =+      DeploymentStrategy+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable UpdateDeploymentStrategy where+  hashWithSalt _salt UpdateDeploymentStrategy' {..} =+    _salt+      `Prelude.hashWithSalt` deploymentDurationInMinutes+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` finalBakeTimeInMinutes+      `Prelude.hashWithSalt` growthFactor+      `Prelude.hashWithSalt` growthType+      `Prelude.hashWithSalt` deploymentStrategyId++instance Prelude.NFData UpdateDeploymentStrategy where+  rnf UpdateDeploymentStrategy' {..} =+    Prelude.rnf deploymentDurationInMinutes+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf finalBakeTimeInMinutes+      `Prelude.seq` Prelude.rnf growthFactor+      `Prelude.seq` Prelude.rnf growthType+      `Prelude.seq` Prelude.rnf deploymentStrategyId++instance Data.ToHeaders UpdateDeploymentStrategy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateDeploymentStrategy where+  toJSON UpdateDeploymentStrategy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DeploymentDurationInMinutes" Data..=)+              Prelude.<$> deploymentDurationInMinutes,+            ("Description" Data..=) Prelude.<$> description,+            ("FinalBakeTimeInMinutes" Data..=)+              Prelude.<$> finalBakeTimeInMinutes,+            ("GrowthFactor" Data..=) Prelude.<$> growthFactor,+            ("GrowthType" Data..=) Prelude.<$> growthType+          ]+      )++instance Data.ToPath UpdateDeploymentStrategy where+  toPath UpdateDeploymentStrategy' {..} =+    Prelude.mconcat+      [ "/deploymentstrategies/",+        Data.toBS deploymentStrategyId+      ]++instance Data.ToQuery UpdateDeploymentStrategy where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/UpdateEnvironment.hs view
@@ -0,0 +1,181 @@+{-# 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.AppConfig.UpdateEnvironment+-- 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 environment.+module Amazonka.AppConfig.UpdateEnvironment+  ( -- * Creating a Request+    UpdateEnvironment (..),+    newUpdateEnvironment,++    -- * Request Lenses+    updateEnvironment_description,+    updateEnvironment_monitors,+    updateEnvironment_name,+    updateEnvironment_applicationId,+    updateEnvironment_environmentId,++    -- * Destructuring the Response+    Environment (..),+    newEnvironment,++    -- * Response Lenses+    environment_applicationId,+    environment_description,+    environment_id,+    environment_monitors,+    environment_name,+    environment_state,+  )+where++import Amazonka.AppConfig.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:/ 'newUpdateEnvironment' smart constructor.+data UpdateEnvironment = UpdateEnvironment'+  { -- | A description of the environment.+    description :: Prelude.Maybe Prelude.Text,+    -- | Amazon CloudWatch alarms to monitor during the deployment process.+    monitors :: Prelude.Maybe [Monitor],+    -- | The name of the environment.+    name :: Prelude.Maybe Prelude.Text,+    -- | The application ID.+    applicationId :: Prelude.Text,+    -- | The environment ID.+    environmentId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEnvironment' 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', 'updateEnvironment_description' - A description of the environment.+--+-- 'monitors', 'updateEnvironment_monitors' - Amazon CloudWatch alarms to monitor during the deployment process.+--+-- 'name', 'updateEnvironment_name' - The name of the environment.+--+-- 'applicationId', 'updateEnvironment_applicationId' - The application ID.+--+-- 'environmentId', 'updateEnvironment_environmentId' - The environment ID.+newUpdateEnvironment ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'environmentId'+  Prelude.Text ->+  UpdateEnvironment+newUpdateEnvironment pApplicationId_ pEnvironmentId_ =+  UpdateEnvironment'+    { description = Prelude.Nothing,+      monitors = Prelude.Nothing,+      name = Prelude.Nothing,+      applicationId = pApplicationId_,+      environmentId = pEnvironmentId_+    }++-- | A description of the environment.+updateEnvironment_description :: Lens.Lens' UpdateEnvironment (Prelude.Maybe Prelude.Text)+updateEnvironment_description = Lens.lens (\UpdateEnvironment' {description} -> description) (\s@UpdateEnvironment' {} a -> s {description = a} :: UpdateEnvironment)++-- | Amazon CloudWatch alarms to monitor during the deployment process.+updateEnvironment_monitors :: Lens.Lens' UpdateEnvironment (Prelude.Maybe [Monitor])+updateEnvironment_monitors = Lens.lens (\UpdateEnvironment' {monitors} -> monitors) (\s@UpdateEnvironment' {} a -> s {monitors = a} :: UpdateEnvironment) Prelude.. Lens.mapping Lens.coerced++-- | The name of the environment.+updateEnvironment_name :: Lens.Lens' UpdateEnvironment (Prelude.Maybe Prelude.Text)+updateEnvironment_name = Lens.lens (\UpdateEnvironment' {name} -> name) (\s@UpdateEnvironment' {} a -> s {name = a} :: UpdateEnvironment)++-- | The application ID.+updateEnvironment_applicationId :: Lens.Lens' UpdateEnvironment Prelude.Text+updateEnvironment_applicationId = Lens.lens (\UpdateEnvironment' {applicationId} -> applicationId) (\s@UpdateEnvironment' {} a -> s {applicationId = a} :: UpdateEnvironment)++-- | The environment ID.+updateEnvironment_environmentId :: Lens.Lens' UpdateEnvironment Prelude.Text+updateEnvironment_environmentId = Lens.lens (\UpdateEnvironment' {environmentId} -> environmentId) (\s@UpdateEnvironment' {} a -> s {environmentId = a} :: UpdateEnvironment)++instance Core.AWSRequest UpdateEnvironment where+  type AWSResponse UpdateEnvironment = Environment+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable UpdateEnvironment where+  hashWithSalt _salt UpdateEnvironment' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` monitors+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` environmentId++instance Prelude.NFData UpdateEnvironment where+  rnf UpdateEnvironment' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf monitors+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf environmentId++instance Data.ToHeaders UpdateEnvironment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateEnvironment where+  toJSON UpdateEnvironment' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Monitors" Data..=) Prelude.<$> monitors,+            ("Name" Data..=) Prelude.<$> name+          ]+      )++instance Data.ToPath UpdateEnvironment where+  toPath UpdateEnvironment' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/environments/",+        Data.toBS environmentId+      ]++instance Data.ToQuery UpdateEnvironment where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/UpdateExtension.hs view
@@ -0,0 +1,180 @@+{-# 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.AppConfig.UpdateExtension+-- 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 AppConfig extension. For more information about extensions,+-- see+-- <https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html Working with AppConfig extensions>+-- in the /AppConfig User Guide/.+module Amazonka.AppConfig.UpdateExtension+  ( -- * Creating a Request+    UpdateExtension (..),+    newUpdateExtension,++    -- * Request Lenses+    updateExtension_actions,+    updateExtension_description,+    updateExtension_parameters,+    updateExtension_versionNumber,+    updateExtension_extensionIdentifier,++    -- * Destructuring the Response+    Extension (..),+    newExtension,++    -- * Response Lenses+    extension_actions,+    extension_arn,+    extension_description,+    extension_id,+    extension_name,+    extension_parameters,+    extension_versionNumber,+  )+where++import Amazonka.AppConfig.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:/ 'newUpdateExtension' smart constructor.+data UpdateExtension = UpdateExtension'+  { -- | The actions defined in the extension.+    actions :: Prelude.Maybe (Prelude.HashMap ActionPoint (Prelude.NonEmpty Action)),+    -- | Information about the extension.+    description :: Prelude.Maybe Prelude.Text,+    -- | One or more parameters for the actions called by the extension.+    parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Parameter),+    -- | The extension version number.+    versionNumber :: Prelude.Maybe Prelude.Int,+    -- | The name, the ID, or the Amazon Resource Name (ARN) of the extension.+    extensionIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateExtension' 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:+--+-- 'actions', 'updateExtension_actions' - The actions defined in the extension.+--+-- 'description', 'updateExtension_description' - Information about the extension.+--+-- 'parameters', 'updateExtension_parameters' - One or more parameters for the actions called by the extension.+--+-- 'versionNumber', 'updateExtension_versionNumber' - The extension version number.+--+-- 'extensionIdentifier', 'updateExtension_extensionIdentifier' - The name, the ID, or the Amazon Resource Name (ARN) of the extension.+newUpdateExtension ::+  -- | 'extensionIdentifier'+  Prelude.Text ->+  UpdateExtension+newUpdateExtension pExtensionIdentifier_ =+  UpdateExtension'+    { actions = Prelude.Nothing,+      description = Prelude.Nothing,+      parameters = Prelude.Nothing,+      versionNumber = Prelude.Nothing,+      extensionIdentifier = pExtensionIdentifier_+    }++-- | The actions defined in the extension.+updateExtension_actions :: Lens.Lens' UpdateExtension (Prelude.Maybe (Prelude.HashMap ActionPoint (Prelude.NonEmpty Action)))+updateExtension_actions = Lens.lens (\UpdateExtension' {actions} -> actions) (\s@UpdateExtension' {} a -> s {actions = a} :: UpdateExtension) Prelude.. Lens.mapping Lens.coerced++-- | Information about the extension.+updateExtension_description :: Lens.Lens' UpdateExtension (Prelude.Maybe Prelude.Text)+updateExtension_description = Lens.lens (\UpdateExtension' {description} -> description) (\s@UpdateExtension' {} a -> s {description = a} :: UpdateExtension)++-- | One or more parameters for the actions called by the extension.+updateExtension_parameters :: Lens.Lens' UpdateExtension (Prelude.Maybe (Prelude.HashMap Prelude.Text Parameter))+updateExtension_parameters = Lens.lens (\UpdateExtension' {parameters} -> parameters) (\s@UpdateExtension' {} a -> s {parameters = a} :: UpdateExtension) Prelude.. Lens.mapping Lens.coerced++-- | The extension version number.+updateExtension_versionNumber :: Lens.Lens' UpdateExtension (Prelude.Maybe Prelude.Int)+updateExtension_versionNumber = Lens.lens (\UpdateExtension' {versionNumber} -> versionNumber) (\s@UpdateExtension' {} a -> s {versionNumber = a} :: UpdateExtension)++-- | The name, the ID, or the Amazon Resource Name (ARN) of the extension.+updateExtension_extensionIdentifier :: Lens.Lens' UpdateExtension Prelude.Text+updateExtension_extensionIdentifier = Lens.lens (\UpdateExtension' {extensionIdentifier} -> extensionIdentifier) (\s@UpdateExtension' {} a -> s {extensionIdentifier = a} :: UpdateExtension)++instance Core.AWSRequest UpdateExtension where+  type AWSResponse UpdateExtension = Extension+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable UpdateExtension where+  hashWithSalt _salt UpdateExtension' {..} =+    _salt+      `Prelude.hashWithSalt` actions+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` versionNumber+      `Prelude.hashWithSalt` extensionIdentifier++instance Prelude.NFData UpdateExtension where+  rnf UpdateExtension' {..} =+    Prelude.rnf actions+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf versionNumber+      `Prelude.seq` Prelude.rnf extensionIdentifier++instance Data.ToHeaders UpdateExtension where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateExtension where+  toJSON UpdateExtension' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Actions" Data..=) Prelude.<$> actions,+            ("Description" Data..=) Prelude.<$> description,+            ("Parameters" Data..=) Prelude.<$> parameters,+            ("VersionNumber" Data..=) Prelude.<$> versionNumber+          ]+      )++instance Data.ToPath UpdateExtension where+  toPath UpdateExtension' {..} =+    Prelude.mconcat+      ["/extensions/", Data.toBS extensionIdentifier]++instance Data.ToQuery UpdateExtension where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/UpdateExtensionAssociation.hs view
@@ -0,0 +1,146 @@+{-# 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.AppConfig.UpdateExtensionAssociation+-- 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 association. For more information about extensions and+-- associations, see+-- <https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html Working with AppConfig extensions>+-- in the /AppConfig User Guide/.+module Amazonka.AppConfig.UpdateExtensionAssociation+  ( -- * Creating a Request+    UpdateExtensionAssociation (..),+    newUpdateExtensionAssociation,++    -- * Request Lenses+    updateExtensionAssociation_parameters,+    updateExtensionAssociation_extensionAssociationId,++    -- * Destructuring the Response+    ExtensionAssociation (..),+    newExtensionAssociation,++    -- * Response Lenses+    extensionAssociation_arn,+    extensionAssociation_extensionArn,+    extensionAssociation_extensionVersionNumber,+    extensionAssociation_id,+    extensionAssociation_parameters,+    extensionAssociation_resourceArn,+  )+where++import Amazonka.AppConfig.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:/ 'newUpdateExtensionAssociation' smart constructor.+data UpdateExtensionAssociation = UpdateExtensionAssociation'+  { -- | The parameter names and values defined in the extension.+    parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The system-generated ID for the association.+    extensionAssociationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateExtensionAssociation' 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:+--+-- 'parameters', 'updateExtensionAssociation_parameters' - The parameter names and values defined in the extension.+--+-- 'extensionAssociationId', 'updateExtensionAssociation_extensionAssociationId' - The system-generated ID for the association.+newUpdateExtensionAssociation ::+  -- | 'extensionAssociationId'+  Prelude.Text ->+  UpdateExtensionAssociation+newUpdateExtensionAssociation+  pExtensionAssociationId_ =+    UpdateExtensionAssociation'+      { parameters =+          Prelude.Nothing,+        extensionAssociationId =+          pExtensionAssociationId_+      }++-- | The parameter names and values defined in the extension.+updateExtensionAssociation_parameters :: Lens.Lens' UpdateExtensionAssociation (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateExtensionAssociation_parameters = Lens.lens (\UpdateExtensionAssociation' {parameters} -> parameters) (\s@UpdateExtensionAssociation' {} a -> s {parameters = a} :: UpdateExtensionAssociation) Prelude.. Lens.mapping Lens.coerced++-- | The system-generated ID for the association.+updateExtensionAssociation_extensionAssociationId :: Lens.Lens' UpdateExtensionAssociation Prelude.Text+updateExtensionAssociation_extensionAssociationId = Lens.lens (\UpdateExtensionAssociation' {extensionAssociationId} -> extensionAssociationId) (\s@UpdateExtensionAssociation' {} a -> s {extensionAssociationId = a} :: UpdateExtensionAssociation)++instance Core.AWSRequest UpdateExtensionAssociation where+  type+    AWSResponse UpdateExtensionAssociation =+      ExtensionAssociation+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable UpdateExtensionAssociation where+  hashWithSalt _salt UpdateExtensionAssociation' {..} =+    _salt+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` extensionAssociationId++instance Prelude.NFData UpdateExtensionAssociation where+  rnf UpdateExtensionAssociation' {..} =+    Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf extensionAssociationId++instance Data.ToHeaders UpdateExtensionAssociation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateExtensionAssociation where+  toJSON UpdateExtensionAssociation' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Parameters" Data..=) Prelude.<$> parameters]+      )++instance Data.ToPath UpdateExtensionAssociation where+  toPath UpdateExtensionAssociation' {..} =+    Prelude.mconcat+      [ "/extensionassociations/",+        Data.toBS extensionAssociationId+      ]++instance Data.ToQuery UpdateExtensionAssociation where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/AppConfig/ValidateConfiguration.hs view
@@ -0,0 +1,173 @@+{-# 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.AppConfig.ValidateConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Uses the validators in a configuration profile to validate a+-- configuration.+module Amazonka.AppConfig.ValidateConfiguration+  ( -- * Creating a Request+    ValidateConfiguration (..),+    newValidateConfiguration,++    -- * Request Lenses+    validateConfiguration_applicationId,+    validateConfiguration_configurationProfileId,+    validateConfiguration_configurationVersion,++    -- * Destructuring the Response+    ValidateConfigurationResponse (..),+    newValidateConfigurationResponse,+  )+where++import Amazonka.AppConfig.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:/ 'newValidateConfiguration' smart constructor.+data ValidateConfiguration = ValidateConfiguration'+  { -- | The application ID.+    applicationId :: Prelude.Text,+    -- | The configuration profile ID.+    configurationProfileId :: Prelude.Text,+    -- | The version of the configuration to validate.+    configurationVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ValidateConfiguration' 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:+--+-- 'applicationId', 'validateConfiguration_applicationId' - The application ID.+--+-- 'configurationProfileId', 'validateConfiguration_configurationProfileId' - The configuration profile ID.+--+-- 'configurationVersion', 'validateConfiguration_configurationVersion' - The version of the configuration to validate.+newValidateConfiguration ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'configurationProfileId'+  Prelude.Text ->+  -- | 'configurationVersion'+  Prelude.Text ->+  ValidateConfiguration+newValidateConfiguration+  pApplicationId_+  pConfigurationProfileId_+  pConfigurationVersion_ =+    ValidateConfiguration'+      { applicationId =+          pApplicationId_,+        configurationProfileId = pConfigurationProfileId_,+        configurationVersion = pConfigurationVersion_+      }++-- | The application ID.+validateConfiguration_applicationId :: Lens.Lens' ValidateConfiguration Prelude.Text+validateConfiguration_applicationId = Lens.lens (\ValidateConfiguration' {applicationId} -> applicationId) (\s@ValidateConfiguration' {} a -> s {applicationId = a} :: ValidateConfiguration)++-- | The configuration profile ID.+validateConfiguration_configurationProfileId :: Lens.Lens' ValidateConfiguration Prelude.Text+validateConfiguration_configurationProfileId = Lens.lens (\ValidateConfiguration' {configurationProfileId} -> configurationProfileId) (\s@ValidateConfiguration' {} a -> s {configurationProfileId = a} :: ValidateConfiguration)++-- | The version of the configuration to validate.+validateConfiguration_configurationVersion :: Lens.Lens' ValidateConfiguration Prelude.Text+validateConfiguration_configurationVersion = Lens.lens (\ValidateConfiguration' {configurationVersion} -> configurationVersion) (\s@ValidateConfiguration' {} a -> s {configurationVersion = a} :: ValidateConfiguration)++instance Core.AWSRequest ValidateConfiguration where+  type+    AWSResponse ValidateConfiguration =+      ValidateConfigurationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull ValidateConfigurationResponse'++instance Prelude.Hashable ValidateConfiguration where+  hashWithSalt _salt ValidateConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` configurationProfileId+      `Prelude.hashWithSalt` configurationVersion++instance Prelude.NFData ValidateConfiguration where+  rnf ValidateConfiguration' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf configurationProfileId+      `Prelude.seq` Prelude.rnf configurationVersion++instance Data.ToHeaders ValidateConfiguration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ValidateConfiguration where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath ValidateConfiguration where+  toPath ValidateConfiguration' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/configurationprofiles/",+        Data.toBS configurationProfileId,+        "/validators"+      ]++instance Data.ToQuery ValidateConfiguration where+  toQuery ValidateConfiguration' {..} =+    Prelude.mconcat+      [ "configuration_version"+          Data.=: configurationVersion+      ]++-- | /See:/ 'newValidateConfigurationResponse' smart constructor.+data ValidateConfigurationResponse = ValidateConfigurationResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ValidateConfigurationResponse' 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.+newValidateConfigurationResponse ::+  ValidateConfigurationResponse+newValidateConfigurationResponse =+  ValidateConfigurationResponse'++instance Prelude.NFData ValidateConfigurationResponse where+  rnf _ = ()
+ gen/Amazonka/AppConfig/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.AppConfig.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.AppConfig.Waiters where++import Amazonka.AppConfig.Lens+import Amazonka.AppConfig.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.AppConfig+import Test.Amazonka.AppConfig.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "AppConfig"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/AppConfig.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.AppConfig+-- 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.AppConfig+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/AppConfig/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.AppConfig.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.AppConfig.Internal where
+ test/Test/Amazonka/Gen/AppConfig.hs view
@@ -0,0 +1,878 @@+{-# 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.AppConfig+-- 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.AppConfig where++import Amazonka.AppConfig+import qualified Data.Proxy as Proxy+import Test.Amazonka.AppConfig.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"+--         [ requestCreateApplication $+--             newCreateApplication+--+--         , requestCreateConfigurationProfile $+--             newCreateConfigurationProfile+--+--         , requestCreateDeploymentStrategy $+--             newCreateDeploymentStrategy+--+--         , requestCreateEnvironment $+--             newCreateEnvironment+--+--         , requestCreateExtension $+--             newCreateExtension+--+--         , requestCreateExtensionAssociation $+--             newCreateExtensionAssociation+--+--         , requestCreateHostedConfigurationVersion $+--             newCreateHostedConfigurationVersion+--+--         , requestDeleteApplication $+--             newDeleteApplication+--+--         , requestDeleteConfigurationProfile $+--             newDeleteConfigurationProfile+--+--         , requestDeleteDeploymentStrategy $+--             newDeleteDeploymentStrategy+--+--         , requestDeleteEnvironment $+--             newDeleteEnvironment+--+--         , requestDeleteExtension $+--             newDeleteExtension+--+--         , requestDeleteExtensionAssociation $+--             newDeleteExtensionAssociation+--+--         , requestDeleteHostedConfigurationVersion $+--             newDeleteHostedConfigurationVersion+--+--         , requestGetApplication $+--             newGetApplication+--+--         , requestGetConfigurationProfile $+--             newGetConfigurationProfile+--+--         , requestGetDeployment $+--             newGetDeployment+--+--         , requestGetDeploymentStrategy $+--             newGetDeploymentStrategy+--+--         , requestGetEnvironment $+--             newGetEnvironment+--+--         , requestGetExtension $+--             newGetExtension+--+--         , requestGetExtensionAssociation $+--             newGetExtensionAssociation+--+--         , requestGetHostedConfigurationVersion $+--             newGetHostedConfigurationVersion+--+--         , requestListApplications $+--             newListApplications+--+--         , requestListConfigurationProfiles $+--             newListConfigurationProfiles+--+--         , requestListDeploymentStrategies $+--             newListDeploymentStrategies+--+--         , requestListDeployments $+--             newListDeployments+--+--         , requestListEnvironments $+--             newListEnvironments+--+--         , requestListExtensionAssociations $+--             newListExtensionAssociations+--+--         , requestListExtensions $+--             newListExtensions+--+--         , requestListHostedConfigurationVersions $+--             newListHostedConfigurationVersions+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestStartDeployment $+--             newStartDeployment+--+--         , requestStopDeployment $+--             newStopDeployment+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateApplication $+--             newUpdateApplication+--+--         , requestUpdateConfigurationProfile $+--             newUpdateConfigurationProfile+--+--         , requestUpdateDeploymentStrategy $+--             newUpdateDeploymentStrategy+--+--         , requestUpdateEnvironment $+--             newUpdateEnvironment+--+--         , requestUpdateExtension $+--             newUpdateExtension+--+--         , requestUpdateExtensionAssociation $+--             newUpdateExtensionAssociation+--+--         , requestValidateConfiguration $+--             newValidateConfiguration+--+--           ]++--     , testGroup "response"+--         [ responseCreateApplication $+--             newApplication+--+--         , responseCreateConfigurationProfile $+--             newConfigurationProfile+--+--         , responseCreateDeploymentStrategy $+--             newDeploymentStrategy+--+--         , responseCreateEnvironment $+--             newEnvironment+--+--         , responseCreateExtension $+--             newExtension+--+--         , responseCreateExtensionAssociation $+--             newExtensionAssociation+--+--         , responseCreateHostedConfigurationVersion $+--             newHostedConfigurationVersion+--+--         , responseDeleteApplication $+--             newDeleteApplicationResponse+--+--         , responseDeleteConfigurationProfile $+--             newDeleteConfigurationProfileResponse+--+--         , responseDeleteDeploymentStrategy $+--             newDeleteDeploymentStrategyResponse+--+--         , responseDeleteEnvironment $+--             newDeleteEnvironmentResponse+--+--         , responseDeleteExtension $+--             newDeleteExtensionResponse+--+--         , responseDeleteExtensionAssociation $+--             newDeleteExtensionAssociationResponse+--+--         , responseDeleteHostedConfigurationVersion $+--             newDeleteHostedConfigurationVersionResponse+--+--         , responseGetApplication $+--             newApplication+--+--         , responseGetConfigurationProfile $+--             newConfigurationProfile+--+--         , responseGetDeployment $+--             newDeployment+--+--         , responseGetDeploymentStrategy $+--             newDeploymentStrategy+--+--         , responseGetEnvironment $+--             newEnvironment+--+--         , responseGetExtension $+--             newExtension+--+--         , responseGetExtensionAssociation $+--             newExtensionAssociation+--+--         , responseGetHostedConfigurationVersion $+--             newHostedConfigurationVersion+--+--         , responseListApplications $+--             newListApplicationsResponse+--+--         , responseListConfigurationProfiles $+--             newListConfigurationProfilesResponse+--+--         , responseListDeploymentStrategies $+--             newListDeploymentStrategiesResponse+--+--         , responseListDeployments $+--             newListDeploymentsResponse+--+--         , responseListEnvironments $+--             newListEnvironmentsResponse+--+--         , responseListExtensionAssociations $+--             newListExtensionAssociationsResponse+--+--         , responseListExtensions $+--             newListExtensionsResponse+--+--         , responseListHostedConfigurationVersions $+--             newListHostedConfigurationVersionsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseStartDeployment $+--             newDeployment+--+--         , responseStopDeployment $+--             newDeployment+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateApplication $+--             newApplication+--+--         , responseUpdateConfigurationProfile $+--             newConfigurationProfile+--+--         , responseUpdateDeploymentStrategy $+--             newDeploymentStrategy+--+--         , responseUpdateEnvironment $+--             newEnvironment+--+--         , responseUpdateExtension $+--             newExtension+--+--         , responseUpdateExtensionAssociation $+--             newExtensionAssociation+--+--         , responseValidateConfiguration $+--             newValidateConfigurationResponse+--+--           ]+--     ]++-- Requests++requestCreateApplication :: CreateApplication -> TestTree+requestCreateApplication =+  req+    "CreateApplication"+    "fixture/CreateApplication.yaml"++requestCreateConfigurationProfile :: CreateConfigurationProfile -> TestTree+requestCreateConfigurationProfile =+  req+    "CreateConfigurationProfile"+    "fixture/CreateConfigurationProfile.yaml"++requestCreateDeploymentStrategy :: CreateDeploymentStrategy -> TestTree+requestCreateDeploymentStrategy =+  req+    "CreateDeploymentStrategy"+    "fixture/CreateDeploymentStrategy.yaml"++requestCreateEnvironment :: CreateEnvironment -> TestTree+requestCreateEnvironment =+  req+    "CreateEnvironment"+    "fixture/CreateEnvironment.yaml"++requestCreateExtension :: CreateExtension -> TestTree+requestCreateExtension =+  req+    "CreateExtension"+    "fixture/CreateExtension.yaml"++requestCreateExtensionAssociation :: CreateExtensionAssociation -> TestTree+requestCreateExtensionAssociation =+  req+    "CreateExtensionAssociation"+    "fixture/CreateExtensionAssociation.yaml"++requestCreateHostedConfigurationVersion :: CreateHostedConfigurationVersion -> TestTree+requestCreateHostedConfigurationVersion =+  req+    "CreateHostedConfigurationVersion"+    "fixture/CreateHostedConfigurationVersion.yaml"++requestDeleteApplication :: DeleteApplication -> TestTree+requestDeleteApplication =+  req+    "DeleteApplication"+    "fixture/DeleteApplication.yaml"++requestDeleteConfigurationProfile :: DeleteConfigurationProfile -> TestTree+requestDeleteConfigurationProfile =+  req+    "DeleteConfigurationProfile"+    "fixture/DeleteConfigurationProfile.yaml"++requestDeleteDeploymentStrategy :: DeleteDeploymentStrategy -> TestTree+requestDeleteDeploymentStrategy =+  req+    "DeleteDeploymentStrategy"+    "fixture/DeleteDeploymentStrategy.yaml"++requestDeleteEnvironment :: DeleteEnvironment -> TestTree+requestDeleteEnvironment =+  req+    "DeleteEnvironment"+    "fixture/DeleteEnvironment.yaml"++requestDeleteExtension :: DeleteExtension -> TestTree+requestDeleteExtension =+  req+    "DeleteExtension"+    "fixture/DeleteExtension.yaml"++requestDeleteExtensionAssociation :: DeleteExtensionAssociation -> TestTree+requestDeleteExtensionAssociation =+  req+    "DeleteExtensionAssociation"+    "fixture/DeleteExtensionAssociation.yaml"++requestDeleteHostedConfigurationVersion :: DeleteHostedConfigurationVersion -> TestTree+requestDeleteHostedConfigurationVersion =+  req+    "DeleteHostedConfigurationVersion"+    "fixture/DeleteHostedConfigurationVersion.yaml"++requestGetApplication :: GetApplication -> TestTree+requestGetApplication =+  req+    "GetApplication"+    "fixture/GetApplication.yaml"++requestGetConfigurationProfile :: GetConfigurationProfile -> TestTree+requestGetConfigurationProfile =+  req+    "GetConfigurationProfile"+    "fixture/GetConfigurationProfile.yaml"++requestGetDeployment :: GetDeployment -> TestTree+requestGetDeployment =+  req+    "GetDeployment"+    "fixture/GetDeployment.yaml"++requestGetDeploymentStrategy :: GetDeploymentStrategy -> TestTree+requestGetDeploymentStrategy =+  req+    "GetDeploymentStrategy"+    "fixture/GetDeploymentStrategy.yaml"++requestGetEnvironment :: GetEnvironment -> TestTree+requestGetEnvironment =+  req+    "GetEnvironment"+    "fixture/GetEnvironment.yaml"++requestGetExtension :: GetExtension -> TestTree+requestGetExtension =+  req+    "GetExtension"+    "fixture/GetExtension.yaml"++requestGetExtensionAssociation :: GetExtensionAssociation -> TestTree+requestGetExtensionAssociation =+  req+    "GetExtensionAssociation"+    "fixture/GetExtensionAssociation.yaml"++requestGetHostedConfigurationVersion :: GetHostedConfigurationVersion -> TestTree+requestGetHostedConfigurationVersion =+  req+    "GetHostedConfigurationVersion"+    "fixture/GetHostedConfigurationVersion.yaml"++requestListApplications :: ListApplications -> TestTree+requestListApplications =+  req+    "ListApplications"+    "fixture/ListApplications.yaml"++requestListConfigurationProfiles :: ListConfigurationProfiles -> TestTree+requestListConfigurationProfiles =+  req+    "ListConfigurationProfiles"+    "fixture/ListConfigurationProfiles.yaml"++requestListDeploymentStrategies :: ListDeploymentStrategies -> TestTree+requestListDeploymentStrategies =+  req+    "ListDeploymentStrategies"+    "fixture/ListDeploymentStrategies.yaml"++requestListDeployments :: ListDeployments -> TestTree+requestListDeployments =+  req+    "ListDeployments"+    "fixture/ListDeployments.yaml"++requestListEnvironments :: ListEnvironments -> TestTree+requestListEnvironments =+  req+    "ListEnvironments"+    "fixture/ListEnvironments.yaml"++requestListExtensionAssociations :: ListExtensionAssociations -> TestTree+requestListExtensionAssociations =+  req+    "ListExtensionAssociations"+    "fixture/ListExtensionAssociations.yaml"++requestListExtensions :: ListExtensions -> TestTree+requestListExtensions =+  req+    "ListExtensions"+    "fixture/ListExtensions.yaml"++requestListHostedConfigurationVersions :: ListHostedConfigurationVersions -> TestTree+requestListHostedConfigurationVersions =+  req+    "ListHostedConfigurationVersions"+    "fixture/ListHostedConfigurationVersions.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestStartDeployment :: StartDeployment -> TestTree+requestStartDeployment =+  req+    "StartDeployment"+    "fixture/StartDeployment.yaml"++requestStopDeployment :: StopDeployment -> TestTree+requestStopDeployment =+  req+    "StopDeployment"+    "fixture/StopDeployment.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateApplication :: UpdateApplication -> TestTree+requestUpdateApplication =+  req+    "UpdateApplication"+    "fixture/UpdateApplication.yaml"++requestUpdateConfigurationProfile :: UpdateConfigurationProfile -> TestTree+requestUpdateConfigurationProfile =+  req+    "UpdateConfigurationProfile"+    "fixture/UpdateConfigurationProfile.yaml"++requestUpdateDeploymentStrategy :: UpdateDeploymentStrategy -> TestTree+requestUpdateDeploymentStrategy =+  req+    "UpdateDeploymentStrategy"+    "fixture/UpdateDeploymentStrategy.yaml"++requestUpdateEnvironment :: UpdateEnvironment -> TestTree+requestUpdateEnvironment =+  req+    "UpdateEnvironment"+    "fixture/UpdateEnvironment.yaml"++requestUpdateExtension :: UpdateExtension -> TestTree+requestUpdateExtension =+  req+    "UpdateExtension"+    "fixture/UpdateExtension.yaml"++requestUpdateExtensionAssociation :: UpdateExtensionAssociation -> TestTree+requestUpdateExtensionAssociation =+  req+    "UpdateExtensionAssociation"+    "fixture/UpdateExtensionAssociation.yaml"++requestValidateConfiguration :: ValidateConfiguration -> TestTree+requestValidateConfiguration =+  req+    "ValidateConfiguration"+    "fixture/ValidateConfiguration.yaml"++-- Responses++responseCreateApplication :: Application -> TestTree+responseCreateApplication =+  res+    "CreateApplicationResponse"+    "fixture/CreateApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateApplication)++responseCreateConfigurationProfile :: ConfigurationProfile -> TestTree+responseCreateConfigurationProfile =+  res+    "CreateConfigurationProfileResponse"+    "fixture/CreateConfigurationProfileResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateConfigurationProfile)++responseCreateDeploymentStrategy :: DeploymentStrategy -> TestTree+responseCreateDeploymentStrategy =+  res+    "CreateDeploymentStrategyResponse"+    "fixture/CreateDeploymentStrategyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDeploymentStrategy)++responseCreateEnvironment :: Environment -> TestTree+responseCreateEnvironment =+  res+    "CreateEnvironmentResponse"+    "fixture/CreateEnvironmentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateEnvironment)++responseCreateExtension :: Extension -> TestTree+responseCreateExtension =+  res+    "CreateExtensionResponse"+    "fixture/CreateExtensionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateExtension)++responseCreateExtensionAssociation :: ExtensionAssociation -> TestTree+responseCreateExtensionAssociation =+  res+    "CreateExtensionAssociationResponse"+    "fixture/CreateExtensionAssociationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateExtensionAssociation)++responseCreateHostedConfigurationVersion :: HostedConfigurationVersion -> TestTree+responseCreateHostedConfigurationVersion =+  res+    "CreateHostedConfigurationVersionResponse"+    "fixture/CreateHostedConfigurationVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateHostedConfigurationVersion)++responseDeleteApplication :: DeleteApplicationResponse -> TestTree+responseDeleteApplication =+  res+    "DeleteApplicationResponse"+    "fixture/DeleteApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteApplication)++responseDeleteConfigurationProfile :: DeleteConfigurationProfileResponse -> TestTree+responseDeleteConfigurationProfile =+  res+    "DeleteConfigurationProfileResponse"+    "fixture/DeleteConfigurationProfileResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteConfigurationProfile)++responseDeleteDeploymentStrategy :: DeleteDeploymentStrategyResponse -> TestTree+responseDeleteDeploymentStrategy =+  res+    "DeleteDeploymentStrategyResponse"+    "fixture/DeleteDeploymentStrategyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDeploymentStrategy)++responseDeleteEnvironment :: DeleteEnvironmentResponse -> TestTree+responseDeleteEnvironment =+  res+    "DeleteEnvironmentResponse"+    "fixture/DeleteEnvironmentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteEnvironment)++responseDeleteExtension :: DeleteExtensionResponse -> TestTree+responseDeleteExtension =+  res+    "DeleteExtensionResponse"+    "fixture/DeleteExtensionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteExtension)++responseDeleteExtensionAssociation :: DeleteExtensionAssociationResponse -> TestTree+responseDeleteExtensionAssociation =+  res+    "DeleteExtensionAssociationResponse"+    "fixture/DeleteExtensionAssociationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteExtensionAssociation)++responseDeleteHostedConfigurationVersion :: DeleteHostedConfigurationVersionResponse -> TestTree+responseDeleteHostedConfigurationVersion =+  res+    "DeleteHostedConfigurationVersionResponse"+    "fixture/DeleteHostedConfigurationVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteHostedConfigurationVersion)++responseGetApplication :: Application -> TestTree+responseGetApplication =+  res+    "GetApplicationResponse"+    "fixture/GetApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetApplication)++responseGetConfigurationProfile :: ConfigurationProfile -> TestTree+responseGetConfigurationProfile =+  res+    "GetConfigurationProfileResponse"+    "fixture/GetConfigurationProfileResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetConfigurationProfile)++responseGetDeployment :: Deployment -> TestTree+responseGetDeployment =+  res+    "GetDeploymentResponse"+    "fixture/GetDeploymentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDeployment)++responseGetDeploymentStrategy :: DeploymentStrategy -> TestTree+responseGetDeploymentStrategy =+  res+    "GetDeploymentStrategyResponse"+    "fixture/GetDeploymentStrategyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDeploymentStrategy)++responseGetEnvironment :: Environment -> TestTree+responseGetEnvironment =+  res+    "GetEnvironmentResponse"+    "fixture/GetEnvironmentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetEnvironment)++responseGetExtension :: Extension -> TestTree+responseGetExtension =+  res+    "GetExtensionResponse"+    "fixture/GetExtensionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetExtension)++responseGetExtensionAssociation :: ExtensionAssociation -> TestTree+responseGetExtensionAssociation =+  res+    "GetExtensionAssociationResponse"+    "fixture/GetExtensionAssociationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetExtensionAssociation)++responseGetHostedConfigurationVersion :: HostedConfigurationVersion -> TestTree+responseGetHostedConfigurationVersion =+  res+    "GetHostedConfigurationVersionResponse"+    "fixture/GetHostedConfigurationVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetHostedConfigurationVersion)++responseListApplications :: ListApplicationsResponse -> TestTree+responseListApplications =+  res+    "ListApplicationsResponse"+    "fixture/ListApplicationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListApplications)++responseListConfigurationProfiles :: ListConfigurationProfilesResponse -> TestTree+responseListConfigurationProfiles =+  res+    "ListConfigurationProfilesResponse"+    "fixture/ListConfigurationProfilesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListConfigurationProfiles)++responseListDeploymentStrategies :: ListDeploymentStrategiesResponse -> TestTree+responseListDeploymentStrategies =+  res+    "ListDeploymentStrategiesResponse"+    "fixture/ListDeploymentStrategiesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDeploymentStrategies)++responseListDeployments :: ListDeploymentsResponse -> TestTree+responseListDeployments =+  res+    "ListDeploymentsResponse"+    "fixture/ListDeploymentsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDeployments)++responseListEnvironments :: ListEnvironmentsResponse -> TestTree+responseListEnvironments =+  res+    "ListEnvironmentsResponse"+    "fixture/ListEnvironmentsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListEnvironments)++responseListExtensionAssociations :: ListExtensionAssociationsResponse -> TestTree+responseListExtensionAssociations =+  res+    "ListExtensionAssociationsResponse"+    "fixture/ListExtensionAssociationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListExtensionAssociations)++responseListExtensions :: ListExtensionsResponse -> TestTree+responseListExtensions =+  res+    "ListExtensionsResponse"+    "fixture/ListExtensionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListExtensions)++responseListHostedConfigurationVersions :: ListHostedConfigurationVersionsResponse -> TestTree+responseListHostedConfigurationVersions =+  res+    "ListHostedConfigurationVersionsResponse"+    "fixture/ListHostedConfigurationVersionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListHostedConfigurationVersions)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseStartDeployment :: Deployment -> TestTree+responseStartDeployment =+  res+    "StartDeploymentResponse"+    "fixture/StartDeploymentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartDeployment)++responseStopDeployment :: Deployment -> TestTree+responseStopDeployment =+  res+    "StopDeploymentResponse"+    "fixture/StopDeploymentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StopDeployment)++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)++responseUpdateApplication :: Application -> TestTree+responseUpdateApplication =+  res+    "UpdateApplicationResponse"+    "fixture/UpdateApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateApplication)++responseUpdateConfigurationProfile :: ConfigurationProfile -> TestTree+responseUpdateConfigurationProfile =+  res+    "UpdateConfigurationProfileResponse"+    "fixture/UpdateConfigurationProfileResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateConfigurationProfile)++responseUpdateDeploymentStrategy :: DeploymentStrategy -> TestTree+responseUpdateDeploymentStrategy =+  res+    "UpdateDeploymentStrategyResponse"+    "fixture/UpdateDeploymentStrategyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDeploymentStrategy)++responseUpdateEnvironment :: Environment -> TestTree+responseUpdateEnvironment =+  res+    "UpdateEnvironmentResponse"+    "fixture/UpdateEnvironmentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateEnvironment)++responseUpdateExtension :: Extension -> TestTree+responseUpdateExtension =+  res+    "UpdateExtensionResponse"+    "fixture/UpdateExtensionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateExtension)++responseUpdateExtensionAssociation :: ExtensionAssociation -> TestTree+responseUpdateExtensionAssociation =+  res+    "UpdateExtensionAssociationResponse"+    "fixture/UpdateExtensionAssociationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateExtensionAssociation)++responseValidateConfiguration :: ValidateConfigurationResponse -> TestTree+responseValidateConfiguration =+  res+    "ValidateConfigurationResponse"+    "fixture/ValidateConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ValidateConfiguration)