packages feed

amazonka-managedblockchain (empty) → 2.0

raw patch · 142 files changed

+15022/−0 lines, 142 filesdep +amazonka-coredep +amazonka-managedblockchaindep +amazonka-test

Dependencies added: amazonka-core, amazonka-managedblockchain, 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 Managed Blockchain SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2018-09-24@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-managedblockchain)+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.ManagedBlockChain](http://hackage.haskell.org/package/amazonka-managedblockchain/docs/Amazonka-ManagedBlockChain.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-managedblockchain` 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-managedblockchain.cabal view
@@ -0,0 +1,159 @@+cabal-version:      2.2+name:               amazonka-managedblockchain+version:            2.0+synopsis:           Amazon Managed Blockchain 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 @2018-09-24@ 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.ManagedBlockChain.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.ManagedBlockChain" 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-managedblockchain++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.ManagedBlockChain+    Amazonka.ManagedBlockChain.CreateAccessor+    Amazonka.ManagedBlockChain.CreateMember+    Amazonka.ManagedBlockChain.CreateNetwork+    Amazonka.ManagedBlockChain.CreateNode+    Amazonka.ManagedBlockChain.CreateProposal+    Amazonka.ManagedBlockChain.DeleteAccessor+    Amazonka.ManagedBlockChain.DeleteMember+    Amazonka.ManagedBlockChain.DeleteNode+    Amazonka.ManagedBlockChain.GetAccessor+    Amazonka.ManagedBlockChain.GetMember+    Amazonka.ManagedBlockChain.GetNetwork+    Amazonka.ManagedBlockChain.GetNode+    Amazonka.ManagedBlockChain.GetProposal+    Amazonka.ManagedBlockChain.Lens+    Amazonka.ManagedBlockChain.ListAccessors+    Amazonka.ManagedBlockChain.ListInvitations+    Amazonka.ManagedBlockChain.ListMembers+    Amazonka.ManagedBlockChain.ListNetworks+    Amazonka.ManagedBlockChain.ListNodes+    Amazonka.ManagedBlockChain.ListProposals+    Amazonka.ManagedBlockChain.ListProposalVotes+    Amazonka.ManagedBlockChain.ListTagsForResource+    Amazonka.ManagedBlockChain.RejectInvitation+    Amazonka.ManagedBlockChain.TagResource+    Amazonka.ManagedBlockChain.Types+    Amazonka.ManagedBlockChain.Types.Accessor+    Amazonka.ManagedBlockChain.Types.AccessorStatus+    Amazonka.ManagedBlockChain.Types.AccessorSummary+    Amazonka.ManagedBlockChain.Types.AccessorType+    Amazonka.ManagedBlockChain.Types.ApprovalThresholdPolicy+    Amazonka.ManagedBlockChain.Types.Edition+    Amazonka.ManagedBlockChain.Types.Framework+    Amazonka.ManagedBlockChain.Types.Invitation+    Amazonka.ManagedBlockChain.Types.InvitationStatus+    Amazonka.ManagedBlockChain.Types.InviteAction+    Amazonka.ManagedBlockChain.Types.LogConfiguration+    Amazonka.ManagedBlockChain.Types.LogConfigurations+    Amazonka.ManagedBlockChain.Types.Member+    Amazonka.ManagedBlockChain.Types.MemberConfiguration+    Amazonka.ManagedBlockChain.Types.MemberFabricAttributes+    Amazonka.ManagedBlockChain.Types.MemberFabricConfiguration+    Amazonka.ManagedBlockChain.Types.MemberFabricLogPublishingConfiguration+    Amazonka.ManagedBlockChain.Types.MemberFrameworkAttributes+    Amazonka.ManagedBlockChain.Types.MemberFrameworkConfiguration+    Amazonka.ManagedBlockChain.Types.MemberLogPublishingConfiguration+    Amazonka.ManagedBlockChain.Types.MemberStatus+    Amazonka.ManagedBlockChain.Types.MemberSummary+    Amazonka.ManagedBlockChain.Types.Network+    Amazonka.ManagedBlockChain.Types.NetworkEthereumAttributes+    Amazonka.ManagedBlockChain.Types.NetworkFabricAttributes+    Amazonka.ManagedBlockChain.Types.NetworkFabricConfiguration+    Amazonka.ManagedBlockChain.Types.NetworkFrameworkAttributes+    Amazonka.ManagedBlockChain.Types.NetworkFrameworkConfiguration+    Amazonka.ManagedBlockChain.Types.NetworkStatus+    Amazonka.ManagedBlockChain.Types.NetworkSummary+    Amazonka.ManagedBlockChain.Types.Node+    Amazonka.ManagedBlockChain.Types.NodeConfiguration+    Amazonka.ManagedBlockChain.Types.NodeEthereumAttributes+    Amazonka.ManagedBlockChain.Types.NodeFabricAttributes+    Amazonka.ManagedBlockChain.Types.NodeFabricLogPublishingConfiguration+    Amazonka.ManagedBlockChain.Types.NodeFrameworkAttributes+    Amazonka.ManagedBlockChain.Types.NodeLogPublishingConfiguration+    Amazonka.ManagedBlockChain.Types.NodeStatus+    Amazonka.ManagedBlockChain.Types.NodeSummary+    Amazonka.ManagedBlockChain.Types.Proposal+    Amazonka.ManagedBlockChain.Types.ProposalActions+    Amazonka.ManagedBlockChain.Types.ProposalStatus+    Amazonka.ManagedBlockChain.Types.ProposalSummary+    Amazonka.ManagedBlockChain.Types.RemoveAction+    Amazonka.ManagedBlockChain.Types.StateDBType+    Amazonka.ManagedBlockChain.Types.ThresholdComparator+    Amazonka.ManagedBlockChain.Types.VoteSummary+    Amazonka.ManagedBlockChain.Types.VoteValue+    Amazonka.ManagedBlockChain.Types.VotingPolicy+    Amazonka.ManagedBlockChain.UntagResource+    Amazonka.ManagedBlockChain.UpdateMember+    Amazonka.ManagedBlockChain.UpdateNode+    Amazonka.ManagedBlockChain.VoteOnProposal+    Amazonka.ManagedBlockChain.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-managedblockchain-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.Gen.ManagedBlockChain+    Test.Amazonka.ManagedBlockChain+    Test.Amazonka.ManagedBlockChain.Internal++  build-depends:+    , amazonka-core               >=2.0 && <2.1+    , amazonka-managedblockchain+    , amazonka-test               >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CreateAccessor.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/CreateAccessorResponse.proto view
+ fixture/CreateMember.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/CreateMemberResponse.proto view
+ fixture/CreateNetwork.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/CreateNetworkResponse.proto view
+ fixture/CreateNode.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/CreateNodeResponse.proto view
+ fixture/CreateProposal.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/CreateProposalResponse.proto view
+ fixture/DeleteAccessor.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/DeleteAccessorResponse.proto view
+ fixture/DeleteMember.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/DeleteMemberResponse.proto view
+ fixture/DeleteNode.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/DeleteNodeResponse.proto view
+ fixture/GetAccessor.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/GetAccessorResponse.proto view
+ fixture/GetMember.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/GetMemberResponse.proto view
+ fixture/GetNetwork.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/GetNetworkResponse.proto view
+ fixture/GetNode.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/GetNodeResponse.proto view
+ fixture/GetProposal.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/GetProposalResponse.proto view
+ fixture/ListAccessors.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/ListAccessorsResponse.proto view
+ fixture/ListInvitations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/ListInvitationsResponse.proto view
+ fixture/ListMembers.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/ListMembersResponse.proto view
+ fixture/ListNetworks.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/ListNetworksResponse.proto view
+ fixture/ListNodes.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/ListNodesResponse.proto view
+ fixture/ListProposalVotes.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/ListProposalVotesResponse.proto view
+ fixture/ListProposals.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/ListProposalsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/RejectInvitation.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/RejectInvitationResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/UpdateMember.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/UpdateMemberResponse.proto view
+ fixture/UpdateNode.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/UpdateNodeResponse.proto view
+ fixture/VoteOnProposal.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/managedblockchain/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  managedblockchain.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/VoteOnProposalResponse.proto view
+ gen/Amazonka/ManagedBlockChain.hs view
@@ -0,0 +1,479 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.ManagedBlockChain+-- 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 @2018-09-24@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon Managed Blockchain is a fully managed service for creating and+-- managing blockchain networks using open-source frameworks. Blockchain+-- allows you to build applications where multiple parties can securely and+-- transparently run transactions and share data without the need for a+-- trusted, central authority.+--+-- Managed Blockchain supports the Hyperledger Fabric and Ethereum+-- open-source frameworks. Because of fundamental differences between the+-- frameworks, some API actions or data types may only apply in the context+-- of one framework and not the other. For example, actions related to+-- Hyperledger Fabric network members such as @CreateMember@ and+-- @DeleteMember@ don\'t apply to Ethereum.+--+-- The description for each action indicates the framework or frameworks to+-- which it applies. Data types and properties that apply only in the+-- context of a particular framework are similarly indicated.+module Amazonka.ManagedBlockChain+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** IllegalActionException+    _IllegalActionException,++    -- ** InternalServiceErrorException+    _InternalServiceErrorException,++    -- ** InvalidRequestException+    _InvalidRequestException,++    -- ** ResourceAlreadyExistsException+    _ResourceAlreadyExistsException,++    -- ** ResourceLimitExceededException+    _ResourceLimitExceededException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ResourceNotReadyException+    _ResourceNotReadyException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** TooManyTagsException+    _TooManyTagsException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CreateAccessor+    CreateAccessor (CreateAccessor'),+    newCreateAccessor,+    CreateAccessorResponse (CreateAccessorResponse'),+    newCreateAccessorResponse,++    -- ** CreateMember+    CreateMember (CreateMember'),+    newCreateMember,+    CreateMemberResponse (CreateMemberResponse'),+    newCreateMemberResponse,++    -- ** CreateNetwork+    CreateNetwork (CreateNetwork'),+    newCreateNetwork,+    CreateNetworkResponse (CreateNetworkResponse'),+    newCreateNetworkResponse,++    -- ** CreateNode+    CreateNode (CreateNode'),+    newCreateNode,+    CreateNodeResponse (CreateNodeResponse'),+    newCreateNodeResponse,++    -- ** CreateProposal+    CreateProposal (CreateProposal'),+    newCreateProposal,+    CreateProposalResponse (CreateProposalResponse'),+    newCreateProposalResponse,++    -- ** DeleteAccessor+    DeleteAccessor (DeleteAccessor'),+    newDeleteAccessor,+    DeleteAccessorResponse (DeleteAccessorResponse'),+    newDeleteAccessorResponse,++    -- ** DeleteMember+    DeleteMember (DeleteMember'),+    newDeleteMember,+    DeleteMemberResponse (DeleteMemberResponse'),+    newDeleteMemberResponse,++    -- ** DeleteNode+    DeleteNode (DeleteNode'),+    newDeleteNode,+    DeleteNodeResponse (DeleteNodeResponse'),+    newDeleteNodeResponse,++    -- ** GetAccessor+    GetAccessor (GetAccessor'),+    newGetAccessor,+    GetAccessorResponse (GetAccessorResponse'),+    newGetAccessorResponse,++    -- ** GetMember+    GetMember (GetMember'),+    newGetMember,+    GetMemberResponse (GetMemberResponse'),+    newGetMemberResponse,++    -- ** GetNetwork+    GetNetwork (GetNetwork'),+    newGetNetwork,+    GetNetworkResponse (GetNetworkResponse'),+    newGetNetworkResponse,++    -- ** GetNode+    GetNode (GetNode'),+    newGetNode,+    GetNodeResponse (GetNodeResponse'),+    newGetNodeResponse,++    -- ** GetProposal+    GetProposal (GetProposal'),+    newGetProposal,+    GetProposalResponse (GetProposalResponse'),+    newGetProposalResponse,++    -- ** ListAccessors (Paginated)+    ListAccessors (ListAccessors'),+    newListAccessors,+    ListAccessorsResponse (ListAccessorsResponse'),+    newListAccessorsResponse,++    -- ** ListInvitations+    ListInvitations (ListInvitations'),+    newListInvitations,+    ListInvitationsResponse (ListInvitationsResponse'),+    newListInvitationsResponse,++    -- ** ListMembers+    ListMembers (ListMembers'),+    newListMembers,+    ListMembersResponse (ListMembersResponse'),+    newListMembersResponse,++    -- ** ListNetworks+    ListNetworks (ListNetworks'),+    newListNetworks,+    ListNetworksResponse (ListNetworksResponse'),+    newListNetworksResponse,++    -- ** ListNodes+    ListNodes (ListNodes'),+    newListNodes,+    ListNodesResponse (ListNodesResponse'),+    newListNodesResponse,++    -- ** ListProposalVotes+    ListProposalVotes (ListProposalVotes'),+    newListProposalVotes,+    ListProposalVotesResponse (ListProposalVotesResponse'),+    newListProposalVotesResponse,++    -- ** ListProposals+    ListProposals (ListProposals'),+    newListProposals,+    ListProposalsResponse (ListProposalsResponse'),+    newListProposalsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** RejectInvitation+    RejectInvitation (RejectInvitation'),+    newRejectInvitation,+    RejectInvitationResponse (RejectInvitationResponse'),+    newRejectInvitationResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateMember+    UpdateMember (UpdateMember'),+    newUpdateMember,+    UpdateMemberResponse (UpdateMemberResponse'),+    newUpdateMemberResponse,++    -- ** UpdateNode+    UpdateNode (UpdateNode'),+    newUpdateNode,+    UpdateNodeResponse (UpdateNodeResponse'),+    newUpdateNodeResponse,++    -- ** VoteOnProposal+    VoteOnProposal (VoteOnProposal'),+    newVoteOnProposal,+    VoteOnProposalResponse (VoteOnProposalResponse'),+    newVoteOnProposalResponse,++    -- * Types++    -- ** AccessorStatus+    AccessorStatus (..),++    -- ** AccessorType+    AccessorType (..),++    -- ** Edition+    Edition (..),++    -- ** Framework+    Framework (..),++    -- ** InvitationStatus+    InvitationStatus (..),++    -- ** MemberStatus+    MemberStatus (..),++    -- ** NetworkStatus+    NetworkStatus (..),++    -- ** NodeStatus+    NodeStatus (..),++    -- ** ProposalStatus+    ProposalStatus (..),++    -- ** StateDBType+    StateDBType (..),++    -- ** ThresholdComparator+    ThresholdComparator (..),++    -- ** VoteValue+    VoteValue (..),++    -- ** Accessor+    Accessor (Accessor'),+    newAccessor,++    -- ** AccessorSummary+    AccessorSummary (AccessorSummary'),+    newAccessorSummary,++    -- ** ApprovalThresholdPolicy+    ApprovalThresholdPolicy (ApprovalThresholdPolicy'),+    newApprovalThresholdPolicy,++    -- ** Invitation+    Invitation (Invitation'),+    newInvitation,++    -- ** InviteAction+    InviteAction (InviteAction'),+    newInviteAction,++    -- ** LogConfiguration+    LogConfiguration (LogConfiguration'),+    newLogConfiguration,++    -- ** LogConfigurations+    LogConfigurations (LogConfigurations'),+    newLogConfigurations,++    -- ** Member+    Member (Member'),+    newMember,++    -- ** MemberConfiguration+    MemberConfiguration (MemberConfiguration'),+    newMemberConfiguration,++    -- ** MemberFabricAttributes+    MemberFabricAttributes (MemberFabricAttributes'),+    newMemberFabricAttributes,++    -- ** MemberFabricConfiguration+    MemberFabricConfiguration (MemberFabricConfiguration'),+    newMemberFabricConfiguration,++    -- ** MemberFabricLogPublishingConfiguration+    MemberFabricLogPublishingConfiguration (MemberFabricLogPublishingConfiguration'),+    newMemberFabricLogPublishingConfiguration,++    -- ** MemberFrameworkAttributes+    MemberFrameworkAttributes (MemberFrameworkAttributes'),+    newMemberFrameworkAttributes,++    -- ** MemberFrameworkConfiguration+    MemberFrameworkConfiguration (MemberFrameworkConfiguration'),+    newMemberFrameworkConfiguration,++    -- ** MemberLogPublishingConfiguration+    MemberLogPublishingConfiguration (MemberLogPublishingConfiguration'),+    newMemberLogPublishingConfiguration,++    -- ** MemberSummary+    MemberSummary (MemberSummary'),+    newMemberSummary,++    -- ** Network+    Network (Network'),+    newNetwork,++    -- ** NetworkEthereumAttributes+    NetworkEthereumAttributes (NetworkEthereumAttributes'),+    newNetworkEthereumAttributes,++    -- ** NetworkFabricAttributes+    NetworkFabricAttributes (NetworkFabricAttributes'),+    newNetworkFabricAttributes,++    -- ** NetworkFabricConfiguration+    NetworkFabricConfiguration (NetworkFabricConfiguration'),+    newNetworkFabricConfiguration,++    -- ** NetworkFrameworkAttributes+    NetworkFrameworkAttributes (NetworkFrameworkAttributes'),+    newNetworkFrameworkAttributes,++    -- ** NetworkFrameworkConfiguration+    NetworkFrameworkConfiguration (NetworkFrameworkConfiguration'),+    newNetworkFrameworkConfiguration,++    -- ** NetworkSummary+    NetworkSummary (NetworkSummary'),+    newNetworkSummary,++    -- ** Node+    Node (Node'),+    newNode,++    -- ** NodeConfiguration+    NodeConfiguration (NodeConfiguration'),+    newNodeConfiguration,++    -- ** NodeEthereumAttributes+    NodeEthereumAttributes (NodeEthereumAttributes'),+    newNodeEthereumAttributes,++    -- ** NodeFabricAttributes+    NodeFabricAttributes (NodeFabricAttributes'),+    newNodeFabricAttributes,++    -- ** NodeFabricLogPublishingConfiguration+    NodeFabricLogPublishingConfiguration (NodeFabricLogPublishingConfiguration'),+    newNodeFabricLogPublishingConfiguration,++    -- ** NodeFrameworkAttributes+    NodeFrameworkAttributes (NodeFrameworkAttributes'),+    newNodeFrameworkAttributes,++    -- ** NodeLogPublishingConfiguration+    NodeLogPublishingConfiguration (NodeLogPublishingConfiguration'),+    newNodeLogPublishingConfiguration,++    -- ** NodeSummary+    NodeSummary (NodeSummary'),+    newNodeSummary,++    -- ** Proposal+    Proposal (Proposal'),+    newProposal,++    -- ** ProposalActions+    ProposalActions (ProposalActions'),+    newProposalActions,++    -- ** ProposalSummary+    ProposalSummary (ProposalSummary'),+    newProposalSummary,++    -- ** RemoveAction+    RemoveAction (RemoveAction'),+    newRemoveAction,++    -- ** VoteSummary+    VoteSummary (VoteSummary'),+    newVoteSummary,++    -- ** VotingPolicy+    VotingPolicy (VotingPolicy'),+    newVotingPolicy,+  )+where++import Amazonka.ManagedBlockChain.CreateAccessor+import Amazonka.ManagedBlockChain.CreateMember+import Amazonka.ManagedBlockChain.CreateNetwork+import Amazonka.ManagedBlockChain.CreateNode+import Amazonka.ManagedBlockChain.CreateProposal+import Amazonka.ManagedBlockChain.DeleteAccessor+import Amazonka.ManagedBlockChain.DeleteMember+import Amazonka.ManagedBlockChain.DeleteNode+import Amazonka.ManagedBlockChain.GetAccessor+import Amazonka.ManagedBlockChain.GetMember+import Amazonka.ManagedBlockChain.GetNetwork+import Amazonka.ManagedBlockChain.GetNode+import Amazonka.ManagedBlockChain.GetProposal+import Amazonka.ManagedBlockChain.Lens+import Amazonka.ManagedBlockChain.ListAccessors+import Amazonka.ManagedBlockChain.ListInvitations+import Amazonka.ManagedBlockChain.ListMembers+import Amazonka.ManagedBlockChain.ListNetworks+import Amazonka.ManagedBlockChain.ListNodes+import Amazonka.ManagedBlockChain.ListProposalVotes+import Amazonka.ManagedBlockChain.ListProposals+import Amazonka.ManagedBlockChain.ListTagsForResource+import Amazonka.ManagedBlockChain.RejectInvitation+import Amazonka.ManagedBlockChain.TagResource+import Amazonka.ManagedBlockChain.Types+import Amazonka.ManagedBlockChain.UntagResource+import Amazonka.ManagedBlockChain.UpdateMember+import Amazonka.ManagedBlockChain.UpdateNode+import Amazonka.ManagedBlockChain.VoteOnProposal+import Amazonka.ManagedBlockChain.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 'ManagedBlockChain'.++-- $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/ManagedBlockChain/CreateAccessor.hs view
@@ -0,0 +1,232 @@+{-# 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.ManagedBlockChain.CreateAccessor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The token based access feature is in preview release for Ethereum on+-- Amazon Managed Blockchain and is subject to change. We recommend that+-- you use this feature only with test scenarios, and not in production+-- environments.+--+-- Creates a new accessor for use with Managed Blockchain Ethereum nodes.+-- An accessor object is a container that has the information required for+-- token based access to your Ethereum nodes.+module Amazonka.ManagedBlockChain.CreateAccessor+  ( -- * Creating a Request+    CreateAccessor (..),+    newCreateAccessor,++    -- * Request Lenses+    createAccessor_clientRequestToken,+    createAccessor_accessorType,++    -- * Destructuring the Response+    CreateAccessorResponse (..),+    newCreateAccessorResponse,++    -- * Response Lenses+    createAccessorResponse_accessorId,+    createAccessorResponse_billingToken,+    createAccessorResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateAccessor' smart constructor.+data CreateAccessor = CreateAccessor'+  { -- | This is a unique, case-sensitive identifier that you provide to ensure+    -- the idempotency of the operation. An idempotent operation completes no+    -- more than once. This identifier is required only if you make a service+    -- request directly using an HTTP client. It is generated automatically if+    -- you use an Amazon Web Services SDK or the Amazon Web Services CLI.+    clientRequestToken :: Prelude.Text,+    -- | The type of accessor.+    --+    -- Currently accessor type is restricted to @BILLING_TOKEN@.+    accessorType :: AccessorType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAccessor' 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:+--+-- 'clientRequestToken', 'createAccessor_clientRequestToken' - This is a unique, case-sensitive identifier that you provide to ensure+-- the idempotency of the operation. An idempotent operation completes no+-- more than once. This identifier is required only if you make a service+-- request directly using an HTTP client. It is generated automatically if+-- you use an Amazon Web Services SDK or the Amazon Web Services CLI.+--+-- 'accessorType', 'createAccessor_accessorType' - The type of accessor.+--+-- Currently accessor type is restricted to @BILLING_TOKEN@.+newCreateAccessor ::+  -- | 'clientRequestToken'+  Prelude.Text ->+  -- | 'accessorType'+  AccessorType ->+  CreateAccessor+newCreateAccessor pClientRequestToken_ pAccessorType_ =+  CreateAccessor'+    { clientRequestToken =+        pClientRequestToken_,+      accessorType = pAccessorType_+    }++-- | This is a unique, case-sensitive identifier that you provide to ensure+-- the idempotency of the operation. An idempotent operation completes no+-- more than once. This identifier is required only if you make a service+-- request directly using an HTTP client. It is generated automatically if+-- you use an Amazon Web Services SDK or the Amazon Web Services CLI.+createAccessor_clientRequestToken :: Lens.Lens' CreateAccessor Prelude.Text+createAccessor_clientRequestToken = Lens.lens (\CreateAccessor' {clientRequestToken} -> clientRequestToken) (\s@CreateAccessor' {} a -> s {clientRequestToken = a} :: CreateAccessor)++-- | The type of accessor.+--+-- Currently accessor type is restricted to @BILLING_TOKEN@.+createAccessor_accessorType :: Lens.Lens' CreateAccessor AccessorType+createAccessor_accessorType = Lens.lens (\CreateAccessor' {accessorType} -> accessorType) (\s@CreateAccessor' {} a -> s {accessorType = a} :: CreateAccessor)++instance Core.AWSRequest CreateAccessor where+  type+    AWSResponse CreateAccessor =+      CreateAccessorResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateAccessorResponse'+            Prelude.<$> (x Data..?> "AccessorId")+            Prelude.<*> (x Data..?> "BillingToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateAccessor where+  hashWithSalt _salt CreateAccessor' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` accessorType++instance Prelude.NFData CreateAccessor where+  rnf CreateAccessor' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf accessorType++instance Data.ToHeaders CreateAccessor where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateAccessor where+  toJSON CreateAccessor' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("ClientRequestToken" Data..= clientRequestToken),+            Prelude.Just ("AccessorType" Data..= accessorType)+          ]+      )++instance Data.ToPath CreateAccessor where+  toPath = Prelude.const "/accessors"++instance Data.ToQuery CreateAccessor where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateAccessorResponse' smart constructor.+data CreateAccessorResponse = CreateAccessorResponse'+  { -- | The unique identifier of the accessor.+    accessorId :: Prelude.Maybe Prelude.Text,+    -- | The billing token is a property of the Accessor. Use this token to make+    -- Ethereum API calls to your Ethereum node. The billing token is used to+    -- track your accessor object for billing Ethereum API requests made to+    -- your Ethereum nodes.+    billingToken :: 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 'CreateAccessorResponse' 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:+--+-- 'accessorId', 'createAccessorResponse_accessorId' - The unique identifier of the accessor.+--+-- 'billingToken', 'createAccessorResponse_billingToken' - The billing token is a property of the Accessor. Use this token to make+-- Ethereum API calls to your Ethereum node. The billing token is used to+-- track your accessor object for billing Ethereum API requests made to+-- your Ethereum nodes.+--+-- 'httpStatus', 'createAccessorResponse_httpStatus' - The response's http status code.+newCreateAccessorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateAccessorResponse+newCreateAccessorResponse pHttpStatus_ =+  CreateAccessorResponse'+    { accessorId =+        Prelude.Nothing,+      billingToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the accessor.+createAccessorResponse_accessorId :: Lens.Lens' CreateAccessorResponse (Prelude.Maybe Prelude.Text)+createAccessorResponse_accessorId = Lens.lens (\CreateAccessorResponse' {accessorId} -> accessorId) (\s@CreateAccessorResponse' {} a -> s {accessorId = a} :: CreateAccessorResponse)++-- | The billing token is a property of the Accessor. Use this token to make+-- Ethereum API calls to your Ethereum node. The billing token is used to+-- track your accessor object for billing Ethereum API requests made to+-- your Ethereum nodes.+createAccessorResponse_billingToken :: Lens.Lens' CreateAccessorResponse (Prelude.Maybe Prelude.Text)+createAccessorResponse_billingToken = Lens.lens (\CreateAccessorResponse' {billingToken} -> billingToken) (\s@CreateAccessorResponse' {} a -> s {billingToken = a} :: CreateAccessorResponse)++-- | The response's http status code.+createAccessorResponse_httpStatus :: Lens.Lens' CreateAccessorResponse Prelude.Int+createAccessorResponse_httpStatus = Lens.lens (\CreateAccessorResponse' {httpStatus} -> httpStatus) (\s@CreateAccessorResponse' {} a -> s {httpStatus = a} :: CreateAccessorResponse)++instance Prelude.NFData CreateAccessorResponse where+  rnf CreateAccessorResponse' {..} =+    Prelude.rnf accessorId+      `Prelude.seq` Prelude.rnf billingToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/CreateMember.hs view
@@ -0,0 +1,236 @@+{-# 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.ManagedBlockChain.CreateMember+-- 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 member within a Managed Blockchain network.+--+-- Applies only to Hyperledger Fabric.+module Amazonka.ManagedBlockChain.CreateMember+  ( -- * Creating a Request+    CreateMember (..),+    newCreateMember,++    -- * Request Lenses+    createMember_clientRequestToken,+    createMember_invitationId,+    createMember_networkId,+    createMember_memberConfiguration,++    -- * Destructuring the Response+    CreateMemberResponse (..),+    newCreateMemberResponse,++    -- * Response Lenses+    createMemberResponse_memberId,+    createMemberResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateMember' smart constructor.+data CreateMember = CreateMember'+  { -- | A unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the operation. An idempotent operation completes no more+    -- than one time. This identifier is required only if you make a service+    -- request directly using an HTTP client. It is generated automatically if+    -- you use an Amazon Web Services SDK or the CLI.+    clientRequestToken :: Prelude.Text,+    -- | The unique identifier of the invitation that is sent to the member to+    -- join the network.+    invitationId :: Prelude.Text,+    -- | The unique identifier of the network in which the member is created.+    networkId :: Prelude.Text,+    -- | Member configuration parameters.+    memberConfiguration :: MemberConfiguration+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateMember' 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:+--+-- 'clientRequestToken', 'createMember_clientRequestToken' - A unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the operation. An idempotent operation completes no more+-- than one time. This identifier is required only if you make a service+-- request directly using an HTTP client. It is generated automatically if+-- you use an Amazon Web Services SDK or the CLI.+--+-- 'invitationId', 'createMember_invitationId' - The unique identifier of the invitation that is sent to the member to+-- join the network.+--+-- 'networkId', 'createMember_networkId' - The unique identifier of the network in which the member is created.+--+-- 'memberConfiguration', 'createMember_memberConfiguration' - Member configuration parameters.+newCreateMember ::+  -- | 'clientRequestToken'+  Prelude.Text ->+  -- | 'invitationId'+  Prelude.Text ->+  -- | 'networkId'+  Prelude.Text ->+  -- | 'memberConfiguration'+  MemberConfiguration ->+  CreateMember+newCreateMember+  pClientRequestToken_+  pInvitationId_+  pNetworkId_+  pMemberConfiguration_ =+    CreateMember'+      { clientRequestToken =+          pClientRequestToken_,+        invitationId = pInvitationId_,+        networkId = pNetworkId_,+        memberConfiguration = pMemberConfiguration_+      }++-- | A unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the operation. An idempotent operation completes no more+-- than one time. This identifier is required only if you make a service+-- request directly using an HTTP client. It is generated automatically if+-- you use an Amazon Web Services SDK or the CLI.+createMember_clientRequestToken :: Lens.Lens' CreateMember Prelude.Text+createMember_clientRequestToken = Lens.lens (\CreateMember' {clientRequestToken} -> clientRequestToken) (\s@CreateMember' {} a -> s {clientRequestToken = a} :: CreateMember)++-- | The unique identifier of the invitation that is sent to the member to+-- join the network.+createMember_invitationId :: Lens.Lens' CreateMember Prelude.Text+createMember_invitationId = Lens.lens (\CreateMember' {invitationId} -> invitationId) (\s@CreateMember' {} a -> s {invitationId = a} :: CreateMember)++-- | The unique identifier of the network in which the member is created.+createMember_networkId :: Lens.Lens' CreateMember Prelude.Text+createMember_networkId = Lens.lens (\CreateMember' {networkId} -> networkId) (\s@CreateMember' {} a -> s {networkId = a} :: CreateMember)++-- | Member configuration parameters.+createMember_memberConfiguration :: Lens.Lens' CreateMember MemberConfiguration+createMember_memberConfiguration = Lens.lens (\CreateMember' {memberConfiguration} -> memberConfiguration) (\s@CreateMember' {} a -> s {memberConfiguration = a} :: CreateMember)++instance Core.AWSRequest CreateMember where+  type AWSResponse CreateMember = CreateMemberResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateMemberResponse'+            Prelude.<$> (x Data..?> "MemberId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateMember where+  hashWithSalt _salt CreateMember' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` invitationId+      `Prelude.hashWithSalt` networkId+      `Prelude.hashWithSalt` memberConfiguration++instance Prelude.NFData CreateMember where+  rnf CreateMember' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf invitationId+      `Prelude.seq` Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf memberConfiguration++instance Data.ToHeaders CreateMember where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateMember where+  toJSON CreateMember' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("ClientRequestToken" Data..= clientRequestToken),+            Prelude.Just ("InvitationId" Data..= invitationId),+            Prelude.Just+              ("MemberConfiguration" Data..= memberConfiguration)+          ]+      )++instance Data.ToPath CreateMember where+  toPath CreateMember' {..} =+    Prelude.mconcat+      ["/networks/", Data.toBS networkId, "/members"]++instance Data.ToQuery CreateMember where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateMemberResponse' smart constructor.+data CreateMemberResponse = CreateMemberResponse'+  { -- | The unique identifier of the member.+    memberId :: 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 'CreateMemberResponse' 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:+--+-- 'memberId', 'createMemberResponse_memberId' - The unique identifier of the member.+--+-- 'httpStatus', 'createMemberResponse_httpStatus' - The response's http status code.+newCreateMemberResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateMemberResponse+newCreateMemberResponse pHttpStatus_ =+  CreateMemberResponse'+    { memberId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the member.+createMemberResponse_memberId :: Lens.Lens' CreateMemberResponse (Prelude.Maybe Prelude.Text)+createMemberResponse_memberId = Lens.lens (\CreateMemberResponse' {memberId} -> memberId) (\s@CreateMemberResponse' {} a -> s {memberId = a} :: CreateMemberResponse)++-- | The response's http status code.+createMemberResponse_httpStatus :: Lens.Lens' CreateMemberResponse Prelude.Int+createMemberResponse_httpStatus = Lens.lens (\CreateMemberResponse' {httpStatus} -> httpStatus) (\s@CreateMemberResponse' {} a -> s {httpStatus = a} :: CreateMemberResponse)++instance Prelude.NFData CreateMemberResponse where+  rnf CreateMemberResponse' {..} =+    Prelude.rnf memberId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/CreateNetwork.hs view
@@ -0,0 +1,357 @@+{-# 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.ManagedBlockChain.CreateNetwork+-- 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 blockchain network using Amazon Managed Blockchain.+--+-- Applies only to Hyperledger Fabric.+module Amazonka.ManagedBlockChain.CreateNetwork+  ( -- * Creating a Request+    CreateNetwork (..),+    newCreateNetwork,++    -- * Request Lenses+    createNetwork_description,+    createNetwork_frameworkConfiguration,+    createNetwork_tags,+    createNetwork_clientRequestToken,+    createNetwork_name,+    createNetwork_framework,+    createNetwork_frameworkVersion,+    createNetwork_votingPolicy,+    createNetwork_memberConfiguration,++    -- * Destructuring the Response+    CreateNetworkResponse (..),+    newCreateNetworkResponse,++    -- * Response Lenses+    createNetworkResponse_memberId,+    createNetworkResponse_networkId,+    createNetworkResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateNetwork' smart constructor.+data CreateNetwork = CreateNetwork'+  { -- | An optional description for the network.+    description :: Prelude.Maybe Prelude.Text,+    -- | Configuration properties of the blockchain framework relevant to the+    -- network configuration.+    frameworkConfiguration :: Prelude.Maybe NetworkFrameworkConfiguration,+    -- | Tags to assign to the network. Each tag consists of a key and optional+    -- value.+    --+    -- When specifying tags during creation, you can specify multiple key-value+    -- pairs in a single request, with an overall maximum of 50 tags added to+    -- each resource.+    --+    -- For more information about tags, see+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+    -- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+    -- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | This is a unique, case-sensitive identifier that you provide to ensure+    -- the idempotency of the operation. An idempotent operation completes no+    -- more than once. This identifier is required only if you make a service+    -- request directly using an HTTP client. It is generated automatically if+    -- you use an Amazon Web Services SDK or the Amazon Web Services CLI.+    clientRequestToken :: Prelude.Text,+    -- | The name of the network.+    name :: Prelude.Text,+    -- | The blockchain framework that the network uses.+    framework :: Framework,+    -- | The version of the blockchain framework that the network uses.+    frameworkVersion :: Prelude.Text,+    -- | The voting rules used by the network to determine if a proposal is+    -- approved.+    votingPolicy :: VotingPolicy,+    -- | Configuration properties for the first member within the network.+    memberConfiguration :: MemberConfiguration+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateNetwork' 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', 'createNetwork_description' - An optional description for the network.+--+-- 'frameworkConfiguration', 'createNetwork_frameworkConfiguration' - Configuration properties of the blockchain framework relevant to the+-- network configuration.+--+-- 'tags', 'createNetwork_tags' - Tags to assign to the network. Each tag consists of a key and optional+-- value.+--+-- When specifying tags during creation, you can specify multiple key-value+-- pairs in a single request, with an overall maximum of 50 tags added to+-- each resource.+--+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+--+-- 'clientRequestToken', 'createNetwork_clientRequestToken' - This is a unique, case-sensitive identifier that you provide to ensure+-- the idempotency of the operation. An idempotent operation completes no+-- more than once. This identifier is required only if you make a service+-- request directly using an HTTP client. It is generated automatically if+-- you use an Amazon Web Services SDK or the Amazon Web Services CLI.+--+-- 'name', 'createNetwork_name' - The name of the network.+--+-- 'framework', 'createNetwork_framework' - The blockchain framework that the network uses.+--+-- 'frameworkVersion', 'createNetwork_frameworkVersion' - The version of the blockchain framework that the network uses.+--+-- 'votingPolicy', 'createNetwork_votingPolicy' - The voting rules used by the network to determine if a proposal is+-- approved.+--+-- 'memberConfiguration', 'createNetwork_memberConfiguration' - Configuration properties for the first member within the network.+newCreateNetwork ::+  -- | 'clientRequestToken'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  -- | 'framework'+  Framework ->+  -- | 'frameworkVersion'+  Prelude.Text ->+  -- | 'votingPolicy'+  VotingPolicy ->+  -- | 'memberConfiguration'+  MemberConfiguration ->+  CreateNetwork+newCreateNetwork+  pClientRequestToken_+  pName_+  pFramework_+  pFrameworkVersion_+  pVotingPolicy_+  pMemberConfiguration_ =+    CreateNetwork'+      { description = Prelude.Nothing,+        frameworkConfiguration = Prelude.Nothing,+        tags = Prelude.Nothing,+        clientRequestToken = pClientRequestToken_,+        name = pName_,+        framework = pFramework_,+        frameworkVersion = pFrameworkVersion_,+        votingPolicy = pVotingPolicy_,+        memberConfiguration = pMemberConfiguration_+      }++-- | An optional description for the network.+createNetwork_description :: Lens.Lens' CreateNetwork (Prelude.Maybe Prelude.Text)+createNetwork_description = Lens.lens (\CreateNetwork' {description} -> description) (\s@CreateNetwork' {} a -> s {description = a} :: CreateNetwork)++-- | Configuration properties of the blockchain framework relevant to the+-- network configuration.+createNetwork_frameworkConfiguration :: Lens.Lens' CreateNetwork (Prelude.Maybe NetworkFrameworkConfiguration)+createNetwork_frameworkConfiguration = Lens.lens (\CreateNetwork' {frameworkConfiguration} -> frameworkConfiguration) (\s@CreateNetwork' {} a -> s {frameworkConfiguration = a} :: CreateNetwork)++-- | Tags to assign to the network. Each tag consists of a key and optional+-- value.+--+-- When specifying tags during creation, you can specify multiple key-value+-- pairs in a single request, with an overall maximum of 50 tags added to+-- each resource.+--+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+createNetwork_tags :: Lens.Lens' CreateNetwork (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createNetwork_tags = Lens.lens (\CreateNetwork' {tags} -> tags) (\s@CreateNetwork' {} a -> s {tags = a} :: CreateNetwork) Prelude.. Lens.mapping Lens.coerced++-- | This is a unique, case-sensitive identifier that you provide to ensure+-- the idempotency of the operation. An idempotent operation completes no+-- more than once. This identifier is required only if you make a service+-- request directly using an HTTP client. It is generated automatically if+-- you use an Amazon Web Services SDK or the Amazon Web Services CLI.+createNetwork_clientRequestToken :: Lens.Lens' CreateNetwork Prelude.Text+createNetwork_clientRequestToken = Lens.lens (\CreateNetwork' {clientRequestToken} -> clientRequestToken) (\s@CreateNetwork' {} a -> s {clientRequestToken = a} :: CreateNetwork)++-- | The name of the network.+createNetwork_name :: Lens.Lens' CreateNetwork Prelude.Text+createNetwork_name = Lens.lens (\CreateNetwork' {name} -> name) (\s@CreateNetwork' {} a -> s {name = a} :: CreateNetwork)++-- | The blockchain framework that the network uses.+createNetwork_framework :: Lens.Lens' CreateNetwork Framework+createNetwork_framework = Lens.lens (\CreateNetwork' {framework} -> framework) (\s@CreateNetwork' {} a -> s {framework = a} :: CreateNetwork)++-- | The version of the blockchain framework that the network uses.+createNetwork_frameworkVersion :: Lens.Lens' CreateNetwork Prelude.Text+createNetwork_frameworkVersion = Lens.lens (\CreateNetwork' {frameworkVersion} -> frameworkVersion) (\s@CreateNetwork' {} a -> s {frameworkVersion = a} :: CreateNetwork)++-- | The voting rules used by the network to determine if a proposal is+-- approved.+createNetwork_votingPolicy :: Lens.Lens' CreateNetwork VotingPolicy+createNetwork_votingPolicy = Lens.lens (\CreateNetwork' {votingPolicy} -> votingPolicy) (\s@CreateNetwork' {} a -> s {votingPolicy = a} :: CreateNetwork)++-- | Configuration properties for the first member within the network.+createNetwork_memberConfiguration :: Lens.Lens' CreateNetwork MemberConfiguration+createNetwork_memberConfiguration = Lens.lens (\CreateNetwork' {memberConfiguration} -> memberConfiguration) (\s@CreateNetwork' {} a -> s {memberConfiguration = a} :: CreateNetwork)++instance Core.AWSRequest CreateNetwork where+  type+    AWSResponse CreateNetwork =+      CreateNetworkResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateNetworkResponse'+            Prelude.<$> (x Data..?> "MemberId")+            Prelude.<*> (x Data..?> "NetworkId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateNetwork where+  hashWithSalt _salt CreateNetwork' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` frameworkConfiguration+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` framework+      `Prelude.hashWithSalt` frameworkVersion+      `Prelude.hashWithSalt` votingPolicy+      `Prelude.hashWithSalt` memberConfiguration++instance Prelude.NFData CreateNetwork where+  rnf CreateNetwork' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf frameworkConfiguration+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf framework+      `Prelude.seq` Prelude.rnf frameworkVersion+      `Prelude.seq` Prelude.rnf votingPolicy+      `Prelude.seq` Prelude.rnf memberConfiguration++instance Data.ToHeaders CreateNetwork where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateNetwork where+  toJSON CreateNetwork' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("FrameworkConfiguration" Data..=)+              Prelude.<$> frameworkConfiguration,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("ClientRequestToken" Data..= clientRequestToken),+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("Framework" Data..= framework),+            Prelude.Just+              ("FrameworkVersion" Data..= frameworkVersion),+            Prelude.Just ("VotingPolicy" Data..= votingPolicy),+            Prelude.Just+              ("MemberConfiguration" Data..= memberConfiguration)+          ]+      )++instance Data.ToPath CreateNetwork where+  toPath = Prelude.const "/networks"++instance Data.ToQuery CreateNetwork where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateNetworkResponse' smart constructor.+data CreateNetworkResponse = CreateNetworkResponse'+  { -- | The unique identifier for the first member within the network.+    memberId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the network.+    networkId :: 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 'CreateNetworkResponse' 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:+--+-- 'memberId', 'createNetworkResponse_memberId' - The unique identifier for the first member within the network.+--+-- 'networkId', 'createNetworkResponse_networkId' - The unique identifier for the network.+--+-- 'httpStatus', 'createNetworkResponse_httpStatus' - The response's http status code.+newCreateNetworkResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateNetworkResponse+newCreateNetworkResponse pHttpStatus_ =+  CreateNetworkResponse'+    { memberId = Prelude.Nothing,+      networkId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for the first member within the network.+createNetworkResponse_memberId :: Lens.Lens' CreateNetworkResponse (Prelude.Maybe Prelude.Text)+createNetworkResponse_memberId = Lens.lens (\CreateNetworkResponse' {memberId} -> memberId) (\s@CreateNetworkResponse' {} a -> s {memberId = a} :: CreateNetworkResponse)++-- | The unique identifier for the network.+createNetworkResponse_networkId :: Lens.Lens' CreateNetworkResponse (Prelude.Maybe Prelude.Text)+createNetworkResponse_networkId = Lens.lens (\CreateNetworkResponse' {networkId} -> networkId) (\s@CreateNetworkResponse' {} a -> s {networkId = a} :: CreateNetworkResponse)++-- | The response's http status code.+createNetworkResponse_httpStatus :: Lens.Lens' CreateNetworkResponse Prelude.Int+createNetworkResponse_httpStatus = Lens.lens (\CreateNetworkResponse' {httpStatus} -> httpStatus) (\s@CreateNetworkResponse' {} a -> s {httpStatus = a} :: CreateNetworkResponse)++instance Prelude.NFData CreateNetworkResponse where+  rnf CreateNetworkResponse' {..} =+    Prelude.rnf memberId+      `Prelude.seq` Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/CreateNode.hs view
@@ -0,0 +1,311 @@+{-# 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.ManagedBlockChain.CreateNode+-- 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 node on the specified blockchain network.+--+-- Applies to Hyperledger Fabric and Ethereum.+module Amazonka.ManagedBlockChain.CreateNode+  ( -- * Creating a Request+    CreateNode (..),+    newCreateNode,++    -- * Request Lenses+    createNode_memberId,+    createNode_tags,+    createNode_clientRequestToken,+    createNode_networkId,+    createNode_nodeConfiguration,++    -- * Destructuring the Response+    CreateNodeResponse (..),+    newCreateNodeResponse,++    -- * Response Lenses+    createNodeResponse_nodeId,+    createNodeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateNode' smart constructor.+data CreateNode = CreateNode'+  { -- | The unique identifier of the member that owns this node.+    --+    -- Applies only to Hyperledger Fabric.+    memberId :: Prelude.Maybe Prelude.Text,+    -- | Tags to assign to the node. Each tag consists of a key and optional+    -- value.+    --+    -- When specifying tags during creation, you can specify multiple key-value+    -- pairs in a single request, with an overall maximum of 50 tags added to+    -- each resource.+    --+    -- For more information about tags, see+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+    -- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+    -- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the operation. An idempotent operation completes no more+    -- than one time. This identifier is required only if you make a service+    -- request directly using an HTTP client. It is generated automatically if+    -- you use an Amazon Web Services SDK or the CLI.+    clientRequestToken :: Prelude.Text,+    -- | The unique identifier of the network for the node.+    --+    -- Ethereum public networks have the following @NetworkId@s:+    --+    -- -   @n-ethereum-mainnet@+    --+    -- -   @n-ethereum-goerli@+    --+    -- -   @n-ethereum-rinkeby@+    --+    -- -   @n-ethereum-ropsten@+    networkId :: Prelude.Text,+    -- | The properties of a node configuration.+    nodeConfiguration :: NodeConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateNode' 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:+--+-- 'memberId', 'createNode_memberId' - The unique identifier of the member that owns this node.+--+-- Applies only to Hyperledger Fabric.+--+-- 'tags', 'createNode_tags' - Tags to assign to the node. Each tag consists of a key and optional+-- value.+--+-- When specifying tags during creation, you can specify multiple key-value+-- pairs in a single request, with an overall maximum of 50 tags added to+-- each resource.+--+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+--+-- 'clientRequestToken', 'createNode_clientRequestToken' - A unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the operation. An idempotent operation completes no more+-- than one time. This identifier is required only if you make a service+-- request directly using an HTTP client. It is generated automatically if+-- you use an Amazon Web Services SDK or the CLI.+--+-- 'networkId', 'createNode_networkId' - The unique identifier of the network for the node.+--+-- Ethereum public networks have the following @NetworkId@s:+--+-- -   @n-ethereum-mainnet@+--+-- -   @n-ethereum-goerli@+--+-- -   @n-ethereum-rinkeby@+--+-- -   @n-ethereum-ropsten@+--+-- 'nodeConfiguration', 'createNode_nodeConfiguration' - The properties of a node configuration.+newCreateNode ::+  -- | 'clientRequestToken'+  Prelude.Text ->+  -- | 'networkId'+  Prelude.Text ->+  -- | 'nodeConfiguration'+  NodeConfiguration ->+  CreateNode+newCreateNode+  pClientRequestToken_+  pNetworkId_+  pNodeConfiguration_ =+    CreateNode'+      { memberId = Prelude.Nothing,+        tags = Prelude.Nothing,+        clientRequestToken = pClientRequestToken_,+        networkId = pNetworkId_,+        nodeConfiguration = pNodeConfiguration_+      }++-- | The unique identifier of the member that owns this node.+--+-- Applies only to Hyperledger Fabric.+createNode_memberId :: Lens.Lens' CreateNode (Prelude.Maybe Prelude.Text)+createNode_memberId = Lens.lens (\CreateNode' {memberId} -> memberId) (\s@CreateNode' {} a -> s {memberId = a} :: CreateNode)++-- | Tags to assign to the node. Each tag consists of a key and optional+-- value.+--+-- When specifying tags during creation, you can specify multiple key-value+-- pairs in a single request, with an overall maximum of 50 tags added to+-- each resource.+--+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+createNode_tags :: Lens.Lens' CreateNode (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createNode_tags = Lens.lens (\CreateNode' {tags} -> tags) (\s@CreateNode' {} a -> s {tags = a} :: CreateNode) Prelude.. Lens.mapping Lens.coerced++-- | A unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the operation. An idempotent operation completes no more+-- than one time. This identifier is required only if you make a service+-- request directly using an HTTP client. It is generated automatically if+-- you use an Amazon Web Services SDK or the CLI.+createNode_clientRequestToken :: Lens.Lens' CreateNode Prelude.Text+createNode_clientRequestToken = Lens.lens (\CreateNode' {clientRequestToken} -> clientRequestToken) (\s@CreateNode' {} a -> s {clientRequestToken = a} :: CreateNode)++-- | The unique identifier of the network for the node.+--+-- Ethereum public networks have the following @NetworkId@s:+--+-- -   @n-ethereum-mainnet@+--+-- -   @n-ethereum-goerli@+--+-- -   @n-ethereum-rinkeby@+--+-- -   @n-ethereum-ropsten@+createNode_networkId :: Lens.Lens' CreateNode Prelude.Text+createNode_networkId = Lens.lens (\CreateNode' {networkId} -> networkId) (\s@CreateNode' {} a -> s {networkId = a} :: CreateNode)++-- | The properties of a node configuration.+createNode_nodeConfiguration :: Lens.Lens' CreateNode NodeConfiguration+createNode_nodeConfiguration = Lens.lens (\CreateNode' {nodeConfiguration} -> nodeConfiguration) (\s@CreateNode' {} a -> s {nodeConfiguration = a} :: CreateNode)++instance Core.AWSRequest CreateNode where+  type AWSResponse CreateNode = CreateNodeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateNodeResponse'+            Prelude.<$> (x Data..?> "NodeId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateNode where+  hashWithSalt _salt CreateNode' {..} =+    _salt+      `Prelude.hashWithSalt` memberId+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` networkId+      `Prelude.hashWithSalt` nodeConfiguration++instance Prelude.NFData CreateNode where+  rnf CreateNode' {..} =+    Prelude.rnf memberId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf nodeConfiguration++instance Data.ToHeaders CreateNode where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateNode where+  toJSON CreateNode' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MemberId" Data..=) Prelude.<$> memberId,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("ClientRequestToken" Data..= clientRequestToken),+            Prelude.Just+              ("NodeConfiguration" Data..= nodeConfiguration)+          ]+      )++instance Data.ToPath CreateNode where+  toPath CreateNode' {..} =+    Prelude.mconcat+      ["/networks/", Data.toBS networkId, "/nodes"]++instance Data.ToQuery CreateNode where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateNodeResponse' smart constructor.+data CreateNodeResponse = CreateNodeResponse'+  { -- | The unique identifier of the node.+    nodeId :: 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 'CreateNodeResponse' 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:+--+-- 'nodeId', 'createNodeResponse_nodeId' - The unique identifier of the node.+--+-- 'httpStatus', 'createNodeResponse_httpStatus' - The response's http status code.+newCreateNodeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateNodeResponse+newCreateNodeResponse pHttpStatus_ =+  CreateNodeResponse'+    { nodeId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the node.+createNodeResponse_nodeId :: Lens.Lens' CreateNodeResponse (Prelude.Maybe Prelude.Text)+createNodeResponse_nodeId = Lens.lens (\CreateNodeResponse' {nodeId} -> nodeId) (\s@CreateNodeResponse' {} a -> s {nodeId = a} :: CreateNodeResponse)++-- | The response's http status code.+createNodeResponse_httpStatus :: Lens.Lens' CreateNodeResponse Prelude.Int+createNodeResponse_httpStatus = Lens.lens (\CreateNodeResponse' {httpStatus} -> httpStatus) (\s@CreateNodeResponse' {} a -> s {httpStatus = a} :: CreateNodeResponse)++instance Prelude.NFData CreateNodeResponse where+  rnf CreateNodeResponse' {..} =+    Prelude.rnf nodeId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/CreateProposal.hs view
@@ -0,0 +1,319 @@+{-# 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.ManagedBlockChain.CreateProposal+-- 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 proposal for a change to the network that other members of the+-- network can vote on, for example, a proposal to add a new member to the+-- network. Any member can create a proposal.+--+-- Applies only to Hyperledger Fabric.+module Amazonka.ManagedBlockChain.CreateProposal+  ( -- * Creating a Request+    CreateProposal (..),+    newCreateProposal,++    -- * Request Lenses+    createProposal_description,+    createProposal_tags,+    createProposal_clientRequestToken,+    createProposal_networkId,+    createProposal_memberId,+    createProposal_actions,++    -- * Destructuring the Response+    CreateProposalResponse (..),+    newCreateProposalResponse,++    -- * Response Lenses+    createProposalResponse_proposalId,+    createProposalResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateProposal' smart constructor.+data CreateProposal = CreateProposal'+  { -- | A description for the proposal that is visible to voting members, for+    -- example, \"Proposal to add Example Corp. as member.\"+    description :: Prelude.Maybe Prelude.Text,+    -- | Tags to assign to the proposal. Each tag consists of a key and optional+    -- value.+    --+    -- When specifying tags during creation, you can specify multiple key-value+    -- pairs in a single request, with an overall maximum of 50 tags added to+    -- each resource. If the proposal is for a network invitation, the+    -- invitation inherits the tags added to the proposal.+    --+    -- For more information about tags, see+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+    -- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+    -- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the operation. An idempotent operation completes no more+    -- than one time. This identifier is required only if you make a service+    -- request directly using an HTTP client. It is generated automatically if+    -- you use an Amazon Web Services SDK or the CLI.+    clientRequestToken :: Prelude.Text,+    -- | The unique identifier of the network for which the proposal is made.+    networkId :: Prelude.Text,+    -- | The unique identifier of the member that is creating the proposal. This+    -- identifier is especially useful for identifying the member making the+    -- proposal when multiple members exist in a single Amazon Web Services+    -- account.+    memberId :: Prelude.Text,+    -- | The type of actions proposed, such as inviting a member or removing a+    -- member. The types of @Actions@ in a proposal are mutually exclusive. For+    -- example, a proposal with @Invitations@ actions cannot also contain+    -- @Removals@ actions.+    actions :: ProposalActions+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateProposal' 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', 'createProposal_description' - A description for the proposal that is visible to voting members, for+-- example, \"Proposal to add Example Corp. as member.\"+--+-- 'tags', 'createProposal_tags' - Tags to assign to the proposal. Each tag consists of a key and optional+-- value.+--+-- When specifying tags during creation, you can specify multiple key-value+-- pairs in a single request, with an overall maximum of 50 tags added to+-- each resource. If the proposal is for a network invitation, the+-- invitation inherits the tags added to the proposal.+--+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+--+-- 'clientRequestToken', 'createProposal_clientRequestToken' - A unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the operation. An idempotent operation completes no more+-- than one time. This identifier is required only if you make a service+-- request directly using an HTTP client. It is generated automatically if+-- you use an Amazon Web Services SDK or the CLI.+--+-- 'networkId', 'createProposal_networkId' - The unique identifier of the network for which the proposal is made.+--+-- 'memberId', 'createProposal_memberId' - The unique identifier of the member that is creating the proposal. This+-- identifier is especially useful for identifying the member making the+-- proposal when multiple members exist in a single Amazon Web Services+-- account.+--+-- 'actions', 'createProposal_actions' - The type of actions proposed, such as inviting a member or removing a+-- member. The types of @Actions@ in a proposal are mutually exclusive. For+-- example, a proposal with @Invitations@ actions cannot also contain+-- @Removals@ actions.+newCreateProposal ::+  -- | 'clientRequestToken'+  Prelude.Text ->+  -- | 'networkId'+  Prelude.Text ->+  -- | 'memberId'+  Prelude.Text ->+  -- | 'actions'+  ProposalActions ->+  CreateProposal+newCreateProposal+  pClientRequestToken_+  pNetworkId_+  pMemberId_+  pActions_ =+    CreateProposal'+      { description = Prelude.Nothing,+        tags = Prelude.Nothing,+        clientRequestToken = pClientRequestToken_,+        networkId = pNetworkId_,+        memberId = pMemberId_,+        actions = pActions_+      }++-- | A description for the proposal that is visible to voting members, for+-- example, \"Proposal to add Example Corp. as member.\"+createProposal_description :: Lens.Lens' CreateProposal (Prelude.Maybe Prelude.Text)+createProposal_description = Lens.lens (\CreateProposal' {description} -> description) (\s@CreateProposal' {} a -> s {description = a} :: CreateProposal)++-- | Tags to assign to the proposal. Each tag consists of a key and optional+-- value.+--+-- When specifying tags during creation, you can specify multiple key-value+-- pairs in a single request, with an overall maximum of 50 tags added to+-- each resource. If the proposal is for a network invitation, the+-- invitation inherits the tags added to the proposal.+--+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+createProposal_tags :: Lens.Lens' CreateProposal (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createProposal_tags = Lens.lens (\CreateProposal' {tags} -> tags) (\s@CreateProposal' {} a -> s {tags = a} :: CreateProposal) Prelude.. Lens.mapping Lens.coerced++-- | A unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the operation. An idempotent operation completes no more+-- than one time. This identifier is required only if you make a service+-- request directly using an HTTP client. It is generated automatically if+-- you use an Amazon Web Services SDK or the CLI.+createProposal_clientRequestToken :: Lens.Lens' CreateProposal Prelude.Text+createProposal_clientRequestToken = Lens.lens (\CreateProposal' {clientRequestToken} -> clientRequestToken) (\s@CreateProposal' {} a -> s {clientRequestToken = a} :: CreateProposal)++-- | The unique identifier of the network for which the proposal is made.+createProposal_networkId :: Lens.Lens' CreateProposal Prelude.Text+createProposal_networkId = Lens.lens (\CreateProposal' {networkId} -> networkId) (\s@CreateProposal' {} a -> s {networkId = a} :: CreateProposal)++-- | The unique identifier of the member that is creating the proposal. This+-- identifier is especially useful for identifying the member making the+-- proposal when multiple members exist in a single Amazon Web Services+-- account.+createProposal_memberId :: Lens.Lens' CreateProposal Prelude.Text+createProposal_memberId = Lens.lens (\CreateProposal' {memberId} -> memberId) (\s@CreateProposal' {} a -> s {memberId = a} :: CreateProposal)++-- | The type of actions proposed, such as inviting a member or removing a+-- member. The types of @Actions@ in a proposal are mutually exclusive. For+-- example, a proposal with @Invitations@ actions cannot also contain+-- @Removals@ actions.+createProposal_actions :: Lens.Lens' CreateProposal ProposalActions+createProposal_actions = Lens.lens (\CreateProposal' {actions} -> actions) (\s@CreateProposal' {} a -> s {actions = a} :: CreateProposal)++instance Core.AWSRequest CreateProposal where+  type+    AWSResponse CreateProposal =+      CreateProposalResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateProposalResponse'+            Prelude.<$> (x Data..?> "ProposalId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateProposal where+  hashWithSalt _salt CreateProposal' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` networkId+      `Prelude.hashWithSalt` memberId+      `Prelude.hashWithSalt` actions++instance Prelude.NFData CreateProposal where+  rnf CreateProposal' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf memberId+      `Prelude.seq` Prelude.rnf actions++instance Data.ToHeaders CreateProposal where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateProposal where+  toJSON CreateProposal' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("ClientRequestToken" Data..= clientRequestToken),+            Prelude.Just ("MemberId" Data..= memberId),+            Prelude.Just ("Actions" Data..= actions)+          ]+      )++instance Data.ToPath CreateProposal where+  toPath CreateProposal' {..} =+    Prelude.mconcat+      ["/networks/", Data.toBS networkId, "/proposals"]++instance Data.ToQuery CreateProposal where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateProposalResponse' smart constructor.+data CreateProposalResponse = CreateProposalResponse'+  { -- | The unique identifier of the proposal.+    proposalId :: 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 'CreateProposalResponse' 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:+--+-- 'proposalId', 'createProposalResponse_proposalId' - The unique identifier of the proposal.+--+-- 'httpStatus', 'createProposalResponse_httpStatus' - The response's http status code.+newCreateProposalResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateProposalResponse+newCreateProposalResponse pHttpStatus_ =+  CreateProposalResponse'+    { proposalId =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the proposal.+createProposalResponse_proposalId :: Lens.Lens' CreateProposalResponse (Prelude.Maybe Prelude.Text)+createProposalResponse_proposalId = Lens.lens (\CreateProposalResponse' {proposalId} -> proposalId) (\s@CreateProposalResponse' {} a -> s {proposalId = a} :: CreateProposalResponse)++-- | The response's http status code.+createProposalResponse_httpStatus :: Lens.Lens' CreateProposalResponse Prelude.Int+createProposalResponse_httpStatus = Lens.lens (\CreateProposalResponse' {httpStatus} -> httpStatus) (\s@CreateProposalResponse' {} a -> s {httpStatus = a} :: CreateProposalResponse)++instance Prelude.NFData CreateProposalResponse where+  rnf CreateProposalResponse' {..} =+    Prelude.rnf proposalId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/DeleteAccessor.hs view
@@ -0,0 +1,157 @@+{-# 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.ManagedBlockChain.DeleteAccessor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The token based access feature is in preview release for Ethereum on+-- Amazon Managed Blockchain and is subject to change. We recommend that+-- you use this feature only with test scenarios, and not in production+-- environments.+--+-- Deletes an accessor that your Amazon Web Services account owns. An+-- accessor object is a container that has the information required for+-- token based access to your Ethereum nodes including, the+-- @BILLING_TOKEN@. After an accessor is deleted, the status of the+-- accessor changes from @AVAILABLE@ to @PENDING_DELETION@. An accessor in+-- the @PENDING_DELETION@ state can’t be used for new WebSocket requests or+-- HTTP requests. However, WebSocket connections that were initiated while+-- the accessor was in the @AVAILABLE@ state remain open until they expire+-- (up to 2 hours).+module Amazonka.ManagedBlockChain.DeleteAccessor+  ( -- * Creating a Request+    DeleteAccessor (..),+    newDeleteAccessor,++    -- * Request Lenses+    deleteAccessor_accessorId,++    -- * Destructuring the Response+    DeleteAccessorResponse (..),+    newDeleteAccessorResponse,++    -- * Response Lenses+    deleteAccessorResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteAccessor' smart constructor.+data DeleteAccessor = DeleteAccessor'+  { -- | The unique identifier of the accessor.+    accessorId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAccessor' 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:+--+-- 'accessorId', 'deleteAccessor_accessorId' - The unique identifier of the accessor.+newDeleteAccessor ::+  -- | 'accessorId'+  Prelude.Text ->+  DeleteAccessor+newDeleteAccessor pAccessorId_ =+  DeleteAccessor' {accessorId = pAccessorId_}++-- | The unique identifier of the accessor.+deleteAccessor_accessorId :: Lens.Lens' DeleteAccessor Prelude.Text+deleteAccessor_accessorId = Lens.lens (\DeleteAccessor' {accessorId} -> accessorId) (\s@DeleteAccessor' {} a -> s {accessorId = a} :: DeleteAccessor)++instance Core.AWSRequest DeleteAccessor where+  type+    AWSResponse DeleteAccessor =+      DeleteAccessorResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteAccessorResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteAccessor where+  hashWithSalt _salt DeleteAccessor' {..} =+    _salt `Prelude.hashWithSalt` accessorId++instance Prelude.NFData DeleteAccessor where+  rnf DeleteAccessor' {..} = Prelude.rnf accessorId++instance Data.ToHeaders DeleteAccessor where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteAccessor where+  toPath DeleteAccessor' {..} =+    Prelude.mconcat+      ["/accessors/", Data.toBS accessorId]++instance Data.ToQuery DeleteAccessor where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAccessorResponse' smart constructor.+data DeleteAccessorResponse = DeleteAccessorResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAccessorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteAccessorResponse_httpStatus' - The response's http status code.+newDeleteAccessorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteAccessorResponse+newDeleteAccessorResponse pHttpStatus_ =+  DeleteAccessorResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteAccessorResponse_httpStatus :: Lens.Lens' DeleteAccessorResponse Prelude.Int+deleteAccessorResponse_httpStatus = Lens.lens (\DeleteAccessorResponse' {httpStatus} -> httpStatus) (\s@DeleteAccessorResponse' {} a -> s {httpStatus = a} :: DeleteAccessorResponse)++instance Prelude.NFData DeleteAccessorResponse where+  rnf DeleteAccessorResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/DeleteMember.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.ManagedBlockChain.DeleteMember+-- 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 member. Deleting a member removes the member and all+-- associated resources from the network. @DeleteMember@ can only be called+-- for a specified @MemberId@ if the principal performing the action is+-- associated with the Amazon Web Services account that owns the member. In+-- all other cases, the @DeleteMember@ action is carried out as the result+-- of an approved proposal to remove a member. If @MemberId@ is the last+-- member in a network specified by the last Amazon Web Services account,+-- the network is deleted also.+--+-- Applies only to Hyperledger Fabric.+module Amazonka.ManagedBlockChain.DeleteMember+  ( -- * Creating a Request+    DeleteMember (..),+    newDeleteMember,++    -- * Request Lenses+    deleteMember_networkId,+    deleteMember_memberId,++    -- * Destructuring the Response+    DeleteMemberResponse (..),+    newDeleteMemberResponse,++    -- * Response Lenses+    deleteMemberResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteMember' smart constructor.+data DeleteMember = DeleteMember'+  { -- | The unique identifier of the network from which the member is removed.+    networkId :: Prelude.Text,+    -- | The unique identifier of the member to remove.+    memberId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteMember' 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:+--+-- 'networkId', 'deleteMember_networkId' - The unique identifier of the network from which the member is removed.+--+-- 'memberId', 'deleteMember_memberId' - The unique identifier of the member to remove.+newDeleteMember ::+  -- | 'networkId'+  Prelude.Text ->+  -- | 'memberId'+  Prelude.Text ->+  DeleteMember+newDeleteMember pNetworkId_ pMemberId_ =+  DeleteMember'+    { networkId = pNetworkId_,+      memberId = pMemberId_+    }++-- | The unique identifier of the network from which the member is removed.+deleteMember_networkId :: Lens.Lens' DeleteMember Prelude.Text+deleteMember_networkId = Lens.lens (\DeleteMember' {networkId} -> networkId) (\s@DeleteMember' {} a -> s {networkId = a} :: DeleteMember)++-- | The unique identifier of the member to remove.+deleteMember_memberId :: Lens.Lens' DeleteMember Prelude.Text+deleteMember_memberId = Lens.lens (\DeleteMember' {memberId} -> memberId) (\s@DeleteMember' {} a -> s {memberId = a} :: DeleteMember)++instance Core.AWSRequest DeleteMember where+  type AWSResponse DeleteMember = DeleteMemberResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteMemberResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteMember where+  hashWithSalt _salt DeleteMember' {..} =+    _salt+      `Prelude.hashWithSalt` networkId+      `Prelude.hashWithSalt` memberId++instance Prelude.NFData DeleteMember where+  rnf DeleteMember' {..} =+    Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf memberId++instance Data.ToHeaders DeleteMember where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteMember where+  toPath DeleteMember' {..} =+    Prelude.mconcat+      [ "/networks/",+        Data.toBS networkId,+        "/members/",+        Data.toBS memberId+      ]++instance Data.ToQuery DeleteMember where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteMemberResponse' smart constructor.+data DeleteMemberResponse = DeleteMemberResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteMemberResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteMemberResponse_httpStatus' - The response's http status code.+newDeleteMemberResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteMemberResponse+newDeleteMemberResponse pHttpStatus_ =+  DeleteMemberResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteMemberResponse_httpStatus :: Lens.Lens' DeleteMemberResponse Prelude.Int+deleteMemberResponse_httpStatus = Lens.lens (\DeleteMemberResponse' {httpStatus} -> httpStatus) (\s@DeleteMemberResponse' {} a -> s {httpStatus = a} :: DeleteMemberResponse)++instance Prelude.NFData DeleteMemberResponse where+  rnf DeleteMemberResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/DeleteNode.hs view
@@ -0,0 +1,218 @@+{-# 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.ManagedBlockChain.DeleteNode+-- 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 node that your Amazon Web Services account owns. All data on+-- the node is lost and cannot be recovered.+--+-- Applies to Hyperledger Fabric and Ethereum.+module Amazonka.ManagedBlockChain.DeleteNode+  ( -- * Creating a Request+    DeleteNode (..),+    newDeleteNode,++    -- * Request Lenses+    deleteNode_memberId,+    deleteNode_networkId,+    deleteNode_nodeId,++    -- * Destructuring the Response+    DeleteNodeResponse (..),+    newDeleteNodeResponse,++    -- * Response Lenses+    deleteNodeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteNode' smart constructor.+data DeleteNode = DeleteNode'+  { -- | The unique identifier of the member that owns this node.+    --+    -- Applies only to Hyperledger Fabric and is required for Hyperledger+    -- Fabric.+    memberId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the network that the node is on.+    --+    -- Ethereum public networks have the following @NetworkId@s:+    --+    -- -   @n-ethereum-mainnet@+    --+    -- -   @n-ethereum-goerli@+    --+    -- -   @n-ethereum-rinkeby@+    --+    -- -   @n-ethereum-ropsten@+    networkId :: Prelude.Text,+    -- | The unique identifier of the node.+    nodeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteNode' 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:+--+-- 'memberId', 'deleteNode_memberId' - The unique identifier of the member that owns this node.+--+-- Applies only to Hyperledger Fabric and is required for Hyperledger+-- Fabric.+--+-- 'networkId', 'deleteNode_networkId' - The unique identifier of the network that the node is on.+--+-- Ethereum public networks have the following @NetworkId@s:+--+-- -   @n-ethereum-mainnet@+--+-- -   @n-ethereum-goerli@+--+-- -   @n-ethereum-rinkeby@+--+-- -   @n-ethereum-ropsten@+--+-- 'nodeId', 'deleteNode_nodeId' - The unique identifier of the node.+newDeleteNode ::+  -- | 'networkId'+  Prelude.Text ->+  -- | 'nodeId'+  Prelude.Text ->+  DeleteNode+newDeleteNode pNetworkId_ pNodeId_ =+  DeleteNode'+    { memberId = Prelude.Nothing,+      networkId = pNetworkId_,+      nodeId = pNodeId_+    }++-- | The unique identifier of the member that owns this node.+--+-- Applies only to Hyperledger Fabric and is required for Hyperledger+-- Fabric.+deleteNode_memberId :: Lens.Lens' DeleteNode (Prelude.Maybe Prelude.Text)+deleteNode_memberId = Lens.lens (\DeleteNode' {memberId} -> memberId) (\s@DeleteNode' {} a -> s {memberId = a} :: DeleteNode)++-- | The unique identifier of the network that the node is on.+--+-- Ethereum public networks have the following @NetworkId@s:+--+-- -   @n-ethereum-mainnet@+--+-- -   @n-ethereum-goerli@+--+-- -   @n-ethereum-rinkeby@+--+-- -   @n-ethereum-ropsten@+deleteNode_networkId :: Lens.Lens' DeleteNode Prelude.Text+deleteNode_networkId = Lens.lens (\DeleteNode' {networkId} -> networkId) (\s@DeleteNode' {} a -> s {networkId = a} :: DeleteNode)++-- | The unique identifier of the node.+deleteNode_nodeId :: Lens.Lens' DeleteNode Prelude.Text+deleteNode_nodeId = Lens.lens (\DeleteNode' {nodeId} -> nodeId) (\s@DeleteNode' {} a -> s {nodeId = a} :: DeleteNode)++instance Core.AWSRequest DeleteNode where+  type AWSResponse DeleteNode = DeleteNodeResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteNodeResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteNode where+  hashWithSalt _salt DeleteNode' {..} =+    _salt+      `Prelude.hashWithSalt` memberId+      `Prelude.hashWithSalt` networkId+      `Prelude.hashWithSalt` nodeId++instance Prelude.NFData DeleteNode where+  rnf DeleteNode' {..} =+    Prelude.rnf memberId+      `Prelude.seq` Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf nodeId++instance Data.ToHeaders DeleteNode where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteNode where+  toPath DeleteNode' {..} =+    Prelude.mconcat+      [ "/networks/",+        Data.toBS networkId,+        "/nodes/",+        Data.toBS nodeId+      ]++instance Data.ToQuery DeleteNode where+  toQuery DeleteNode' {..} =+    Prelude.mconcat ["memberId" Data.=: memberId]++-- | /See:/ 'newDeleteNodeResponse' smart constructor.+data DeleteNodeResponse = DeleteNodeResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteNodeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteNodeResponse_httpStatus' - The response's http status code.+newDeleteNodeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteNodeResponse+newDeleteNodeResponse pHttpStatus_ =+  DeleteNodeResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteNodeResponse_httpStatus :: Lens.Lens' DeleteNodeResponse Prelude.Int+deleteNodeResponse_httpStatus = Lens.lens (\DeleteNodeResponse' {httpStatus} -> httpStatus) (\s@DeleteNodeResponse' {} a -> s {httpStatus = a} :: DeleteNodeResponse)++instance Prelude.NFData DeleteNodeResponse where+  rnf DeleteNodeResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/GetAccessor.hs view
@@ -0,0 +1,163 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ManagedBlockChain.GetAccessor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The token based access feature is in preview release for Ethereum on+-- Amazon Managed Blockchain and is subject to change. We recommend that+-- you use this feature only with test scenarios, and not in production+-- environments.+--+-- Returns detailed information about an accessor. An accessor object is a+-- container that has the information required for token based access to+-- your Ethereum nodes.+module Amazonka.ManagedBlockChain.GetAccessor+  ( -- * Creating a Request+    GetAccessor (..),+    newGetAccessor,++    -- * Request Lenses+    getAccessor_accessorId,++    -- * Destructuring the Response+    GetAccessorResponse (..),+    newGetAccessorResponse,++    -- * Response Lenses+    getAccessorResponse_accessor,+    getAccessorResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetAccessor' smart constructor.+data GetAccessor = GetAccessor'+  { -- | The unique identifier of the accessor.+    accessorId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAccessor' 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:+--+-- 'accessorId', 'getAccessor_accessorId' - The unique identifier of the accessor.+newGetAccessor ::+  -- | 'accessorId'+  Prelude.Text ->+  GetAccessor+newGetAccessor pAccessorId_ =+  GetAccessor' {accessorId = pAccessorId_}++-- | The unique identifier of the accessor.+getAccessor_accessorId :: Lens.Lens' GetAccessor Prelude.Text+getAccessor_accessorId = Lens.lens (\GetAccessor' {accessorId} -> accessorId) (\s@GetAccessor' {} a -> s {accessorId = a} :: GetAccessor)++instance Core.AWSRequest GetAccessor where+  type AWSResponse GetAccessor = GetAccessorResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetAccessorResponse'+            Prelude.<$> (x Data..?> "Accessor")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetAccessor where+  hashWithSalt _salt GetAccessor' {..} =+    _salt `Prelude.hashWithSalt` accessorId++instance Prelude.NFData GetAccessor where+  rnf GetAccessor' {..} = Prelude.rnf accessorId++instance Data.ToHeaders GetAccessor where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetAccessor where+  toPath GetAccessor' {..} =+    Prelude.mconcat+      ["/accessors/", Data.toBS accessorId]++instance Data.ToQuery GetAccessor where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAccessorResponse' smart constructor.+data GetAccessorResponse = GetAccessorResponse'+  { -- | The properties of the accessor.+    accessor :: Prelude.Maybe Accessor,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAccessorResponse' 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:+--+-- 'accessor', 'getAccessorResponse_accessor' - The properties of the accessor.+--+-- 'httpStatus', 'getAccessorResponse_httpStatus' - The response's http status code.+newGetAccessorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetAccessorResponse+newGetAccessorResponse pHttpStatus_ =+  GetAccessorResponse'+    { accessor = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The properties of the accessor.+getAccessorResponse_accessor :: Lens.Lens' GetAccessorResponse (Prelude.Maybe Accessor)+getAccessorResponse_accessor = Lens.lens (\GetAccessorResponse' {accessor} -> accessor) (\s@GetAccessorResponse' {} a -> s {accessor = a} :: GetAccessorResponse)++-- | The response's http status code.+getAccessorResponse_httpStatus :: Lens.Lens' GetAccessorResponse Prelude.Int+getAccessorResponse_httpStatus = Lens.lens (\GetAccessorResponse' {httpStatus} -> httpStatus) (\s@GetAccessorResponse' {} a -> s {httpStatus = a} :: GetAccessorResponse)++instance Prelude.NFData GetAccessorResponse where+  rnf GetAccessorResponse' {..} =+    Prelude.rnf accessor+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/GetMember.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.ManagedBlockChain.GetMember+-- 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 detailed information about a member.+--+-- Applies only to Hyperledger Fabric.+module Amazonka.ManagedBlockChain.GetMember+  ( -- * Creating a Request+    GetMember (..),+    newGetMember,++    -- * Request Lenses+    getMember_networkId,+    getMember_memberId,++    -- * Destructuring the Response+    GetMemberResponse (..),+    newGetMemberResponse,++    -- * Response Lenses+    getMemberResponse_member,+    getMemberResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetMember' smart constructor.+data GetMember = GetMember'+  { -- | The unique identifier of the network to which the member belongs.+    networkId :: Prelude.Text,+    -- | The unique identifier of the member.+    memberId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMember' 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:+--+-- 'networkId', 'getMember_networkId' - The unique identifier of the network to which the member belongs.+--+-- 'memberId', 'getMember_memberId' - The unique identifier of the member.+newGetMember ::+  -- | 'networkId'+  Prelude.Text ->+  -- | 'memberId'+  Prelude.Text ->+  GetMember+newGetMember pNetworkId_ pMemberId_ =+  GetMember'+    { networkId = pNetworkId_,+      memberId = pMemberId_+    }++-- | The unique identifier of the network to which the member belongs.+getMember_networkId :: Lens.Lens' GetMember Prelude.Text+getMember_networkId = Lens.lens (\GetMember' {networkId} -> networkId) (\s@GetMember' {} a -> s {networkId = a} :: GetMember)++-- | The unique identifier of the member.+getMember_memberId :: Lens.Lens' GetMember Prelude.Text+getMember_memberId = Lens.lens (\GetMember' {memberId} -> memberId) (\s@GetMember' {} a -> s {memberId = a} :: GetMember)++instance Core.AWSRequest GetMember where+  type AWSResponse GetMember = GetMemberResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetMemberResponse'+            Prelude.<$> (x Data..?> "Member")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetMember where+  hashWithSalt _salt GetMember' {..} =+    _salt+      `Prelude.hashWithSalt` networkId+      `Prelude.hashWithSalt` memberId++instance Prelude.NFData GetMember where+  rnf GetMember' {..} =+    Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf memberId++instance Data.ToHeaders GetMember where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetMember where+  toPath GetMember' {..} =+    Prelude.mconcat+      [ "/networks/",+        Data.toBS networkId,+        "/members/",+        Data.toBS memberId+      ]++instance Data.ToQuery GetMember where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetMemberResponse' smart constructor.+data GetMemberResponse = GetMemberResponse'+  { -- | The properties of a member.+    member :: Prelude.Maybe Member,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMemberResponse' 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:+--+-- 'member', 'getMemberResponse_member' - The properties of a member.+--+-- 'httpStatus', 'getMemberResponse_httpStatus' - The response's http status code.+newGetMemberResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetMemberResponse+newGetMemberResponse pHttpStatus_ =+  GetMemberResponse'+    { member = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The properties of a member.+getMemberResponse_member :: Lens.Lens' GetMemberResponse (Prelude.Maybe Member)+getMemberResponse_member = Lens.lens (\GetMemberResponse' {member} -> member) (\s@GetMemberResponse' {} a -> s {member = a} :: GetMemberResponse)++-- | The response's http status code.+getMemberResponse_httpStatus :: Lens.Lens' GetMemberResponse Prelude.Int+getMemberResponse_httpStatus = Lens.lens (\GetMemberResponse' {httpStatus} -> httpStatus) (\s@GetMemberResponse' {} a -> s {httpStatus = a} :: GetMemberResponse)++instance Prelude.NFData GetMemberResponse where+  rnf GetMemberResponse' {..} =+    Prelude.rnf member+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/GetNetwork.hs view
@@ -0,0 +1,157 @@+{-# 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.ManagedBlockChain.GetNetwork+-- 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 detailed information about a network.+--+-- Applies to Hyperledger Fabric and Ethereum.+module Amazonka.ManagedBlockChain.GetNetwork+  ( -- * Creating a Request+    GetNetwork (..),+    newGetNetwork,++    -- * Request Lenses+    getNetwork_networkId,++    -- * Destructuring the Response+    GetNetworkResponse (..),+    newGetNetworkResponse,++    -- * Response Lenses+    getNetworkResponse_network,+    getNetworkResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetNetwork' smart constructor.+data GetNetwork = GetNetwork'+  { -- | The unique identifier of the network to get information about.+    networkId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetNetwork' 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:+--+-- 'networkId', 'getNetwork_networkId' - The unique identifier of the network to get information about.+newGetNetwork ::+  -- | 'networkId'+  Prelude.Text ->+  GetNetwork+newGetNetwork pNetworkId_ =+  GetNetwork' {networkId = pNetworkId_}++-- | The unique identifier of the network to get information about.+getNetwork_networkId :: Lens.Lens' GetNetwork Prelude.Text+getNetwork_networkId = Lens.lens (\GetNetwork' {networkId} -> networkId) (\s@GetNetwork' {} a -> s {networkId = a} :: GetNetwork)++instance Core.AWSRequest GetNetwork where+  type AWSResponse GetNetwork = GetNetworkResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetNetworkResponse'+            Prelude.<$> (x Data..?> "Network")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetNetwork where+  hashWithSalt _salt GetNetwork' {..} =+    _salt `Prelude.hashWithSalt` networkId++instance Prelude.NFData GetNetwork where+  rnf GetNetwork' {..} = Prelude.rnf networkId++instance Data.ToHeaders GetNetwork where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetNetwork where+  toPath GetNetwork' {..} =+    Prelude.mconcat ["/networks/", Data.toBS networkId]++instance Data.ToQuery GetNetwork where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetNetworkResponse' smart constructor.+data GetNetworkResponse = GetNetworkResponse'+  { -- | An object containing network configuration parameters.+    network :: Prelude.Maybe Network,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetNetworkResponse' 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:+--+-- 'network', 'getNetworkResponse_network' - An object containing network configuration parameters.+--+-- 'httpStatus', 'getNetworkResponse_httpStatus' - The response's http status code.+newGetNetworkResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetNetworkResponse+newGetNetworkResponse pHttpStatus_ =+  GetNetworkResponse'+    { network = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An object containing network configuration parameters.+getNetworkResponse_network :: Lens.Lens' GetNetworkResponse (Prelude.Maybe Network)+getNetworkResponse_network = Lens.lens (\GetNetworkResponse' {network} -> network) (\s@GetNetworkResponse' {} a -> s {network = a} :: GetNetworkResponse)++-- | The response's http status code.+getNetworkResponse_httpStatus :: Lens.Lens' GetNetworkResponse Prelude.Int+getNetworkResponse_httpStatus = Lens.lens (\GetNetworkResponse' {httpStatus} -> httpStatus) (\s@GetNetworkResponse' {} a -> s {httpStatus = a} :: GetNetworkResponse)++instance Prelude.NFData GetNetworkResponse where+  rnf GetNetworkResponse' {..} =+    Prelude.rnf network+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/GetNode.hs view
@@ -0,0 +1,202 @@+{-# 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.ManagedBlockChain.GetNode+-- 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 detailed information about a node.+--+-- Applies to Hyperledger Fabric and Ethereum.+module Amazonka.ManagedBlockChain.GetNode+  ( -- * Creating a Request+    GetNode (..),+    newGetNode,++    -- * Request Lenses+    getNode_memberId,+    getNode_networkId,+    getNode_nodeId,++    -- * Destructuring the Response+    GetNodeResponse (..),+    newGetNodeResponse,++    -- * Response Lenses+    getNodeResponse_node,+    getNodeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetNode' smart constructor.+data GetNode = GetNode'+  { -- | The unique identifier of the member that owns the node.+    --+    -- Applies only to Hyperledger Fabric and is required for Hyperledger+    -- Fabric.+    memberId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the network that the node is on.+    networkId :: Prelude.Text,+    -- | The unique identifier of the node.+    nodeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetNode' 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:+--+-- 'memberId', 'getNode_memberId' - The unique identifier of the member that owns the node.+--+-- Applies only to Hyperledger Fabric and is required for Hyperledger+-- Fabric.+--+-- 'networkId', 'getNode_networkId' - The unique identifier of the network that the node is on.+--+-- 'nodeId', 'getNode_nodeId' - The unique identifier of the node.+newGetNode ::+  -- | 'networkId'+  Prelude.Text ->+  -- | 'nodeId'+  Prelude.Text ->+  GetNode+newGetNode pNetworkId_ pNodeId_ =+  GetNode'+    { memberId = Prelude.Nothing,+      networkId = pNetworkId_,+      nodeId = pNodeId_+    }++-- | The unique identifier of the member that owns the node.+--+-- Applies only to Hyperledger Fabric and is required for Hyperledger+-- Fabric.+getNode_memberId :: Lens.Lens' GetNode (Prelude.Maybe Prelude.Text)+getNode_memberId = Lens.lens (\GetNode' {memberId} -> memberId) (\s@GetNode' {} a -> s {memberId = a} :: GetNode)++-- | The unique identifier of the network that the node is on.+getNode_networkId :: Lens.Lens' GetNode Prelude.Text+getNode_networkId = Lens.lens (\GetNode' {networkId} -> networkId) (\s@GetNode' {} a -> s {networkId = a} :: GetNode)++-- | The unique identifier of the node.+getNode_nodeId :: Lens.Lens' GetNode Prelude.Text+getNode_nodeId = Lens.lens (\GetNode' {nodeId} -> nodeId) (\s@GetNode' {} a -> s {nodeId = a} :: GetNode)++instance Core.AWSRequest GetNode where+  type AWSResponse GetNode = GetNodeResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetNodeResponse'+            Prelude.<$> (x Data..?> "Node")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetNode where+  hashWithSalt _salt GetNode' {..} =+    _salt+      `Prelude.hashWithSalt` memberId+      `Prelude.hashWithSalt` networkId+      `Prelude.hashWithSalt` nodeId++instance Prelude.NFData GetNode where+  rnf GetNode' {..} =+    Prelude.rnf memberId+      `Prelude.seq` Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf nodeId++instance Data.ToHeaders GetNode where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetNode where+  toPath GetNode' {..} =+    Prelude.mconcat+      [ "/networks/",+        Data.toBS networkId,+        "/nodes/",+        Data.toBS nodeId+      ]++instance Data.ToQuery GetNode where+  toQuery GetNode' {..} =+    Prelude.mconcat ["memberId" Data.=: memberId]++-- | /See:/ 'newGetNodeResponse' smart constructor.+data GetNodeResponse = GetNodeResponse'+  { -- | Properties of the node configuration.+    node :: Prelude.Maybe Node,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetNodeResponse' 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:+--+-- 'node', 'getNodeResponse_node' - Properties of the node configuration.+--+-- 'httpStatus', 'getNodeResponse_httpStatus' - The response's http status code.+newGetNodeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetNodeResponse+newGetNodeResponse pHttpStatus_ =+  GetNodeResponse'+    { node = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Properties of the node configuration.+getNodeResponse_node :: Lens.Lens' GetNodeResponse (Prelude.Maybe Node)+getNodeResponse_node = Lens.lens (\GetNodeResponse' {node} -> node) (\s@GetNodeResponse' {} a -> s {node = a} :: GetNodeResponse)++-- | The response's http status code.+getNodeResponse_httpStatus :: Lens.Lens' GetNodeResponse Prelude.Int+getNodeResponse_httpStatus = Lens.lens (\GetNodeResponse' {httpStatus} -> httpStatus) (\s@GetNodeResponse' {} a -> s {httpStatus = a} :: GetNodeResponse)++instance Prelude.NFData GetNodeResponse where+  rnf GetNodeResponse' {..} =+    Prelude.rnf node+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/GetProposal.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.ManagedBlockChain.GetProposal+-- 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 detailed information about a proposal.+--+-- Applies only to Hyperledger Fabric.+module Amazonka.ManagedBlockChain.GetProposal+  ( -- * Creating a Request+    GetProposal (..),+    newGetProposal,++    -- * Request Lenses+    getProposal_networkId,+    getProposal_proposalId,++    -- * Destructuring the Response+    GetProposalResponse (..),+    newGetProposalResponse,++    -- * Response Lenses+    getProposalResponse_proposal,+    getProposalResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetProposal' smart constructor.+data GetProposal = GetProposal'+  { -- | The unique identifier of the network for which the proposal is made.+    networkId :: Prelude.Text,+    -- | The unique identifier of the proposal.+    proposalId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetProposal' 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:+--+-- 'networkId', 'getProposal_networkId' - The unique identifier of the network for which the proposal is made.+--+-- 'proposalId', 'getProposal_proposalId' - The unique identifier of the proposal.+newGetProposal ::+  -- | 'networkId'+  Prelude.Text ->+  -- | 'proposalId'+  Prelude.Text ->+  GetProposal+newGetProposal pNetworkId_ pProposalId_ =+  GetProposal'+    { networkId = pNetworkId_,+      proposalId = pProposalId_+    }++-- | The unique identifier of the network for which the proposal is made.+getProposal_networkId :: Lens.Lens' GetProposal Prelude.Text+getProposal_networkId = Lens.lens (\GetProposal' {networkId} -> networkId) (\s@GetProposal' {} a -> s {networkId = a} :: GetProposal)++-- | The unique identifier of the proposal.+getProposal_proposalId :: Lens.Lens' GetProposal Prelude.Text+getProposal_proposalId = Lens.lens (\GetProposal' {proposalId} -> proposalId) (\s@GetProposal' {} a -> s {proposalId = a} :: GetProposal)++instance Core.AWSRequest GetProposal where+  type AWSResponse GetProposal = GetProposalResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetProposalResponse'+            Prelude.<$> (x Data..?> "Proposal")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetProposal where+  hashWithSalt _salt GetProposal' {..} =+    _salt+      `Prelude.hashWithSalt` networkId+      `Prelude.hashWithSalt` proposalId++instance Prelude.NFData GetProposal where+  rnf GetProposal' {..} =+    Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf proposalId++instance Data.ToHeaders GetProposal where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetProposal where+  toPath GetProposal' {..} =+    Prelude.mconcat+      [ "/networks/",+        Data.toBS networkId,+        "/proposals/",+        Data.toBS proposalId+      ]++instance Data.ToQuery GetProposal where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetProposalResponse' smart constructor.+data GetProposalResponse = GetProposalResponse'+  { -- | Information about a proposal.+    proposal :: Prelude.Maybe Proposal,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetProposalResponse' 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:+--+-- 'proposal', 'getProposalResponse_proposal' - Information about a proposal.+--+-- 'httpStatus', 'getProposalResponse_httpStatus' - The response's http status code.+newGetProposalResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetProposalResponse+newGetProposalResponse pHttpStatus_ =+  GetProposalResponse'+    { proposal = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about a proposal.+getProposalResponse_proposal :: Lens.Lens' GetProposalResponse (Prelude.Maybe Proposal)+getProposalResponse_proposal = Lens.lens (\GetProposalResponse' {proposal} -> proposal) (\s@GetProposalResponse' {} a -> s {proposal = a} :: GetProposalResponse)++-- | The response's http status code.+getProposalResponse_httpStatus :: Lens.Lens' GetProposalResponse Prelude.Int+getProposalResponse_httpStatus = Lens.lens (\GetProposalResponse' {httpStatus} -> httpStatus) (\s@GetProposalResponse' {} a -> s {httpStatus = a} :: GetProposalResponse)++instance Prelude.NFData GetProposalResponse where+  rnf GetProposalResponse' {..} =+    Prelude.rnf proposal+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/Lens.hs view
@@ -0,0 +1,494 @@+{-# 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.ManagedBlockChain.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.ManagedBlockChain.Lens+  ( -- * Operations++    -- ** CreateAccessor+    createAccessor_clientRequestToken,+    createAccessor_accessorType,+    createAccessorResponse_accessorId,+    createAccessorResponse_billingToken,+    createAccessorResponse_httpStatus,++    -- ** CreateMember+    createMember_clientRequestToken,+    createMember_invitationId,+    createMember_networkId,+    createMember_memberConfiguration,+    createMemberResponse_memberId,+    createMemberResponse_httpStatus,++    -- ** CreateNetwork+    createNetwork_description,+    createNetwork_frameworkConfiguration,+    createNetwork_tags,+    createNetwork_clientRequestToken,+    createNetwork_name,+    createNetwork_framework,+    createNetwork_frameworkVersion,+    createNetwork_votingPolicy,+    createNetwork_memberConfiguration,+    createNetworkResponse_memberId,+    createNetworkResponse_networkId,+    createNetworkResponse_httpStatus,++    -- ** CreateNode+    createNode_memberId,+    createNode_tags,+    createNode_clientRequestToken,+    createNode_networkId,+    createNode_nodeConfiguration,+    createNodeResponse_nodeId,+    createNodeResponse_httpStatus,++    -- ** CreateProposal+    createProposal_description,+    createProposal_tags,+    createProposal_clientRequestToken,+    createProposal_networkId,+    createProposal_memberId,+    createProposal_actions,+    createProposalResponse_proposalId,+    createProposalResponse_httpStatus,++    -- ** DeleteAccessor+    deleteAccessor_accessorId,+    deleteAccessorResponse_httpStatus,++    -- ** DeleteMember+    deleteMember_networkId,+    deleteMember_memberId,+    deleteMemberResponse_httpStatus,++    -- ** DeleteNode+    deleteNode_memberId,+    deleteNode_networkId,+    deleteNode_nodeId,+    deleteNodeResponse_httpStatus,++    -- ** GetAccessor+    getAccessor_accessorId,+    getAccessorResponse_accessor,+    getAccessorResponse_httpStatus,++    -- ** GetMember+    getMember_networkId,+    getMember_memberId,+    getMemberResponse_member,+    getMemberResponse_httpStatus,++    -- ** GetNetwork+    getNetwork_networkId,+    getNetworkResponse_network,+    getNetworkResponse_httpStatus,++    -- ** GetNode+    getNode_memberId,+    getNode_networkId,+    getNode_nodeId,+    getNodeResponse_node,+    getNodeResponse_httpStatus,++    -- ** GetProposal+    getProposal_networkId,+    getProposal_proposalId,+    getProposalResponse_proposal,+    getProposalResponse_httpStatus,++    -- ** ListAccessors+    listAccessors_maxResults,+    listAccessors_nextToken,+    listAccessorsResponse_accessors,+    listAccessorsResponse_nextToken,+    listAccessorsResponse_httpStatus,++    -- ** ListInvitations+    listInvitations_maxResults,+    listInvitations_nextToken,+    listInvitationsResponse_invitations,+    listInvitationsResponse_nextToken,+    listInvitationsResponse_httpStatus,++    -- ** ListMembers+    listMembers_isOwned,+    listMembers_maxResults,+    listMembers_name,+    listMembers_nextToken,+    listMembers_status,+    listMembers_networkId,+    listMembersResponse_members,+    listMembersResponse_nextToken,+    listMembersResponse_httpStatus,++    -- ** ListNetworks+    listNetworks_framework,+    listNetworks_maxResults,+    listNetworks_name,+    listNetworks_nextToken,+    listNetworks_status,+    listNetworksResponse_networks,+    listNetworksResponse_nextToken,+    listNetworksResponse_httpStatus,++    -- ** ListNodes+    listNodes_maxResults,+    listNodes_memberId,+    listNodes_nextToken,+    listNodes_status,+    listNodes_networkId,+    listNodesResponse_nextToken,+    listNodesResponse_nodes,+    listNodesResponse_httpStatus,++    -- ** ListProposalVotes+    listProposalVotes_maxResults,+    listProposalVotes_nextToken,+    listProposalVotes_networkId,+    listProposalVotes_proposalId,+    listProposalVotesResponse_nextToken,+    listProposalVotesResponse_proposalVotes,+    listProposalVotesResponse_httpStatus,++    -- ** ListProposals+    listProposals_maxResults,+    listProposals_nextToken,+    listProposals_networkId,+    listProposalsResponse_nextToken,+    listProposalsResponse_proposals,+    listProposalsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** RejectInvitation+    rejectInvitation_invitationId,+    rejectInvitationResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateMember+    updateMember_logPublishingConfiguration,+    updateMember_networkId,+    updateMember_memberId,+    updateMemberResponse_httpStatus,++    -- ** UpdateNode+    updateNode_logPublishingConfiguration,+    updateNode_memberId,+    updateNode_networkId,+    updateNode_nodeId,+    updateNodeResponse_httpStatus,++    -- ** VoteOnProposal+    voteOnProposal_networkId,+    voteOnProposal_proposalId,+    voteOnProposal_voterMemberId,+    voteOnProposal_vote,+    voteOnProposalResponse_httpStatus,++    -- * Types++    -- ** Accessor+    accessor_arn,+    accessor_billingToken,+    accessor_creationDate,+    accessor_id,+    accessor_status,+    accessor_type,++    -- ** AccessorSummary+    accessorSummary_arn,+    accessorSummary_creationDate,+    accessorSummary_id,+    accessorSummary_status,+    accessorSummary_type,++    -- ** ApprovalThresholdPolicy+    approvalThresholdPolicy_proposalDurationInHours,+    approvalThresholdPolicy_thresholdComparator,+    approvalThresholdPolicy_thresholdPercentage,++    -- ** Invitation+    invitation_arn,+    invitation_creationDate,+    invitation_expirationDate,+    invitation_invitationId,+    invitation_networkSummary,+    invitation_status,++    -- ** InviteAction+    inviteAction_principal,++    -- ** LogConfiguration+    logConfiguration_enabled,++    -- ** LogConfigurations+    logConfigurations_cloudwatch,++    -- ** Member+    member_arn,+    member_creationDate,+    member_description,+    member_frameworkAttributes,+    member_id,+    member_kmsKeyArn,+    member_logPublishingConfiguration,+    member_name,+    member_networkId,+    member_status,+    member_tags,++    -- ** MemberConfiguration+    memberConfiguration_description,+    memberConfiguration_kmsKeyArn,+    memberConfiguration_logPublishingConfiguration,+    memberConfiguration_tags,+    memberConfiguration_name,+    memberConfiguration_frameworkConfiguration,++    -- ** MemberFabricAttributes+    memberFabricAttributes_adminUsername,+    memberFabricAttributes_caEndpoint,++    -- ** MemberFabricConfiguration+    memberFabricConfiguration_adminUsername,+    memberFabricConfiguration_adminPassword,++    -- ** MemberFabricLogPublishingConfiguration+    memberFabricLogPublishingConfiguration_caLogs,++    -- ** MemberFrameworkAttributes+    memberFrameworkAttributes_fabric,++    -- ** MemberFrameworkConfiguration+    memberFrameworkConfiguration_fabric,++    -- ** MemberLogPublishingConfiguration+    memberLogPublishingConfiguration_fabric,++    -- ** MemberSummary+    memberSummary_arn,+    memberSummary_creationDate,+    memberSummary_description,+    memberSummary_id,+    memberSummary_isOwned,+    memberSummary_name,+    memberSummary_status,++    -- ** Network+    network_arn,+    network_creationDate,+    network_description,+    network_framework,+    network_frameworkAttributes,+    network_frameworkVersion,+    network_id,+    network_name,+    network_status,+    network_tags,+    network_votingPolicy,+    network_vpcEndpointServiceName,++    -- ** NetworkEthereumAttributes+    networkEthereumAttributes_chainId,++    -- ** NetworkFabricAttributes+    networkFabricAttributes_edition,+    networkFabricAttributes_orderingServiceEndpoint,++    -- ** NetworkFabricConfiguration+    networkFabricConfiguration_edition,++    -- ** NetworkFrameworkAttributes+    networkFrameworkAttributes_ethereum,+    networkFrameworkAttributes_fabric,++    -- ** NetworkFrameworkConfiguration+    networkFrameworkConfiguration_fabric,++    -- ** NetworkSummary+    networkSummary_arn,+    networkSummary_creationDate,+    networkSummary_description,+    networkSummary_framework,+    networkSummary_frameworkVersion,+    networkSummary_id,+    networkSummary_name,+    networkSummary_status,++    -- ** Node+    node_arn,+    node_availabilityZone,+    node_creationDate,+    node_frameworkAttributes,+    node_id,+    node_instanceType,+    node_kmsKeyArn,+    node_logPublishingConfiguration,+    node_memberId,+    node_networkId,+    node_stateDB,+    node_status,+    node_tags,++    -- ** NodeConfiguration+    nodeConfiguration_availabilityZone,+    nodeConfiguration_logPublishingConfiguration,+    nodeConfiguration_stateDB,+    nodeConfiguration_instanceType,++    -- ** NodeEthereumAttributes+    nodeEthereumAttributes_httpEndpoint,+    nodeEthereumAttributes_webSocketEndpoint,++    -- ** NodeFabricAttributes+    nodeFabricAttributes_peerEndpoint,+    nodeFabricAttributes_peerEventEndpoint,++    -- ** NodeFabricLogPublishingConfiguration+    nodeFabricLogPublishingConfiguration_chaincodeLogs,+    nodeFabricLogPublishingConfiguration_peerLogs,++    -- ** NodeFrameworkAttributes+    nodeFrameworkAttributes_ethereum,+    nodeFrameworkAttributes_fabric,++    -- ** NodeLogPublishingConfiguration+    nodeLogPublishingConfiguration_fabric,++    -- ** NodeSummary+    nodeSummary_arn,+    nodeSummary_availabilityZone,+    nodeSummary_creationDate,+    nodeSummary_id,+    nodeSummary_instanceType,+    nodeSummary_status,++    -- ** Proposal+    proposal_actions,+    proposal_arn,+    proposal_creationDate,+    proposal_description,+    proposal_expirationDate,+    proposal_networkId,+    proposal_noVoteCount,+    proposal_outstandingVoteCount,+    proposal_proposalId,+    proposal_proposedByMemberId,+    proposal_proposedByMemberName,+    proposal_status,+    proposal_tags,+    proposal_yesVoteCount,++    -- ** ProposalActions+    proposalActions_invitations,+    proposalActions_removals,++    -- ** ProposalSummary+    proposalSummary_arn,+    proposalSummary_creationDate,+    proposalSummary_description,+    proposalSummary_expirationDate,+    proposalSummary_proposalId,+    proposalSummary_proposedByMemberId,+    proposalSummary_proposedByMemberName,+    proposalSummary_status,++    -- ** RemoveAction+    removeAction_memberId,++    -- ** VoteSummary+    voteSummary_memberId,+    voteSummary_memberName,+    voteSummary_vote,++    -- ** VotingPolicy+    votingPolicy_approvalThresholdPolicy,+  )+where++import Amazonka.ManagedBlockChain.CreateAccessor+import Amazonka.ManagedBlockChain.CreateMember+import Amazonka.ManagedBlockChain.CreateNetwork+import Amazonka.ManagedBlockChain.CreateNode+import Amazonka.ManagedBlockChain.CreateProposal+import Amazonka.ManagedBlockChain.DeleteAccessor+import Amazonka.ManagedBlockChain.DeleteMember+import Amazonka.ManagedBlockChain.DeleteNode+import Amazonka.ManagedBlockChain.GetAccessor+import Amazonka.ManagedBlockChain.GetMember+import Amazonka.ManagedBlockChain.GetNetwork+import Amazonka.ManagedBlockChain.GetNode+import Amazonka.ManagedBlockChain.GetProposal+import Amazonka.ManagedBlockChain.ListAccessors+import Amazonka.ManagedBlockChain.ListInvitations+import Amazonka.ManagedBlockChain.ListMembers+import Amazonka.ManagedBlockChain.ListNetworks+import Amazonka.ManagedBlockChain.ListNodes+import Amazonka.ManagedBlockChain.ListProposalVotes+import Amazonka.ManagedBlockChain.ListProposals+import Amazonka.ManagedBlockChain.ListTagsForResource+import Amazonka.ManagedBlockChain.RejectInvitation+import Amazonka.ManagedBlockChain.TagResource+import Amazonka.ManagedBlockChain.Types.Accessor+import Amazonka.ManagedBlockChain.Types.AccessorSummary+import Amazonka.ManagedBlockChain.Types.ApprovalThresholdPolicy+import Amazonka.ManagedBlockChain.Types.Invitation+import Amazonka.ManagedBlockChain.Types.InviteAction+import Amazonka.ManagedBlockChain.Types.LogConfiguration+import Amazonka.ManagedBlockChain.Types.LogConfigurations+import Amazonka.ManagedBlockChain.Types.Member+import Amazonka.ManagedBlockChain.Types.MemberConfiguration+import Amazonka.ManagedBlockChain.Types.MemberFabricAttributes+import Amazonka.ManagedBlockChain.Types.MemberFabricConfiguration+import Amazonka.ManagedBlockChain.Types.MemberFabricLogPublishingConfiguration+import Amazonka.ManagedBlockChain.Types.MemberFrameworkAttributes+import Amazonka.ManagedBlockChain.Types.MemberFrameworkConfiguration+import Amazonka.ManagedBlockChain.Types.MemberLogPublishingConfiguration+import Amazonka.ManagedBlockChain.Types.MemberSummary+import Amazonka.ManagedBlockChain.Types.Network+import Amazonka.ManagedBlockChain.Types.NetworkEthereumAttributes+import Amazonka.ManagedBlockChain.Types.NetworkFabricAttributes+import Amazonka.ManagedBlockChain.Types.NetworkFabricConfiguration+import Amazonka.ManagedBlockChain.Types.NetworkFrameworkAttributes+import Amazonka.ManagedBlockChain.Types.NetworkFrameworkConfiguration+import Amazonka.ManagedBlockChain.Types.NetworkSummary+import Amazonka.ManagedBlockChain.Types.Node+import Amazonka.ManagedBlockChain.Types.NodeConfiguration+import Amazonka.ManagedBlockChain.Types.NodeEthereumAttributes+import Amazonka.ManagedBlockChain.Types.NodeFabricAttributes+import Amazonka.ManagedBlockChain.Types.NodeFabricLogPublishingConfiguration+import Amazonka.ManagedBlockChain.Types.NodeFrameworkAttributes+import Amazonka.ManagedBlockChain.Types.NodeLogPublishingConfiguration+import Amazonka.ManagedBlockChain.Types.NodeSummary+import Amazonka.ManagedBlockChain.Types.Proposal+import Amazonka.ManagedBlockChain.Types.ProposalActions+import Amazonka.ManagedBlockChain.Types.ProposalSummary+import Amazonka.ManagedBlockChain.Types.RemoveAction+import Amazonka.ManagedBlockChain.Types.VoteSummary+import Amazonka.ManagedBlockChain.Types.VotingPolicy+import Amazonka.ManagedBlockChain.UntagResource+import Amazonka.ManagedBlockChain.UpdateMember+import Amazonka.ManagedBlockChain.UpdateNode+import Amazonka.ManagedBlockChain.VoteOnProposal
+ gen/Amazonka/ManagedBlockChain/ListAccessors.hs view
@@ -0,0 +1,220 @@+{-# 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.ManagedBlockChain.ListAccessors+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The token based access feature is in preview release for Ethereum on+-- Amazon Managed Blockchain and is subject to change. We recommend that+-- you use this feature only with test scenarios, and not in production+-- environments.+--+-- Returns a list of the accessors and their properties. Accessor objects+-- are containers that have the information required for token based access+-- to your Ethereum nodes.+--+-- This operation returns paginated results.+module Amazonka.ManagedBlockChain.ListAccessors+  ( -- * Creating a Request+    ListAccessors (..),+    newListAccessors,++    -- * Request Lenses+    listAccessors_maxResults,+    listAccessors_nextToken,++    -- * Destructuring the Response+    ListAccessorsResponse (..),+    newListAccessorsResponse,++    -- * Response Lenses+    listAccessorsResponse_accessors,+    listAccessorsResponse_nextToken,+    listAccessorsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAccessors' smart constructor.+data ListAccessors = ListAccessors'+  { -- | The maximum number of accessors to list.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token that indicates the next set of results to retrieve.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAccessors' 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', 'listAccessors_maxResults' - The maximum number of accessors to list.+--+-- 'nextToken', 'listAccessors_nextToken' - The pagination token that indicates the next set of results to retrieve.+newListAccessors ::+  ListAccessors+newListAccessors =+  ListAccessors'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of accessors to list.+listAccessors_maxResults :: Lens.Lens' ListAccessors (Prelude.Maybe Prelude.Natural)+listAccessors_maxResults = Lens.lens (\ListAccessors' {maxResults} -> maxResults) (\s@ListAccessors' {} a -> s {maxResults = a} :: ListAccessors)++-- | The pagination token that indicates the next set of results to retrieve.+listAccessors_nextToken :: Lens.Lens' ListAccessors (Prelude.Maybe Prelude.Text)+listAccessors_nextToken = Lens.lens (\ListAccessors' {nextToken} -> nextToken) (\s@ListAccessors' {} a -> s {nextToken = a} :: ListAccessors)++instance Core.AWSPager ListAccessors where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listAccessorsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listAccessorsResponse_accessors+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listAccessors_nextToken+          Lens..~ rs+          Lens.^? listAccessorsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListAccessors where+  type+    AWSResponse ListAccessors =+      ListAccessorsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAccessorsResponse'+            Prelude.<$> (x Data..?> "Accessors" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListAccessors where+  hashWithSalt _salt ListAccessors' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListAccessors where+  rnf ListAccessors' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListAccessors where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListAccessors where+  toPath = Prelude.const "/accessors"++instance Data.ToQuery ListAccessors where+  toQuery ListAccessors' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListAccessorsResponse' smart constructor.+data ListAccessorsResponse = ListAccessorsResponse'+  { -- | An array of AccessorSummary objects that contain configuration+    -- properties for each accessor.+    accessors :: Prelude.Maybe [AccessorSummary],+    -- | The pagination token that indicates the next set of results to retrieve.+    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 'ListAccessorsResponse' 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:+--+-- 'accessors', 'listAccessorsResponse_accessors' - An array of AccessorSummary objects that contain configuration+-- properties for each accessor.+--+-- 'nextToken', 'listAccessorsResponse_nextToken' - The pagination token that indicates the next set of results to retrieve.+--+-- 'httpStatus', 'listAccessorsResponse_httpStatus' - The response's http status code.+newListAccessorsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAccessorsResponse+newListAccessorsResponse pHttpStatus_ =+  ListAccessorsResponse'+    { accessors = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of AccessorSummary objects that contain configuration+-- properties for each accessor.+listAccessorsResponse_accessors :: Lens.Lens' ListAccessorsResponse (Prelude.Maybe [AccessorSummary])+listAccessorsResponse_accessors = Lens.lens (\ListAccessorsResponse' {accessors} -> accessors) (\s@ListAccessorsResponse' {} a -> s {accessors = a} :: ListAccessorsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token that indicates the next set of results to retrieve.+listAccessorsResponse_nextToken :: Lens.Lens' ListAccessorsResponse (Prelude.Maybe Prelude.Text)+listAccessorsResponse_nextToken = Lens.lens (\ListAccessorsResponse' {nextToken} -> nextToken) (\s@ListAccessorsResponse' {} a -> s {nextToken = a} :: ListAccessorsResponse)++-- | The response's http status code.+listAccessorsResponse_httpStatus :: Lens.Lens' ListAccessorsResponse Prelude.Int+listAccessorsResponse_httpStatus = Lens.lens (\ListAccessorsResponse' {httpStatus} -> httpStatus) (\s@ListAccessorsResponse' {} a -> s {httpStatus = a} :: ListAccessorsResponse)++instance Prelude.NFData ListAccessorsResponse where+  rnf ListAccessorsResponse' {..} =+    Prelude.rnf accessors+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/ListInvitations.hs view
@@ -0,0 +1,190 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ManagedBlockChain.ListInvitations+-- 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 a list of all invitations for the current Amazon Web Services+-- account.+--+-- Applies only to Hyperledger Fabric.+module Amazonka.ManagedBlockChain.ListInvitations+  ( -- * Creating a Request+    ListInvitations (..),+    newListInvitations,++    -- * Request Lenses+    listInvitations_maxResults,+    listInvitations_nextToken,++    -- * Destructuring the Response+    ListInvitationsResponse (..),+    newListInvitationsResponse,++    -- * Response Lenses+    listInvitationsResponse_invitations,+    listInvitationsResponse_nextToken,+    listInvitationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListInvitations' smart constructor.+data ListInvitations = ListInvitations'+  { -- | The maximum number of invitations to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token that indicates the next set of results to retrieve.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInvitations' 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', 'listInvitations_maxResults' - The maximum number of invitations to return.+--+-- 'nextToken', 'listInvitations_nextToken' - The pagination token that indicates the next set of results to retrieve.+newListInvitations ::+  ListInvitations+newListInvitations =+  ListInvitations'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of invitations to return.+listInvitations_maxResults :: Lens.Lens' ListInvitations (Prelude.Maybe Prelude.Natural)+listInvitations_maxResults = Lens.lens (\ListInvitations' {maxResults} -> maxResults) (\s@ListInvitations' {} a -> s {maxResults = a} :: ListInvitations)++-- | The pagination token that indicates the next set of results to retrieve.+listInvitations_nextToken :: Lens.Lens' ListInvitations (Prelude.Maybe Prelude.Text)+listInvitations_nextToken = Lens.lens (\ListInvitations' {nextToken} -> nextToken) (\s@ListInvitations' {} a -> s {nextToken = a} :: ListInvitations)++instance Core.AWSRequest ListInvitations where+  type+    AWSResponse ListInvitations =+      ListInvitationsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListInvitationsResponse'+            Prelude.<$> (x Data..?> "Invitations" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListInvitations where+  hashWithSalt _salt ListInvitations' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListInvitations where+  rnf ListInvitations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListInvitations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListInvitations where+  toPath = Prelude.const "/invitations"++instance Data.ToQuery ListInvitations where+  toQuery ListInvitations' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListInvitationsResponse' smart constructor.+data ListInvitationsResponse = ListInvitationsResponse'+  { -- | The invitations for the network.+    invitations :: Prelude.Maybe [Invitation],+    -- | The pagination token that indicates the next set of results to retrieve.+    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 'ListInvitationsResponse' 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:+--+-- 'invitations', 'listInvitationsResponse_invitations' - The invitations for the network.+--+-- 'nextToken', 'listInvitationsResponse_nextToken' - The pagination token that indicates the next set of results to retrieve.+--+-- 'httpStatus', 'listInvitationsResponse_httpStatus' - The response's http status code.+newListInvitationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListInvitationsResponse+newListInvitationsResponse pHttpStatus_ =+  ListInvitationsResponse'+    { invitations =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The invitations for the network.+listInvitationsResponse_invitations :: Lens.Lens' ListInvitationsResponse (Prelude.Maybe [Invitation])+listInvitationsResponse_invitations = Lens.lens (\ListInvitationsResponse' {invitations} -> invitations) (\s@ListInvitationsResponse' {} a -> s {invitations = a} :: ListInvitationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token that indicates the next set of results to retrieve.+listInvitationsResponse_nextToken :: Lens.Lens' ListInvitationsResponse (Prelude.Maybe Prelude.Text)+listInvitationsResponse_nextToken = Lens.lens (\ListInvitationsResponse' {nextToken} -> nextToken) (\s@ListInvitationsResponse' {} a -> s {nextToken = a} :: ListInvitationsResponse)++-- | The response's http status code.+listInvitationsResponse_httpStatus :: Lens.Lens' ListInvitationsResponse Prelude.Int+listInvitationsResponse_httpStatus = Lens.lens (\ListInvitationsResponse' {httpStatus} -> httpStatus) (\s@ListInvitationsResponse' {} a -> s {httpStatus = a} :: ListInvitationsResponse)++instance Prelude.NFData ListInvitationsResponse where+  rnf ListInvitationsResponse' {..} =+    Prelude.rnf invitations+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/ListMembers.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.ManagedBlockChain.ListMembers+-- 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 a list of the members in a network and properties of their+-- configurations.+--+-- Applies only to Hyperledger Fabric.+module Amazonka.ManagedBlockChain.ListMembers+  ( -- * Creating a Request+    ListMembers (..),+    newListMembers,++    -- * Request Lenses+    listMembers_isOwned,+    listMembers_maxResults,+    listMembers_name,+    listMembers_nextToken,+    listMembers_status,+    listMembers_networkId,++    -- * Destructuring the Response+    ListMembersResponse (..),+    newListMembersResponse,++    -- * Response Lenses+    listMembersResponse_members,+    listMembersResponse_nextToken,+    listMembersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListMembers' smart constructor.+data ListMembers = ListMembers'+  { -- | An optional Boolean value. If provided, the request is limited either to+    -- members that the current Amazon Web Services account owns (@true@) or+    -- that other Amazon Web Services accountsn own (@false@). If omitted, all+    -- members are listed.+    isOwned :: Prelude.Maybe Prelude.Bool,+    -- | The maximum number of members to return in the request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The optional name of the member to list.+    name :: Prelude.Maybe Prelude.Text,+    -- | The pagination token that indicates the next set of results to retrieve.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An optional status specifier. If provided, only members currently in+    -- this status are listed.+    status :: Prelude.Maybe MemberStatus,+    -- | The unique identifier of the network for which to list members.+    networkId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListMembers' 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:+--+-- 'isOwned', 'listMembers_isOwned' - An optional Boolean value. If provided, the request is limited either to+-- members that the current Amazon Web Services account owns (@true@) or+-- that other Amazon Web Services accountsn own (@false@). If omitted, all+-- members are listed.+--+-- 'maxResults', 'listMembers_maxResults' - The maximum number of members to return in the request.+--+-- 'name', 'listMembers_name' - The optional name of the member to list.+--+-- 'nextToken', 'listMembers_nextToken' - The pagination token that indicates the next set of results to retrieve.+--+-- 'status', 'listMembers_status' - An optional status specifier. If provided, only members currently in+-- this status are listed.+--+-- 'networkId', 'listMembers_networkId' - The unique identifier of the network for which to list members.+newListMembers ::+  -- | 'networkId'+  Prelude.Text ->+  ListMembers+newListMembers pNetworkId_ =+  ListMembers'+    { isOwned = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      name = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      status = Prelude.Nothing,+      networkId = pNetworkId_+    }++-- | An optional Boolean value. If provided, the request is limited either to+-- members that the current Amazon Web Services account owns (@true@) or+-- that other Amazon Web Services accountsn own (@false@). If omitted, all+-- members are listed.+listMembers_isOwned :: Lens.Lens' ListMembers (Prelude.Maybe Prelude.Bool)+listMembers_isOwned = Lens.lens (\ListMembers' {isOwned} -> isOwned) (\s@ListMembers' {} a -> s {isOwned = a} :: ListMembers)++-- | The maximum number of members to return in the request.+listMembers_maxResults :: Lens.Lens' ListMembers (Prelude.Maybe Prelude.Natural)+listMembers_maxResults = Lens.lens (\ListMembers' {maxResults} -> maxResults) (\s@ListMembers' {} a -> s {maxResults = a} :: ListMembers)++-- | The optional name of the member to list.+listMembers_name :: Lens.Lens' ListMembers (Prelude.Maybe Prelude.Text)+listMembers_name = Lens.lens (\ListMembers' {name} -> name) (\s@ListMembers' {} a -> s {name = a} :: ListMembers)++-- | The pagination token that indicates the next set of results to retrieve.+listMembers_nextToken :: Lens.Lens' ListMembers (Prelude.Maybe Prelude.Text)+listMembers_nextToken = Lens.lens (\ListMembers' {nextToken} -> nextToken) (\s@ListMembers' {} a -> s {nextToken = a} :: ListMembers)++-- | An optional status specifier. If provided, only members currently in+-- this status are listed.+listMembers_status :: Lens.Lens' ListMembers (Prelude.Maybe MemberStatus)+listMembers_status = Lens.lens (\ListMembers' {status} -> status) (\s@ListMembers' {} a -> s {status = a} :: ListMembers)++-- | The unique identifier of the network for which to list members.+listMembers_networkId :: Lens.Lens' ListMembers Prelude.Text+listMembers_networkId = Lens.lens (\ListMembers' {networkId} -> networkId) (\s@ListMembers' {} a -> s {networkId = a} :: ListMembers)++instance Core.AWSRequest ListMembers where+  type AWSResponse ListMembers = ListMembersResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListMembersResponse'+            Prelude.<$> (x Data..?> "Members" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListMembers where+  hashWithSalt _salt ListMembers' {..} =+    _salt+      `Prelude.hashWithSalt` isOwned+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` networkId++instance Prelude.NFData ListMembers where+  rnf ListMembers' {..} =+    Prelude.rnf isOwned+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf networkId++instance Data.ToHeaders ListMembers where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListMembers where+  toPath ListMembers' {..} =+    Prelude.mconcat+      ["/networks/", Data.toBS networkId, "/members"]++instance Data.ToQuery ListMembers where+  toQuery ListMembers' {..} =+    Prelude.mconcat+      [ "isOwned" Data.=: isOwned,+        "maxResults" Data.=: maxResults,+        "name" Data.=: name,+        "nextToken" Data.=: nextToken,+        "status" Data.=: status+      ]++-- | /See:/ 'newListMembersResponse' smart constructor.+data ListMembersResponse = ListMembersResponse'+  { -- | An array of @MemberSummary@ objects. Each object contains details about+    -- a network member.+    members :: Prelude.Maybe [MemberSummary],+    -- | The pagination token that indicates the next set of results to retrieve.+    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 'ListMembersResponse' 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:+--+-- 'members', 'listMembersResponse_members' - An array of @MemberSummary@ objects. Each object contains details about+-- a network member.+--+-- 'nextToken', 'listMembersResponse_nextToken' - The pagination token that indicates the next set of results to retrieve.+--+-- 'httpStatus', 'listMembersResponse_httpStatus' - The response's http status code.+newListMembersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListMembersResponse+newListMembersResponse pHttpStatus_ =+  ListMembersResponse'+    { members = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of @MemberSummary@ objects. Each object contains details about+-- a network member.+listMembersResponse_members :: Lens.Lens' ListMembersResponse (Prelude.Maybe [MemberSummary])+listMembersResponse_members = Lens.lens (\ListMembersResponse' {members} -> members) (\s@ListMembersResponse' {} a -> s {members = a} :: ListMembersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token that indicates the next set of results to retrieve.+listMembersResponse_nextToken :: Lens.Lens' ListMembersResponse (Prelude.Maybe Prelude.Text)+listMembersResponse_nextToken = Lens.lens (\ListMembersResponse' {nextToken} -> nextToken) (\s@ListMembersResponse' {} a -> s {nextToken = a} :: ListMembersResponse)++-- | The response's http status code.+listMembersResponse_httpStatus :: Lens.Lens' ListMembersResponse Prelude.Int+listMembersResponse_httpStatus = Lens.lens (\ListMembersResponse' {httpStatus} -> httpStatus) (\s@ListMembersResponse' {} a -> s {httpStatus = a} :: ListMembersResponse)++instance Prelude.NFData ListMembersResponse where+  rnf ListMembersResponse' {..} =+    Prelude.rnf members+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/ListNetworks.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.ManagedBlockChain.ListNetworks+-- 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 the networks in which the current Amazon Web+-- Services account participates.+--+-- Applies to Hyperledger Fabric and Ethereum.+module Amazonka.ManagedBlockChain.ListNetworks+  ( -- * Creating a Request+    ListNetworks (..),+    newListNetworks,++    -- * Request Lenses+    listNetworks_framework,+    listNetworks_maxResults,+    listNetworks_name,+    listNetworks_nextToken,+    listNetworks_status,++    -- * Destructuring the Response+    ListNetworksResponse (..),+    newListNetworksResponse,++    -- * Response Lenses+    listNetworksResponse_networks,+    listNetworksResponse_nextToken,+    listNetworksResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListNetworks' smart constructor.+data ListNetworks = ListNetworks'+  { -- | An optional framework specifier. If provided, only networks of this+    -- framework type are listed.+    framework :: Prelude.Maybe Framework,+    -- | The maximum number of networks to list.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The name of the network.+    name :: Prelude.Maybe Prelude.Text,+    -- | The pagination token that indicates the next set of results to retrieve.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An optional status specifier. If provided, only networks currently in+    -- this status are listed.+    --+    -- Applies only to Hyperledger Fabric.+    status :: Prelude.Maybe NetworkStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListNetworks' 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:+--+-- 'framework', 'listNetworks_framework' - An optional framework specifier. If provided, only networks of this+-- framework type are listed.+--+-- 'maxResults', 'listNetworks_maxResults' - The maximum number of networks to list.+--+-- 'name', 'listNetworks_name' - The name of the network.+--+-- 'nextToken', 'listNetworks_nextToken' - The pagination token that indicates the next set of results to retrieve.+--+-- 'status', 'listNetworks_status' - An optional status specifier. If provided, only networks currently in+-- this status are listed.+--+-- Applies only to Hyperledger Fabric.+newListNetworks ::+  ListNetworks+newListNetworks =+  ListNetworks'+    { framework = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      name = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | An optional framework specifier. If provided, only networks of this+-- framework type are listed.+listNetworks_framework :: Lens.Lens' ListNetworks (Prelude.Maybe Framework)+listNetworks_framework = Lens.lens (\ListNetworks' {framework} -> framework) (\s@ListNetworks' {} a -> s {framework = a} :: ListNetworks)++-- | The maximum number of networks to list.+listNetworks_maxResults :: Lens.Lens' ListNetworks (Prelude.Maybe Prelude.Natural)+listNetworks_maxResults = Lens.lens (\ListNetworks' {maxResults} -> maxResults) (\s@ListNetworks' {} a -> s {maxResults = a} :: ListNetworks)++-- | The name of the network.+listNetworks_name :: Lens.Lens' ListNetworks (Prelude.Maybe Prelude.Text)+listNetworks_name = Lens.lens (\ListNetworks' {name} -> name) (\s@ListNetworks' {} a -> s {name = a} :: ListNetworks)++-- | The pagination token that indicates the next set of results to retrieve.+listNetworks_nextToken :: Lens.Lens' ListNetworks (Prelude.Maybe Prelude.Text)+listNetworks_nextToken = Lens.lens (\ListNetworks' {nextToken} -> nextToken) (\s@ListNetworks' {} a -> s {nextToken = a} :: ListNetworks)++-- | An optional status specifier. If provided, only networks currently in+-- this status are listed.+--+-- Applies only to Hyperledger Fabric.+listNetworks_status :: Lens.Lens' ListNetworks (Prelude.Maybe NetworkStatus)+listNetworks_status = Lens.lens (\ListNetworks' {status} -> status) (\s@ListNetworks' {} a -> s {status = a} :: ListNetworks)++instance Core.AWSRequest ListNetworks where+  type AWSResponse ListNetworks = ListNetworksResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListNetworksResponse'+            Prelude.<$> (x Data..?> "Networks" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListNetworks where+  hashWithSalt _salt ListNetworks' {..} =+    _salt+      `Prelude.hashWithSalt` framework+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` status++instance Prelude.NFData ListNetworks where+  rnf ListNetworks' {..} =+    Prelude.rnf framework+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf status++instance Data.ToHeaders ListNetworks where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListNetworks where+  toPath = Prelude.const "/networks"++instance Data.ToQuery ListNetworks where+  toQuery ListNetworks' {..} =+    Prelude.mconcat+      [ "framework" Data.=: framework,+        "maxResults" Data.=: maxResults,+        "name" Data.=: name,+        "nextToken" Data.=: nextToken,+        "status" Data.=: status+      ]++-- | /See:/ 'newListNetworksResponse' smart constructor.+data ListNetworksResponse = ListNetworksResponse'+  { -- | An array of @NetworkSummary@ objects that contain configuration+    -- properties for each network.+    networks :: Prelude.Maybe [NetworkSummary],+    -- | The pagination token that indicates the next set of results to retrieve.+    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 'ListNetworksResponse' 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:+--+-- 'networks', 'listNetworksResponse_networks' - An array of @NetworkSummary@ objects that contain configuration+-- properties for each network.+--+-- 'nextToken', 'listNetworksResponse_nextToken' - The pagination token that indicates the next set of results to retrieve.+--+-- 'httpStatus', 'listNetworksResponse_httpStatus' - The response's http status code.+newListNetworksResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListNetworksResponse+newListNetworksResponse pHttpStatus_ =+  ListNetworksResponse'+    { networks = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of @NetworkSummary@ objects that contain configuration+-- properties for each network.+listNetworksResponse_networks :: Lens.Lens' ListNetworksResponse (Prelude.Maybe [NetworkSummary])+listNetworksResponse_networks = Lens.lens (\ListNetworksResponse' {networks} -> networks) (\s@ListNetworksResponse' {} a -> s {networks = a} :: ListNetworksResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token that indicates the next set of results to retrieve.+listNetworksResponse_nextToken :: Lens.Lens' ListNetworksResponse (Prelude.Maybe Prelude.Text)+listNetworksResponse_nextToken = Lens.lens (\ListNetworksResponse' {nextToken} -> nextToken) (\s@ListNetworksResponse' {} a -> s {nextToken = a} :: ListNetworksResponse)++-- | The response's http status code.+listNetworksResponse_httpStatus :: Lens.Lens' ListNetworksResponse Prelude.Int+listNetworksResponse_httpStatus = Lens.lens (\ListNetworksResponse' {httpStatus} -> httpStatus) (\s@ListNetworksResponse' {} a -> s {httpStatus = a} :: ListNetworksResponse)++instance Prelude.NFData ListNetworksResponse where+  rnf ListNetworksResponse' {..} =+    Prelude.rnf networks+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/ListNodes.hs view
@@ -0,0 +1,243 @@+{-# 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.ManagedBlockChain.ListNodes+-- 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 the nodes within a network.+--+-- Applies to Hyperledger Fabric and Ethereum.+module Amazonka.ManagedBlockChain.ListNodes+  ( -- * Creating a Request+    ListNodes (..),+    newListNodes,++    -- * Request Lenses+    listNodes_maxResults,+    listNodes_memberId,+    listNodes_nextToken,+    listNodes_status,+    listNodes_networkId,++    -- * Destructuring the Response+    ListNodesResponse (..),+    newListNodesResponse,++    -- * Response Lenses+    listNodesResponse_nextToken,+    listNodesResponse_nodes,+    listNodesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListNodes' smart constructor.+data ListNodes = ListNodes'+  { -- | The maximum number of nodes to list.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The unique identifier of the member who owns the nodes to list.+    --+    -- Applies only to Hyperledger Fabric and is required for Hyperledger+    -- Fabric.+    memberId :: Prelude.Maybe Prelude.Text,+    -- | The pagination token that indicates the next set of results to retrieve.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An optional status specifier. If provided, only nodes currently in this+    -- status are listed.+    status :: Prelude.Maybe NodeStatus,+    -- | The unique identifier of the network for which to list nodes.+    networkId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListNodes' 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', 'listNodes_maxResults' - The maximum number of nodes to list.+--+-- 'memberId', 'listNodes_memberId' - The unique identifier of the member who owns the nodes to list.+--+-- Applies only to Hyperledger Fabric and is required for Hyperledger+-- Fabric.+--+-- 'nextToken', 'listNodes_nextToken' - The pagination token that indicates the next set of results to retrieve.+--+-- 'status', 'listNodes_status' - An optional status specifier. If provided, only nodes currently in this+-- status are listed.+--+-- 'networkId', 'listNodes_networkId' - The unique identifier of the network for which to list nodes.+newListNodes ::+  -- | 'networkId'+  Prelude.Text ->+  ListNodes+newListNodes pNetworkId_ =+  ListNodes'+    { maxResults = Prelude.Nothing,+      memberId = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      status = Prelude.Nothing,+      networkId = pNetworkId_+    }++-- | The maximum number of nodes to list.+listNodes_maxResults :: Lens.Lens' ListNodes (Prelude.Maybe Prelude.Natural)+listNodes_maxResults = Lens.lens (\ListNodes' {maxResults} -> maxResults) (\s@ListNodes' {} a -> s {maxResults = a} :: ListNodes)++-- | The unique identifier of the member who owns the nodes to list.+--+-- Applies only to Hyperledger Fabric and is required for Hyperledger+-- Fabric.+listNodes_memberId :: Lens.Lens' ListNodes (Prelude.Maybe Prelude.Text)+listNodes_memberId = Lens.lens (\ListNodes' {memberId} -> memberId) (\s@ListNodes' {} a -> s {memberId = a} :: ListNodes)++-- | The pagination token that indicates the next set of results to retrieve.+listNodes_nextToken :: Lens.Lens' ListNodes (Prelude.Maybe Prelude.Text)+listNodes_nextToken = Lens.lens (\ListNodes' {nextToken} -> nextToken) (\s@ListNodes' {} a -> s {nextToken = a} :: ListNodes)++-- | An optional status specifier. If provided, only nodes currently in this+-- status are listed.+listNodes_status :: Lens.Lens' ListNodes (Prelude.Maybe NodeStatus)+listNodes_status = Lens.lens (\ListNodes' {status} -> status) (\s@ListNodes' {} a -> s {status = a} :: ListNodes)++-- | The unique identifier of the network for which to list nodes.+listNodes_networkId :: Lens.Lens' ListNodes Prelude.Text+listNodes_networkId = Lens.lens (\ListNodes' {networkId} -> networkId) (\s@ListNodes' {} a -> s {networkId = a} :: ListNodes)++instance Core.AWSRequest ListNodes where+  type AWSResponse ListNodes = ListNodesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListNodesResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "Nodes" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListNodes where+  hashWithSalt _salt ListNodes' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` memberId+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` networkId++instance Prelude.NFData ListNodes where+  rnf ListNodes' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf memberId+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf networkId++instance Data.ToHeaders ListNodes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListNodes where+  toPath ListNodes' {..} =+    Prelude.mconcat+      ["/networks/", Data.toBS networkId, "/nodes"]++instance Data.ToQuery ListNodes where+  toQuery ListNodes' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "memberId" Data.=: memberId,+        "nextToken" Data.=: nextToken,+        "status" Data.=: status+      ]++-- | /See:/ 'newListNodesResponse' smart constructor.+data ListNodesResponse = ListNodesResponse'+  { -- | The pagination token that indicates the next set of results to retrieve.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An array of @NodeSummary@ objects that contain configuration properties+    -- for each node.+    nodes :: Prelude.Maybe [NodeSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListNodesResponse' 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:+--+-- 'nextToken', 'listNodesResponse_nextToken' - The pagination token that indicates the next set of results to retrieve.+--+-- 'nodes', 'listNodesResponse_nodes' - An array of @NodeSummary@ objects that contain configuration properties+-- for each node.+--+-- 'httpStatus', 'listNodesResponse_httpStatus' - The response's http status code.+newListNodesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListNodesResponse+newListNodesResponse pHttpStatus_ =+  ListNodesResponse'+    { nextToken = Prelude.Nothing,+      nodes = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The pagination token that indicates the next set of results to retrieve.+listNodesResponse_nextToken :: Lens.Lens' ListNodesResponse (Prelude.Maybe Prelude.Text)+listNodesResponse_nextToken = Lens.lens (\ListNodesResponse' {nextToken} -> nextToken) (\s@ListNodesResponse' {} a -> s {nextToken = a} :: ListNodesResponse)++-- | An array of @NodeSummary@ objects that contain configuration properties+-- for each node.+listNodesResponse_nodes :: Lens.Lens' ListNodesResponse (Prelude.Maybe [NodeSummary])+listNodesResponse_nodes = Lens.lens (\ListNodesResponse' {nodes} -> nodes) (\s@ListNodesResponse' {} a -> s {nodes = a} :: ListNodesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listNodesResponse_httpStatus :: Lens.Lens' ListNodesResponse Prelude.Int+listNodesResponse_httpStatus = Lens.lens (\ListNodesResponse' {httpStatus} -> httpStatus) (\s@ListNodesResponse' {} a -> s {httpStatus = a} :: ListNodesResponse)++instance Prelude.NFData ListNodesResponse where+  rnf ListNodesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf nodes+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/ListProposalVotes.hs view
@@ -0,0 +1,225 @@+{-# 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.ManagedBlockChain.ListProposalVotes+-- 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 the list of votes for a specified proposal, including the value+-- of each vote and the unique identifier of the member that cast the vote.+--+-- Applies only to Hyperledger Fabric.+module Amazonka.ManagedBlockChain.ListProposalVotes+  ( -- * Creating a Request+    ListProposalVotes (..),+    newListProposalVotes,++    -- * Request Lenses+    listProposalVotes_maxResults,+    listProposalVotes_nextToken,+    listProposalVotes_networkId,+    listProposalVotes_proposalId,++    -- * Destructuring the Response+    ListProposalVotesResponse (..),+    newListProposalVotesResponse,++    -- * Response Lenses+    listProposalVotesResponse_nextToken,+    listProposalVotesResponse_proposalVotes,+    listProposalVotesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListProposalVotes' smart constructor.+data ListProposalVotes = ListProposalVotes'+  { -- | The maximum number of votes to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token that indicates the next set of results to retrieve.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the network.+    networkId :: Prelude.Text,+    -- | The unique identifier of the proposal.+    proposalId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProposalVotes' 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', 'listProposalVotes_maxResults' - The maximum number of votes to return.+--+-- 'nextToken', 'listProposalVotes_nextToken' - The pagination token that indicates the next set of results to retrieve.+--+-- 'networkId', 'listProposalVotes_networkId' - The unique identifier of the network.+--+-- 'proposalId', 'listProposalVotes_proposalId' - The unique identifier of the proposal.+newListProposalVotes ::+  -- | 'networkId'+  Prelude.Text ->+  -- | 'proposalId'+  Prelude.Text ->+  ListProposalVotes+newListProposalVotes pNetworkId_ pProposalId_ =+  ListProposalVotes'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      networkId = pNetworkId_,+      proposalId = pProposalId_+    }++-- | The maximum number of votes to return.+listProposalVotes_maxResults :: Lens.Lens' ListProposalVotes (Prelude.Maybe Prelude.Natural)+listProposalVotes_maxResults = Lens.lens (\ListProposalVotes' {maxResults} -> maxResults) (\s@ListProposalVotes' {} a -> s {maxResults = a} :: ListProposalVotes)++-- | The pagination token that indicates the next set of results to retrieve.+listProposalVotes_nextToken :: Lens.Lens' ListProposalVotes (Prelude.Maybe Prelude.Text)+listProposalVotes_nextToken = Lens.lens (\ListProposalVotes' {nextToken} -> nextToken) (\s@ListProposalVotes' {} a -> s {nextToken = a} :: ListProposalVotes)++-- | The unique identifier of the network.+listProposalVotes_networkId :: Lens.Lens' ListProposalVotes Prelude.Text+listProposalVotes_networkId = Lens.lens (\ListProposalVotes' {networkId} -> networkId) (\s@ListProposalVotes' {} a -> s {networkId = a} :: ListProposalVotes)++-- | The unique identifier of the proposal.+listProposalVotes_proposalId :: Lens.Lens' ListProposalVotes Prelude.Text+listProposalVotes_proposalId = Lens.lens (\ListProposalVotes' {proposalId} -> proposalId) (\s@ListProposalVotes' {} a -> s {proposalId = a} :: ListProposalVotes)++instance Core.AWSRequest ListProposalVotes where+  type+    AWSResponse ListProposalVotes =+      ListProposalVotesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListProposalVotesResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "ProposalVotes" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListProposalVotes where+  hashWithSalt _salt ListProposalVotes' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` networkId+      `Prelude.hashWithSalt` proposalId++instance Prelude.NFData ListProposalVotes where+  rnf ListProposalVotes' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf proposalId++instance Data.ToHeaders ListProposalVotes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListProposalVotes where+  toPath ListProposalVotes' {..} =+    Prelude.mconcat+      [ "/networks/",+        Data.toBS networkId,+        "/proposals/",+        Data.toBS proposalId,+        "/votes"+      ]++instance Data.ToQuery ListProposalVotes where+  toQuery ListProposalVotes' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListProposalVotesResponse' smart constructor.+data ListProposalVotesResponse = ListProposalVotesResponse'+  { -- | The pagination token that indicates the next set of results to retrieve.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The list of votes.+    proposalVotes :: Prelude.Maybe [VoteSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProposalVotesResponse' 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:+--+-- 'nextToken', 'listProposalVotesResponse_nextToken' - The pagination token that indicates the next set of results to retrieve.+--+-- 'proposalVotes', 'listProposalVotesResponse_proposalVotes' - The list of votes.+--+-- 'httpStatus', 'listProposalVotesResponse_httpStatus' - The response's http status code.+newListProposalVotesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListProposalVotesResponse+newListProposalVotesResponse pHttpStatus_ =+  ListProposalVotesResponse'+    { nextToken =+        Prelude.Nothing,+      proposalVotes = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The pagination token that indicates the next set of results to retrieve.+listProposalVotesResponse_nextToken :: Lens.Lens' ListProposalVotesResponse (Prelude.Maybe Prelude.Text)+listProposalVotesResponse_nextToken = Lens.lens (\ListProposalVotesResponse' {nextToken} -> nextToken) (\s@ListProposalVotesResponse' {} a -> s {nextToken = a} :: ListProposalVotesResponse)++-- | The list of votes.+listProposalVotesResponse_proposalVotes :: Lens.Lens' ListProposalVotesResponse (Prelude.Maybe [VoteSummary])+listProposalVotesResponse_proposalVotes = Lens.lens (\ListProposalVotesResponse' {proposalVotes} -> proposalVotes) (\s@ListProposalVotesResponse' {} a -> s {proposalVotes = a} :: ListProposalVotesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listProposalVotesResponse_httpStatus :: Lens.Lens' ListProposalVotesResponse Prelude.Int+listProposalVotesResponse_httpStatus = Lens.lens (\ListProposalVotesResponse' {httpStatus} -> httpStatus) (\s@ListProposalVotesResponse' {} a -> s {httpStatus = a} :: ListProposalVotesResponse)++instance Prelude.NFData ListProposalVotesResponse where+  rnf ListProposalVotesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf proposalVotes+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/ListProposals.hs view
@@ -0,0 +1,204 @@+{-# 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.ManagedBlockChain.ListProposals+-- 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 a list of proposals for the network.+--+-- Applies only to Hyperledger Fabric.+module Amazonka.ManagedBlockChain.ListProposals+  ( -- * Creating a Request+    ListProposals (..),+    newListProposals,++    -- * Request Lenses+    listProposals_maxResults,+    listProposals_nextToken,+    listProposals_networkId,++    -- * Destructuring the Response+    ListProposalsResponse (..),+    newListProposalsResponse,++    -- * Response Lenses+    listProposalsResponse_nextToken,+    listProposalsResponse_proposals,+    listProposalsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListProposals' smart constructor.+data ListProposals = ListProposals'+  { -- | The maximum number of proposals to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token that indicates the next set of results to retrieve.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the network.+    networkId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProposals' 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', 'listProposals_maxResults' - The maximum number of proposals to return.+--+-- 'nextToken', 'listProposals_nextToken' - The pagination token that indicates the next set of results to retrieve.+--+-- 'networkId', 'listProposals_networkId' - The unique identifier of the network.+newListProposals ::+  -- | 'networkId'+  Prelude.Text ->+  ListProposals+newListProposals pNetworkId_ =+  ListProposals'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      networkId = pNetworkId_+    }++-- | The maximum number of proposals to return.+listProposals_maxResults :: Lens.Lens' ListProposals (Prelude.Maybe Prelude.Natural)+listProposals_maxResults = Lens.lens (\ListProposals' {maxResults} -> maxResults) (\s@ListProposals' {} a -> s {maxResults = a} :: ListProposals)++-- | The pagination token that indicates the next set of results to retrieve.+listProposals_nextToken :: Lens.Lens' ListProposals (Prelude.Maybe Prelude.Text)+listProposals_nextToken = Lens.lens (\ListProposals' {nextToken} -> nextToken) (\s@ListProposals' {} a -> s {nextToken = a} :: ListProposals)++-- | The unique identifier of the network.+listProposals_networkId :: Lens.Lens' ListProposals Prelude.Text+listProposals_networkId = Lens.lens (\ListProposals' {networkId} -> networkId) (\s@ListProposals' {} a -> s {networkId = a} :: ListProposals)++instance Core.AWSRequest ListProposals where+  type+    AWSResponse ListProposals =+      ListProposalsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListProposalsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "Proposals" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListProposals where+  hashWithSalt _salt ListProposals' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` networkId++instance Prelude.NFData ListProposals where+  rnf ListProposals' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf networkId++instance Data.ToHeaders ListProposals where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListProposals where+  toPath ListProposals' {..} =+    Prelude.mconcat+      ["/networks/", Data.toBS networkId, "/proposals"]++instance Data.ToQuery ListProposals where+  toQuery ListProposals' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListProposalsResponse' smart constructor.+data ListProposalsResponse = ListProposalsResponse'+  { -- | The pagination token that indicates the next set of results to retrieve.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The summary of each proposal made on the network.+    proposals :: Prelude.Maybe [ProposalSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProposalsResponse' 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:+--+-- 'nextToken', 'listProposalsResponse_nextToken' - The pagination token that indicates the next set of results to retrieve.+--+-- 'proposals', 'listProposalsResponse_proposals' - The summary of each proposal made on the network.+--+-- 'httpStatus', 'listProposalsResponse_httpStatus' - The response's http status code.+newListProposalsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListProposalsResponse+newListProposalsResponse pHttpStatus_ =+  ListProposalsResponse'+    { nextToken = Prelude.Nothing,+      proposals = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The pagination token that indicates the next set of results to retrieve.+listProposalsResponse_nextToken :: Lens.Lens' ListProposalsResponse (Prelude.Maybe Prelude.Text)+listProposalsResponse_nextToken = Lens.lens (\ListProposalsResponse' {nextToken} -> nextToken) (\s@ListProposalsResponse' {} a -> s {nextToken = a} :: ListProposalsResponse)++-- | The summary of each proposal made on the network.+listProposalsResponse_proposals :: Lens.Lens' ListProposalsResponse (Prelude.Maybe [ProposalSummary])+listProposalsResponse_proposals = Lens.lens (\ListProposalsResponse' {proposals} -> proposals) (\s@ListProposalsResponse' {} a -> s {proposals = a} :: ListProposalsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listProposalsResponse_httpStatus :: Lens.Lens' ListProposalsResponse Prelude.Int+listProposalsResponse_httpStatus = Lens.lens (\ListProposalsResponse' {httpStatus} -> httpStatus) (\s@ListProposalsResponse' {} a -> s {httpStatus = a} :: ListProposalsResponse)++instance Prelude.NFData ListProposalsResponse where+  rnf ListProposalsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf proposals+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/ListTagsForResource.hs view
@@ -0,0 +1,175 @@+{-# 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.ManagedBlockChain.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)+--+-- Returns a list of tags for the specified resource. Each tag consists of+-- a key and optional value.+--+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+module Amazonka.ManagedBlockChain.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceArn,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The Amazon Resource Name (ARN) of the resource. For more information+    -- about ARNs and their format, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /Amazon Web Services General Reference/.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) of the resource. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) of the resource. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListTagsForResource where+  toPath ListTagsForResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | The tags assigned to the resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The tags assigned to the resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The tags assigned to the resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/RejectInvitation.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.ManagedBlockChain.RejectInvitation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Rejects an invitation to join a network. This action can be called by a+-- principal in an Amazon Web Services account that has received an+-- invitation to create a member and join a network.+--+-- Applies only to Hyperledger Fabric.+module Amazonka.ManagedBlockChain.RejectInvitation+  ( -- * Creating a Request+    RejectInvitation (..),+    newRejectInvitation,++    -- * Request Lenses+    rejectInvitation_invitationId,++    -- * Destructuring the Response+    RejectInvitationResponse (..),+    newRejectInvitationResponse,++    -- * Response Lenses+    rejectInvitationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRejectInvitation' smart constructor.+data RejectInvitation = RejectInvitation'+  { -- | The unique identifier of the invitation to reject.+    invitationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RejectInvitation' 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:+--+-- 'invitationId', 'rejectInvitation_invitationId' - The unique identifier of the invitation to reject.+newRejectInvitation ::+  -- | 'invitationId'+  Prelude.Text ->+  RejectInvitation+newRejectInvitation pInvitationId_ =+  RejectInvitation' {invitationId = pInvitationId_}++-- | The unique identifier of the invitation to reject.+rejectInvitation_invitationId :: Lens.Lens' RejectInvitation Prelude.Text+rejectInvitation_invitationId = Lens.lens (\RejectInvitation' {invitationId} -> invitationId) (\s@RejectInvitation' {} a -> s {invitationId = a} :: RejectInvitation)++instance Core.AWSRequest RejectInvitation where+  type+    AWSResponse RejectInvitation =+      RejectInvitationResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          RejectInvitationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RejectInvitation where+  hashWithSalt _salt RejectInvitation' {..} =+    _salt `Prelude.hashWithSalt` invitationId++instance Prelude.NFData RejectInvitation where+  rnf RejectInvitation' {..} = Prelude.rnf invitationId++instance Data.ToHeaders RejectInvitation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath RejectInvitation where+  toPath RejectInvitation' {..} =+    Prelude.mconcat+      ["/invitations/", Data.toBS invitationId]++instance Data.ToQuery RejectInvitation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRejectInvitationResponse' smart constructor.+data RejectInvitationResponse = RejectInvitationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RejectInvitationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'rejectInvitationResponse_httpStatus' - The response's http status code.+newRejectInvitationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RejectInvitationResponse+newRejectInvitationResponse pHttpStatus_ =+  RejectInvitationResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+rejectInvitationResponse_httpStatus :: Lens.Lens' RejectInvitationResponse Prelude.Int+rejectInvitationResponse_httpStatus = Lens.lens (\RejectInvitationResponse' {httpStatus} -> httpStatus) (\s@RejectInvitationResponse' {} a -> s {httpStatus = a} :: RejectInvitationResponse)++instance Prelude.NFData RejectInvitationResponse where+  rnf RejectInvitationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/TagResource.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.ManagedBlockChain.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)+--+-- Adds or overwrites the specified tags for the specified Amazon Managed+-- Blockchain resource. Each tag consists of a key and optional value.+--+-- When you specify a tag key that already exists, the tag value is+-- overwritten with the new value. Use @UntagResource@ to remove tag keys.+--+-- A resource can have up to 50 tags. If you try to create more than 50+-- tags for a resource, your request fails and returns an error.+--+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+module Amazonka.ManagedBlockChain.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The Amazon Resource Name (ARN) of the resource. For more information+    -- about ARNs and their format, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /Amazon Web Services General Reference/.+    resourceArn :: Prelude.Text,+    -- | The tags to assign to the specified resource. Tag values can be empty,+    -- for example, @\"MyTagKey\" : \"\"@. You can specify multiple key-value+    -- pairs in a single request, with an overall maximum of 50 tags added to+    -- each resource.+    tags :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+--+-- 'tags', 'tagResource_tags' - The tags to assign to the specified resource. Tag values can be empty,+-- for example, @\"MyTagKey\" : \"\"@. You can specify multiple key-value+-- pairs in a single request, with an overall maximum of 50 tags added to+-- each resource.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the resource. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The tags to assign to the specified resource. Tag values can be empty,+-- for example, @\"MyTagKey\" : \"\"@. You can specify multiple key-value+-- pairs in a single request, with an overall maximum of 50 tags added to+-- each resource.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Tags" Data..= tags)]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/Types.hs view
@@ -0,0 +1,570 @@+{-# 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.ManagedBlockChain.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.ManagedBlockChain.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _IllegalActionException,+    _InternalServiceErrorException,+    _InvalidRequestException,+    _ResourceAlreadyExistsException,+    _ResourceLimitExceededException,+    _ResourceNotFoundException,+    _ResourceNotReadyException,+    _ThrottlingException,+    _TooManyTagsException,++    -- * AccessorStatus+    AccessorStatus (..),++    -- * AccessorType+    AccessorType (..),++    -- * Edition+    Edition (..),++    -- * Framework+    Framework (..),++    -- * InvitationStatus+    InvitationStatus (..),++    -- * MemberStatus+    MemberStatus (..),++    -- * NetworkStatus+    NetworkStatus (..),++    -- * NodeStatus+    NodeStatus (..),++    -- * ProposalStatus+    ProposalStatus (..),++    -- * StateDBType+    StateDBType (..),++    -- * ThresholdComparator+    ThresholdComparator (..),++    -- * VoteValue+    VoteValue (..),++    -- * Accessor+    Accessor (..),+    newAccessor,+    accessor_arn,+    accessor_billingToken,+    accessor_creationDate,+    accessor_id,+    accessor_status,+    accessor_type,++    -- * AccessorSummary+    AccessorSummary (..),+    newAccessorSummary,+    accessorSummary_arn,+    accessorSummary_creationDate,+    accessorSummary_id,+    accessorSummary_status,+    accessorSummary_type,++    -- * ApprovalThresholdPolicy+    ApprovalThresholdPolicy (..),+    newApprovalThresholdPolicy,+    approvalThresholdPolicy_proposalDurationInHours,+    approvalThresholdPolicy_thresholdComparator,+    approvalThresholdPolicy_thresholdPercentage,++    -- * Invitation+    Invitation (..),+    newInvitation,+    invitation_arn,+    invitation_creationDate,+    invitation_expirationDate,+    invitation_invitationId,+    invitation_networkSummary,+    invitation_status,++    -- * InviteAction+    InviteAction (..),+    newInviteAction,+    inviteAction_principal,++    -- * LogConfiguration+    LogConfiguration (..),+    newLogConfiguration,+    logConfiguration_enabled,++    -- * LogConfigurations+    LogConfigurations (..),+    newLogConfigurations,+    logConfigurations_cloudwatch,++    -- * Member+    Member (..),+    newMember,+    member_arn,+    member_creationDate,+    member_description,+    member_frameworkAttributes,+    member_id,+    member_kmsKeyArn,+    member_logPublishingConfiguration,+    member_name,+    member_networkId,+    member_status,+    member_tags,++    -- * MemberConfiguration+    MemberConfiguration (..),+    newMemberConfiguration,+    memberConfiguration_description,+    memberConfiguration_kmsKeyArn,+    memberConfiguration_logPublishingConfiguration,+    memberConfiguration_tags,+    memberConfiguration_name,+    memberConfiguration_frameworkConfiguration,++    -- * MemberFabricAttributes+    MemberFabricAttributes (..),+    newMemberFabricAttributes,+    memberFabricAttributes_adminUsername,+    memberFabricAttributes_caEndpoint,++    -- * MemberFabricConfiguration+    MemberFabricConfiguration (..),+    newMemberFabricConfiguration,+    memberFabricConfiguration_adminUsername,+    memberFabricConfiguration_adminPassword,++    -- * MemberFabricLogPublishingConfiguration+    MemberFabricLogPublishingConfiguration (..),+    newMemberFabricLogPublishingConfiguration,+    memberFabricLogPublishingConfiguration_caLogs,++    -- * MemberFrameworkAttributes+    MemberFrameworkAttributes (..),+    newMemberFrameworkAttributes,+    memberFrameworkAttributes_fabric,++    -- * MemberFrameworkConfiguration+    MemberFrameworkConfiguration (..),+    newMemberFrameworkConfiguration,+    memberFrameworkConfiguration_fabric,++    -- * MemberLogPublishingConfiguration+    MemberLogPublishingConfiguration (..),+    newMemberLogPublishingConfiguration,+    memberLogPublishingConfiguration_fabric,++    -- * MemberSummary+    MemberSummary (..),+    newMemberSummary,+    memberSummary_arn,+    memberSummary_creationDate,+    memberSummary_description,+    memberSummary_id,+    memberSummary_isOwned,+    memberSummary_name,+    memberSummary_status,++    -- * Network+    Network (..),+    newNetwork,+    network_arn,+    network_creationDate,+    network_description,+    network_framework,+    network_frameworkAttributes,+    network_frameworkVersion,+    network_id,+    network_name,+    network_status,+    network_tags,+    network_votingPolicy,+    network_vpcEndpointServiceName,++    -- * NetworkEthereumAttributes+    NetworkEthereumAttributes (..),+    newNetworkEthereumAttributes,+    networkEthereumAttributes_chainId,++    -- * NetworkFabricAttributes+    NetworkFabricAttributes (..),+    newNetworkFabricAttributes,+    networkFabricAttributes_edition,+    networkFabricAttributes_orderingServiceEndpoint,++    -- * NetworkFabricConfiguration+    NetworkFabricConfiguration (..),+    newNetworkFabricConfiguration,+    networkFabricConfiguration_edition,++    -- * NetworkFrameworkAttributes+    NetworkFrameworkAttributes (..),+    newNetworkFrameworkAttributes,+    networkFrameworkAttributes_ethereum,+    networkFrameworkAttributes_fabric,++    -- * NetworkFrameworkConfiguration+    NetworkFrameworkConfiguration (..),+    newNetworkFrameworkConfiguration,+    networkFrameworkConfiguration_fabric,++    -- * NetworkSummary+    NetworkSummary (..),+    newNetworkSummary,+    networkSummary_arn,+    networkSummary_creationDate,+    networkSummary_description,+    networkSummary_framework,+    networkSummary_frameworkVersion,+    networkSummary_id,+    networkSummary_name,+    networkSummary_status,++    -- * Node+    Node (..),+    newNode,+    node_arn,+    node_availabilityZone,+    node_creationDate,+    node_frameworkAttributes,+    node_id,+    node_instanceType,+    node_kmsKeyArn,+    node_logPublishingConfiguration,+    node_memberId,+    node_networkId,+    node_stateDB,+    node_status,+    node_tags,++    -- * NodeConfiguration+    NodeConfiguration (..),+    newNodeConfiguration,+    nodeConfiguration_availabilityZone,+    nodeConfiguration_logPublishingConfiguration,+    nodeConfiguration_stateDB,+    nodeConfiguration_instanceType,++    -- * NodeEthereumAttributes+    NodeEthereumAttributes (..),+    newNodeEthereumAttributes,+    nodeEthereumAttributes_httpEndpoint,+    nodeEthereumAttributes_webSocketEndpoint,++    -- * NodeFabricAttributes+    NodeFabricAttributes (..),+    newNodeFabricAttributes,+    nodeFabricAttributes_peerEndpoint,+    nodeFabricAttributes_peerEventEndpoint,++    -- * NodeFabricLogPublishingConfiguration+    NodeFabricLogPublishingConfiguration (..),+    newNodeFabricLogPublishingConfiguration,+    nodeFabricLogPublishingConfiguration_chaincodeLogs,+    nodeFabricLogPublishingConfiguration_peerLogs,++    -- * NodeFrameworkAttributes+    NodeFrameworkAttributes (..),+    newNodeFrameworkAttributes,+    nodeFrameworkAttributes_ethereum,+    nodeFrameworkAttributes_fabric,++    -- * NodeLogPublishingConfiguration+    NodeLogPublishingConfiguration (..),+    newNodeLogPublishingConfiguration,+    nodeLogPublishingConfiguration_fabric,++    -- * NodeSummary+    NodeSummary (..),+    newNodeSummary,+    nodeSummary_arn,+    nodeSummary_availabilityZone,+    nodeSummary_creationDate,+    nodeSummary_id,+    nodeSummary_instanceType,+    nodeSummary_status,++    -- * Proposal+    Proposal (..),+    newProposal,+    proposal_actions,+    proposal_arn,+    proposal_creationDate,+    proposal_description,+    proposal_expirationDate,+    proposal_networkId,+    proposal_noVoteCount,+    proposal_outstandingVoteCount,+    proposal_proposalId,+    proposal_proposedByMemberId,+    proposal_proposedByMemberName,+    proposal_status,+    proposal_tags,+    proposal_yesVoteCount,++    -- * ProposalActions+    ProposalActions (..),+    newProposalActions,+    proposalActions_invitations,+    proposalActions_removals,++    -- * ProposalSummary+    ProposalSummary (..),+    newProposalSummary,+    proposalSummary_arn,+    proposalSummary_creationDate,+    proposalSummary_description,+    proposalSummary_expirationDate,+    proposalSummary_proposalId,+    proposalSummary_proposedByMemberId,+    proposalSummary_proposedByMemberName,+    proposalSummary_status,++    -- * RemoveAction+    RemoveAction (..),+    newRemoveAction,+    removeAction_memberId,++    -- * VoteSummary+    VoteSummary (..),+    newVoteSummary,+    voteSummary_memberId,+    voteSummary_memberName,+    voteSummary_vote,++    -- * VotingPolicy+    VotingPolicy (..),+    newVotingPolicy,+    votingPolicy_approvalThresholdPolicy,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.ManagedBlockChain.Types.Accessor+import Amazonka.ManagedBlockChain.Types.AccessorStatus+import Amazonka.ManagedBlockChain.Types.AccessorSummary+import Amazonka.ManagedBlockChain.Types.AccessorType+import Amazonka.ManagedBlockChain.Types.ApprovalThresholdPolicy+import Amazonka.ManagedBlockChain.Types.Edition+import Amazonka.ManagedBlockChain.Types.Framework+import Amazonka.ManagedBlockChain.Types.Invitation+import Amazonka.ManagedBlockChain.Types.InvitationStatus+import Amazonka.ManagedBlockChain.Types.InviteAction+import Amazonka.ManagedBlockChain.Types.LogConfiguration+import Amazonka.ManagedBlockChain.Types.LogConfigurations+import Amazonka.ManagedBlockChain.Types.Member+import Amazonka.ManagedBlockChain.Types.MemberConfiguration+import Amazonka.ManagedBlockChain.Types.MemberFabricAttributes+import Amazonka.ManagedBlockChain.Types.MemberFabricConfiguration+import Amazonka.ManagedBlockChain.Types.MemberFabricLogPublishingConfiguration+import Amazonka.ManagedBlockChain.Types.MemberFrameworkAttributes+import Amazonka.ManagedBlockChain.Types.MemberFrameworkConfiguration+import Amazonka.ManagedBlockChain.Types.MemberLogPublishingConfiguration+import Amazonka.ManagedBlockChain.Types.MemberStatus+import Amazonka.ManagedBlockChain.Types.MemberSummary+import Amazonka.ManagedBlockChain.Types.Network+import Amazonka.ManagedBlockChain.Types.NetworkEthereumAttributes+import Amazonka.ManagedBlockChain.Types.NetworkFabricAttributes+import Amazonka.ManagedBlockChain.Types.NetworkFabricConfiguration+import Amazonka.ManagedBlockChain.Types.NetworkFrameworkAttributes+import Amazonka.ManagedBlockChain.Types.NetworkFrameworkConfiguration+import Amazonka.ManagedBlockChain.Types.NetworkStatus+import Amazonka.ManagedBlockChain.Types.NetworkSummary+import Amazonka.ManagedBlockChain.Types.Node+import Amazonka.ManagedBlockChain.Types.NodeConfiguration+import Amazonka.ManagedBlockChain.Types.NodeEthereumAttributes+import Amazonka.ManagedBlockChain.Types.NodeFabricAttributes+import Amazonka.ManagedBlockChain.Types.NodeFabricLogPublishingConfiguration+import Amazonka.ManagedBlockChain.Types.NodeFrameworkAttributes+import Amazonka.ManagedBlockChain.Types.NodeLogPublishingConfiguration+import Amazonka.ManagedBlockChain.Types.NodeStatus+import Amazonka.ManagedBlockChain.Types.NodeSummary+import Amazonka.ManagedBlockChain.Types.Proposal+import Amazonka.ManagedBlockChain.Types.ProposalActions+import Amazonka.ManagedBlockChain.Types.ProposalStatus+import Amazonka.ManagedBlockChain.Types.ProposalSummary+import Amazonka.ManagedBlockChain.Types.RemoveAction+import Amazonka.ManagedBlockChain.Types.StateDBType+import Amazonka.ManagedBlockChain.Types.ThresholdComparator+import Amazonka.ManagedBlockChain.Types.VoteSummary+import Amazonka.ManagedBlockChain.Types.VoteValue+import Amazonka.ManagedBlockChain.Types.VotingPolicy+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2018-09-24@ of the Amazon Managed Blockchain SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "ManagedBlockChain",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "managedblockchain",+      Core.signingName = "managedblockchain",+      Core.version = "2018-09-24",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "ManagedBlockChain",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | You don\'t have sufficient access to perform this action.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++_IllegalActionException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_IllegalActionException =+  Core._MatchServiceError+    defaultService+    "IllegalActionException"+    Prelude.. Core.hasStatus 400++-- | The request processing has failed because of an unknown error, exception+-- or failure.+_InternalServiceErrorException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServiceErrorException =+  Core._MatchServiceError+    defaultService+    "InternalServiceErrorException"+    Prelude.. Core.hasStatus 500++-- | The action or operation requested is invalid. Verify that the action is+-- typed correctly.+_InvalidRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidRequestException =+  Core._MatchServiceError+    defaultService+    "InvalidRequestException"+    Prelude.. Core.hasStatus 400++-- | A resource request is issued for a resource that already exists.+_ResourceAlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceAlreadyExistsException =+  Core._MatchServiceError+    defaultService+    "ResourceAlreadyExistsException"+    Prelude.. Core.hasStatus 409++-- | The maximum number of resources of that type already exist. Ensure the+-- resources requested are within the boundaries of the service edition and+-- your account limits.+_ResourceLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceLimitExceededException =+  Core._MatchServiceError+    defaultService+    "ResourceLimitExceededException"+    Prelude.. Core.hasStatus 429++-- | A requested resource doesn\'t exist. It may have been deleted or+-- referenced incorrectly.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | The requested resource exists but isn\'t in a status that can complete+-- the operation.+_ResourceNotReadyException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotReadyException =+  Core._MatchServiceError+    defaultService+    "ResourceNotReadyException"+    Prelude.. Core.hasStatus 409++-- | The request or operation couldn\'t be performed because a service is+-- throttling requests. The most common source of throttling errors is+-- creating resources that exceed your service limit for this resource+-- type. Request a limit increase or delete unused resources if possible.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"+    Prelude.. Core.hasStatus 429++_TooManyTagsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TooManyTagsException =+  Core._MatchServiceError+    defaultService+    "TooManyTagsException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/ManagedBlockChain/Types/Accessor.hs view
@@ -0,0 +1,163 @@+{-# 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.ManagedBlockChain.Types.Accessor+-- 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.ManagedBlockChain.Types.Accessor where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.AccessorStatus+import Amazonka.ManagedBlockChain.Types.AccessorType+import qualified Amazonka.Prelude as Prelude++-- | The token based access feature is in preview release for Ethereum on+-- Amazon Managed Blockchain and is subject to change. We recommend that+-- you use this feature only with test scenarios, and not in production+-- environments.+--+-- The properties of the Accessor.+--+-- /See:/ 'newAccessor' smart constructor.+data Accessor = Accessor'+  { -- | The Amazon Resource Name (ARN) of the accessor. For more information+    -- about ARNs and their format, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /Amazon Web Services General Reference/.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The billing token is a property of the accessor. Use this token to make+    -- Ethereum API calls to your Ethereum node. The billing token is used to+    -- track your accessor object for billing Ethereum API requests made to+    -- your Ethereum nodes.+    billingToken :: Prelude.Maybe Prelude.Text,+    -- | The creation date and time of the accessor.+    creationDate :: Prelude.Maybe Data.ISO8601,+    -- | The unique identifier of the accessor.+    id :: Prelude.Maybe Prelude.Text,+    -- | The current status of the accessor.+    status :: Prelude.Maybe AccessorStatus,+    -- | The type of the accessor.+    --+    -- Currently accessor type is restricted to @BILLING_TOKEN@.+    type' :: Prelude.Maybe AccessorType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Accessor' 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', 'accessor_arn' - The Amazon Resource Name (ARN) of the accessor. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+--+-- 'billingToken', 'accessor_billingToken' - The billing token is a property of the accessor. Use this token to make+-- Ethereum API calls to your Ethereum node. The billing token is used to+-- track your accessor object for billing Ethereum API requests made to+-- your Ethereum nodes.+--+-- 'creationDate', 'accessor_creationDate' - The creation date and time of the accessor.+--+-- 'id', 'accessor_id' - The unique identifier of the accessor.+--+-- 'status', 'accessor_status' - The current status of the accessor.+--+-- 'type'', 'accessor_type' - The type of the accessor.+--+-- Currently accessor type is restricted to @BILLING_TOKEN@.+newAccessor ::+  Accessor+newAccessor =+  Accessor'+    { arn = Prelude.Nothing,+      billingToken = Prelude.Nothing,+      creationDate = Prelude.Nothing,+      id = Prelude.Nothing,+      status = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the accessor. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+accessor_arn :: Lens.Lens' Accessor (Prelude.Maybe Prelude.Text)+accessor_arn = Lens.lens (\Accessor' {arn} -> arn) (\s@Accessor' {} a -> s {arn = a} :: Accessor)++-- | The billing token is a property of the accessor. Use this token to make+-- Ethereum API calls to your Ethereum node. The billing token is used to+-- track your accessor object for billing Ethereum API requests made to+-- your Ethereum nodes.+accessor_billingToken :: Lens.Lens' Accessor (Prelude.Maybe Prelude.Text)+accessor_billingToken = Lens.lens (\Accessor' {billingToken} -> billingToken) (\s@Accessor' {} a -> s {billingToken = a} :: Accessor)++-- | The creation date and time of the accessor.+accessor_creationDate :: Lens.Lens' Accessor (Prelude.Maybe Prelude.UTCTime)+accessor_creationDate = Lens.lens (\Accessor' {creationDate} -> creationDate) (\s@Accessor' {} a -> s {creationDate = a} :: Accessor) Prelude.. Lens.mapping Data._Time++-- | The unique identifier of the accessor.+accessor_id :: Lens.Lens' Accessor (Prelude.Maybe Prelude.Text)+accessor_id = Lens.lens (\Accessor' {id} -> id) (\s@Accessor' {} a -> s {id = a} :: Accessor)++-- | The current status of the accessor.+accessor_status :: Lens.Lens' Accessor (Prelude.Maybe AccessorStatus)+accessor_status = Lens.lens (\Accessor' {status} -> status) (\s@Accessor' {} a -> s {status = a} :: Accessor)++-- | The type of the accessor.+--+-- Currently accessor type is restricted to @BILLING_TOKEN@.+accessor_type :: Lens.Lens' Accessor (Prelude.Maybe AccessorType)+accessor_type = Lens.lens (\Accessor' {type'} -> type') (\s@Accessor' {} a -> s {type' = a} :: Accessor)++instance Data.FromJSON Accessor where+  parseJSON =+    Data.withObject+      "Accessor"+      ( \x ->+          Accessor'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "BillingToken")+            Prelude.<*> (x Data..:? "CreationDate")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "Type")+      )++instance Prelude.Hashable Accessor where+  hashWithSalt _salt Accessor' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` billingToken+      `Prelude.hashWithSalt` creationDate+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` type'++instance Prelude.NFData Accessor where+  rnf Accessor' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf billingToken+      `Prelude.seq` Prelude.rnf creationDate+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/ManagedBlockChain/Types/AccessorStatus.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ManagedBlockChain.Types.AccessorStatus+-- 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.ManagedBlockChain.Types.AccessorStatus+  ( AccessorStatus+      ( ..,+        AccessorStatus_AVAILABLE,+        AccessorStatus_DELETED,+        AccessorStatus_PENDING_DELETION+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AccessorStatus = AccessorStatus'+  { fromAccessorStatus ::+      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 AccessorStatus_AVAILABLE :: AccessorStatus+pattern AccessorStatus_AVAILABLE = AccessorStatus' "AVAILABLE"++pattern AccessorStatus_DELETED :: AccessorStatus+pattern AccessorStatus_DELETED = AccessorStatus' "DELETED"++pattern AccessorStatus_PENDING_DELETION :: AccessorStatus+pattern AccessorStatus_PENDING_DELETION = AccessorStatus' "PENDING_DELETION"++{-# COMPLETE+  AccessorStatus_AVAILABLE,+  AccessorStatus_DELETED,+  AccessorStatus_PENDING_DELETION,+  AccessorStatus'+  #-}
+ gen/Amazonka/ManagedBlockChain/Types/AccessorSummary.hs view
@@ -0,0 +1,142 @@+{-# 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.ManagedBlockChain.Types.AccessorSummary+-- 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.ManagedBlockChain.Types.AccessorSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.AccessorStatus+import Amazonka.ManagedBlockChain.Types.AccessorType+import qualified Amazonka.Prelude as Prelude++-- | The token based access feature is in preview release for Ethereum on+-- Amazon Managed Blockchain and is subject to change. We recommend that+-- you use this feature only with test scenarios, and not in production+-- environments.+--+-- A summary of accessor properties.+--+-- /See:/ 'newAccessorSummary' smart constructor.+data AccessorSummary = AccessorSummary'+  { -- | The Amazon Resource Name (ARN) of the accessor. For more information+    -- about ARNs and their format, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /Amazon Web Services General Reference/.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The creation date and time of the accessor.+    creationDate :: Prelude.Maybe Data.ISO8601,+    -- | The unique identifier of the accessor.+    id :: Prelude.Maybe Prelude.Text,+    -- | The current status of the accessor.+    status :: Prelude.Maybe AccessorStatus,+    -- | The type of the accessor.+    --+    -- Currently accessor type is restricted to @BILLING_TOKEN@.+    type' :: Prelude.Maybe AccessorType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccessorSummary' 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', 'accessorSummary_arn' - The Amazon Resource Name (ARN) of the accessor. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+--+-- 'creationDate', 'accessorSummary_creationDate' - The creation date and time of the accessor.+--+-- 'id', 'accessorSummary_id' - The unique identifier of the accessor.+--+-- 'status', 'accessorSummary_status' - The current status of the accessor.+--+-- 'type'', 'accessorSummary_type' - The type of the accessor.+--+-- Currently accessor type is restricted to @BILLING_TOKEN@.+newAccessorSummary ::+  AccessorSummary+newAccessorSummary =+  AccessorSummary'+    { arn = Prelude.Nothing,+      creationDate = Prelude.Nothing,+      id = Prelude.Nothing,+      status = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the accessor. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+accessorSummary_arn :: Lens.Lens' AccessorSummary (Prelude.Maybe Prelude.Text)+accessorSummary_arn = Lens.lens (\AccessorSummary' {arn} -> arn) (\s@AccessorSummary' {} a -> s {arn = a} :: AccessorSummary)++-- | The creation date and time of the accessor.+accessorSummary_creationDate :: Lens.Lens' AccessorSummary (Prelude.Maybe Prelude.UTCTime)+accessorSummary_creationDate = Lens.lens (\AccessorSummary' {creationDate} -> creationDate) (\s@AccessorSummary' {} a -> s {creationDate = a} :: AccessorSummary) Prelude.. Lens.mapping Data._Time++-- | The unique identifier of the accessor.+accessorSummary_id :: Lens.Lens' AccessorSummary (Prelude.Maybe Prelude.Text)+accessorSummary_id = Lens.lens (\AccessorSummary' {id} -> id) (\s@AccessorSummary' {} a -> s {id = a} :: AccessorSummary)++-- | The current status of the accessor.+accessorSummary_status :: Lens.Lens' AccessorSummary (Prelude.Maybe AccessorStatus)+accessorSummary_status = Lens.lens (\AccessorSummary' {status} -> status) (\s@AccessorSummary' {} a -> s {status = a} :: AccessorSummary)++-- | The type of the accessor.+--+-- Currently accessor type is restricted to @BILLING_TOKEN@.+accessorSummary_type :: Lens.Lens' AccessorSummary (Prelude.Maybe AccessorType)+accessorSummary_type = Lens.lens (\AccessorSummary' {type'} -> type') (\s@AccessorSummary' {} a -> s {type' = a} :: AccessorSummary)++instance Data.FromJSON AccessorSummary where+  parseJSON =+    Data.withObject+      "AccessorSummary"+      ( \x ->+          AccessorSummary'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "CreationDate")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "Type")+      )++instance Prelude.Hashable AccessorSummary where+  hashWithSalt _salt AccessorSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationDate+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` type'++instance Prelude.NFData AccessorSummary where+  rnf AccessorSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDate+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/ManagedBlockChain/Types/AccessorType.hs view
@@ -0,0 +1,66 @@+{-# 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.ManagedBlockChain.Types.AccessorType+-- 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.ManagedBlockChain.Types.AccessorType+  ( AccessorType+      ( ..,+        AccessorType_BILLING_TOKEN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AccessorType = AccessorType'+  { fromAccessorType ::+      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 AccessorType_BILLING_TOKEN :: AccessorType+pattern AccessorType_BILLING_TOKEN = AccessorType' "BILLING_TOKEN"++{-# COMPLETE+  AccessorType_BILLING_TOKEN,+  AccessorType'+  #-}
+ gen/Amazonka/ManagedBlockChain/Types/ApprovalThresholdPolicy.hs view
@@ -0,0 +1,153 @@+{-# 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.ManagedBlockChain.Types.ApprovalThresholdPolicy+-- 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.ManagedBlockChain.Types.ApprovalThresholdPolicy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.ThresholdComparator+import qualified Amazonka.Prelude as Prelude++-- | A policy type that defines the voting rules for the network. The rules+-- decide if a proposal is approved. Approval may be based on criteria such+-- as the percentage of @YES@ votes and the duration of the proposal. The+-- policy applies to all proposals and is specified when the network is+-- created.+--+-- Applies only to Hyperledger Fabric.+--+-- /See:/ 'newApprovalThresholdPolicy' smart constructor.+data ApprovalThresholdPolicy = ApprovalThresholdPolicy'+  { -- | The duration from the time that a proposal is created until it expires.+    -- If members cast neither the required number of @YES@ votes to approve+    -- the proposal nor the number of @NO@ votes required to reject it before+    -- the duration expires, the proposal is @EXPIRED@ and @ProposalActions@+    -- aren\'t carried out.+    proposalDurationInHours :: Prelude.Maybe Prelude.Natural,+    -- | Determines whether the vote percentage must be greater than the+    -- @ThresholdPercentage@ or must be greater than or equal to the+    -- @ThreholdPercentage@ to be approved.+    thresholdComparator :: Prelude.Maybe ThresholdComparator,+    -- | The percentage of votes among all members that must be @YES@ for a+    -- proposal to be approved. For example, a @ThresholdPercentage@ value of+    -- @50@ indicates 50%. The @ThresholdComparator@ determines the precise+    -- comparison. If a @ThresholdPercentage@ value of @50@ is specified on a+    -- network with 10 members, along with a @ThresholdComparator@ value of+    -- @GREATER_THAN@, this indicates that 6 @YES@ votes are required for the+    -- proposal to be approved.+    thresholdPercentage :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ApprovalThresholdPolicy' 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:+--+-- 'proposalDurationInHours', 'approvalThresholdPolicy_proposalDurationInHours' - The duration from the time that a proposal is created until it expires.+-- If members cast neither the required number of @YES@ votes to approve+-- the proposal nor the number of @NO@ votes required to reject it before+-- the duration expires, the proposal is @EXPIRED@ and @ProposalActions@+-- aren\'t carried out.+--+-- 'thresholdComparator', 'approvalThresholdPolicy_thresholdComparator' - Determines whether the vote percentage must be greater than the+-- @ThresholdPercentage@ or must be greater than or equal to the+-- @ThreholdPercentage@ to be approved.+--+-- 'thresholdPercentage', 'approvalThresholdPolicy_thresholdPercentage' - The percentage of votes among all members that must be @YES@ for a+-- proposal to be approved. For example, a @ThresholdPercentage@ value of+-- @50@ indicates 50%. The @ThresholdComparator@ determines the precise+-- comparison. If a @ThresholdPercentage@ value of @50@ is specified on a+-- network with 10 members, along with a @ThresholdComparator@ value of+-- @GREATER_THAN@, this indicates that 6 @YES@ votes are required for the+-- proposal to be approved.+newApprovalThresholdPolicy ::+  ApprovalThresholdPolicy+newApprovalThresholdPolicy =+  ApprovalThresholdPolicy'+    { proposalDurationInHours =+        Prelude.Nothing,+      thresholdComparator = Prelude.Nothing,+      thresholdPercentage = Prelude.Nothing+    }++-- | The duration from the time that a proposal is created until it expires.+-- If members cast neither the required number of @YES@ votes to approve+-- the proposal nor the number of @NO@ votes required to reject it before+-- the duration expires, the proposal is @EXPIRED@ and @ProposalActions@+-- aren\'t carried out.+approvalThresholdPolicy_proposalDurationInHours :: Lens.Lens' ApprovalThresholdPolicy (Prelude.Maybe Prelude.Natural)+approvalThresholdPolicy_proposalDurationInHours = Lens.lens (\ApprovalThresholdPolicy' {proposalDurationInHours} -> proposalDurationInHours) (\s@ApprovalThresholdPolicy' {} a -> s {proposalDurationInHours = a} :: ApprovalThresholdPolicy)++-- | Determines whether the vote percentage must be greater than the+-- @ThresholdPercentage@ or must be greater than or equal to the+-- @ThreholdPercentage@ to be approved.+approvalThresholdPolicy_thresholdComparator :: Lens.Lens' ApprovalThresholdPolicy (Prelude.Maybe ThresholdComparator)+approvalThresholdPolicy_thresholdComparator = Lens.lens (\ApprovalThresholdPolicy' {thresholdComparator} -> thresholdComparator) (\s@ApprovalThresholdPolicy' {} a -> s {thresholdComparator = a} :: ApprovalThresholdPolicy)++-- | The percentage of votes among all members that must be @YES@ for a+-- proposal to be approved. For example, a @ThresholdPercentage@ value of+-- @50@ indicates 50%. The @ThresholdComparator@ determines the precise+-- comparison. If a @ThresholdPercentage@ value of @50@ is specified on a+-- network with 10 members, along with a @ThresholdComparator@ value of+-- @GREATER_THAN@, this indicates that 6 @YES@ votes are required for the+-- proposal to be approved.+approvalThresholdPolicy_thresholdPercentage :: Lens.Lens' ApprovalThresholdPolicy (Prelude.Maybe Prelude.Natural)+approvalThresholdPolicy_thresholdPercentage = Lens.lens (\ApprovalThresholdPolicy' {thresholdPercentage} -> thresholdPercentage) (\s@ApprovalThresholdPolicy' {} a -> s {thresholdPercentage = a} :: ApprovalThresholdPolicy)++instance Data.FromJSON ApprovalThresholdPolicy where+  parseJSON =+    Data.withObject+      "ApprovalThresholdPolicy"+      ( \x ->+          ApprovalThresholdPolicy'+            Prelude.<$> (x Data..:? "ProposalDurationInHours")+            Prelude.<*> (x Data..:? "ThresholdComparator")+            Prelude.<*> (x Data..:? "ThresholdPercentage")+      )++instance Prelude.Hashable ApprovalThresholdPolicy where+  hashWithSalt _salt ApprovalThresholdPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` proposalDurationInHours+      `Prelude.hashWithSalt` thresholdComparator+      `Prelude.hashWithSalt` thresholdPercentage++instance Prelude.NFData ApprovalThresholdPolicy where+  rnf ApprovalThresholdPolicy' {..} =+    Prelude.rnf proposalDurationInHours+      `Prelude.seq` Prelude.rnf thresholdComparator+      `Prelude.seq` Prelude.rnf thresholdPercentage++instance Data.ToJSON ApprovalThresholdPolicy where+  toJSON ApprovalThresholdPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ProposalDurationInHours" Data..=)+              Prelude.<$> proposalDurationInHours,+            ("ThresholdComparator" Data..=)+              Prelude.<$> thresholdComparator,+            ("ThresholdPercentage" Data..=)+              Prelude.<$> thresholdPercentage+          ]+      )
+ gen/Amazonka/ManagedBlockChain/Types/Edition.hs view
@@ -0,0 +1,68 @@+{-# 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.ManagedBlockChain.Types.Edition+-- 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.ManagedBlockChain.Types.Edition+  ( Edition+      ( ..,+        Edition_STANDARD,+        Edition_STARTER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Edition = Edition' {fromEdition :: 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 Edition_STANDARD :: Edition+pattern Edition_STANDARD = Edition' "STANDARD"++pattern Edition_STARTER :: Edition+pattern Edition_STARTER = Edition' "STARTER"++{-# COMPLETE+  Edition_STANDARD,+  Edition_STARTER,+  Edition'+  #-}
+ gen/Amazonka/ManagedBlockChain/Types/Framework.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.ManagedBlockChain.Types.Framework+-- 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.ManagedBlockChain.Types.Framework+  ( Framework+      ( ..,+        Framework_ETHEREUM,+        Framework_HYPERLEDGER_FABRIC+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Framework = Framework'+  { fromFramework ::+      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 Framework_ETHEREUM :: Framework+pattern Framework_ETHEREUM = Framework' "ETHEREUM"++pattern Framework_HYPERLEDGER_FABRIC :: Framework+pattern Framework_HYPERLEDGER_FABRIC = Framework' "HYPERLEDGER_FABRIC"++{-# COMPLETE+  Framework_ETHEREUM,+  Framework_HYPERLEDGER_FABRIC,+  Framework'+  #-}
+ gen/Amazonka/ManagedBlockChain/Types/Invitation.hs view
@@ -0,0 +1,199 @@+{-# 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.ManagedBlockChain.Types.Invitation+-- 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.ManagedBlockChain.Types.Invitation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.InvitationStatus+import Amazonka.ManagedBlockChain.Types.NetworkSummary+import qualified Amazonka.Prelude as Prelude++-- | An invitation to an Amazon Web Services account to create a member and+-- join the network.+--+-- Applies only to Hyperledger Fabric.+--+-- /See:/ 'newInvitation' smart constructor.+data Invitation = Invitation'+  { -- | The Amazon Resource Name (ARN) of the invitation. For more information+    -- about ARNs and their format, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /Amazon Web Services General Reference/.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the invitation was created.+    creationDate :: Prelude.Maybe Data.ISO8601,+    -- | The date and time that the invitation expires. This is the+    -- @CreationDate@ plus the @ProposalDurationInHours@ that is specified in+    -- the @ProposalThresholdPolicy@. After this date and time, the invitee can+    -- no longer create a member and join the network using this+    -- @InvitationId@.+    expirationDate :: Prelude.Maybe Data.ISO8601,+    -- | The unique identifier for the invitation.+    invitationId :: Prelude.Maybe Prelude.Text,+    networkSummary :: Prelude.Maybe NetworkSummary,+    -- | The status of the invitation:+    --+    -- -   @PENDING@ - The invitee hasn\'t created a member to join the+    --     network, and the invitation hasn\'t yet expired.+    --+    -- -   @ACCEPTING@ - The invitee has begun creating a member, and creation+    --     hasn\'t yet completed.+    --+    -- -   @ACCEPTED@ - The invitee created a member and joined the network+    --     using the @InvitationID@.+    --+    -- -   @REJECTED@ - The invitee rejected the invitation.+    --+    -- -   @EXPIRED@ - The invitee neither created a member nor rejected the+    --     invitation before the @ExpirationDate@.+    status :: Prelude.Maybe InvitationStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Invitation' 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', 'invitation_arn' - The Amazon Resource Name (ARN) of the invitation. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+--+-- 'creationDate', 'invitation_creationDate' - The date and time that the invitation was created.+--+-- 'expirationDate', 'invitation_expirationDate' - The date and time that the invitation expires. This is the+-- @CreationDate@ plus the @ProposalDurationInHours@ that is specified in+-- the @ProposalThresholdPolicy@. After this date and time, the invitee can+-- no longer create a member and join the network using this+-- @InvitationId@.+--+-- 'invitationId', 'invitation_invitationId' - The unique identifier for the invitation.+--+-- 'networkSummary', 'invitation_networkSummary' - Undocumented member.+--+-- 'status', 'invitation_status' - The status of the invitation:+--+-- -   @PENDING@ - The invitee hasn\'t created a member to join the+--     network, and the invitation hasn\'t yet expired.+--+-- -   @ACCEPTING@ - The invitee has begun creating a member, and creation+--     hasn\'t yet completed.+--+-- -   @ACCEPTED@ - The invitee created a member and joined the network+--     using the @InvitationID@.+--+-- -   @REJECTED@ - The invitee rejected the invitation.+--+-- -   @EXPIRED@ - The invitee neither created a member nor rejected the+--     invitation before the @ExpirationDate@.+newInvitation ::+  Invitation+newInvitation =+  Invitation'+    { arn = Prelude.Nothing,+      creationDate = Prelude.Nothing,+      expirationDate = Prelude.Nothing,+      invitationId = Prelude.Nothing,+      networkSummary = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the invitation. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+invitation_arn :: Lens.Lens' Invitation (Prelude.Maybe Prelude.Text)+invitation_arn = Lens.lens (\Invitation' {arn} -> arn) (\s@Invitation' {} a -> s {arn = a} :: Invitation)++-- | The date and time that the invitation was created.+invitation_creationDate :: Lens.Lens' Invitation (Prelude.Maybe Prelude.UTCTime)+invitation_creationDate = Lens.lens (\Invitation' {creationDate} -> creationDate) (\s@Invitation' {} a -> s {creationDate = a} :: Invitation) Prelude.. Lens.mapping Data._Time++-- | The date and time that the invitation expires. This is the+-- @CreationDate@ plus the @ProposalDurationInHours@ that is specified in+-- the @ProposalThresholdPolicy@. After this date and time, the invitee can+-- no longer create a member and join the network using this+-- @InvitationId@.+invitation_expirationDate :: Lens.Lens' Invitation (Prelude.Maybe Prelude.UTCTime)+invitation_expirationDate = Lens.lens (\Invitation' {expirationDate} -> expirationDate) (\s@Invitation' {} a -> s {expirationDate = a} :: Invitation) Prelude.. Lens.mapping Data._Time++-- | The unique identifier for the invitation.+invitation_invitationId :: Lens.Lens' Invitation (Prelude.Maybe Prelude.Text)+invitation_invitationId = Lens.lens (\Invitation' {invitationId} -> invitationId) (\s@Invitation' {} a -> s {invitationId = a} :: Invitation)++-- | Undocumented member.+invitation_networkSummary :: Lens.Lens' Invitation (Prelude.Maybe NetworkSummary)+invitation_networkSummary = Lens.lens (\Invitation' {networkSummary} -> networkSummary) (\s@Invitation' {} a -> s {networkSummary = a} :: Invitation)++-- | The status of the invitation:+--+-- -   @PENDING@ - The invitee hasn\'t created a member to join the+--     network, and the invitation hasn\'t yet expired.+--+-- -   @ACCEPTING@ - The invitee has begun creating a member, and creation+--     hasn\'t yet completed.+--+-- -   @ACCEPTED@ - The invitee created a member and joined the network+--     using the @InvitationID@.+--+-- -   @REJECTED@ - The invitee rejected the invitation.+--+-- -   @EXPIRED@ - The invitee neither created a member nor rejected the+--     invitation before the @ExpirationDate@.+invitation_status :: Lens.Lens' Invitation (Prelude.Maybe InvitationStatus)+invitation_status = Lens.lens (\Invitation' {status} -> status) (\s@Invitation' {} a -> s {status = a} :: Invitation)++instance Data.FromJSON Invitation where+  parseJSON =+    Data.withObject+      "Invitation"+      ( \x ->+          Invitation'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "CreationDate")+            Prelude.<*> (x Data..:? "ExpirationDate")+            Prelude.<*> (x Data..:? "InvitationId")+            Prelude.<*> (x Data..:? "NetworkSummary")+            Prelude.<*> (x Data..:? "Status")+      )++instance Prelude.Hashable Invitation where+  hashWithSalt _salt Invitation' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationDate+      `Prelude.hashWithSalt` expirationDate+      `Prelude.hashWithSalt` invitationId+      `Prelude.hashWithSalt` networkSummary+      `Prelude.hashWithSalt` status++instance Prelude.NFData Invitation where+  rnf Invitation' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDate+      `Prelude.seq` Prelude.rnf expirationDate+      `Prelude.seq` Prelude.rnf invitationId+      `Prelude.seq` Prelude.rnf networkSummary+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/ManagedBlockChain/Types/InvitationStatus.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ManagedBlockChain.Types.InvitationStatus+-- 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.ManagedBlockChain.Types.InvitationStatus+  ( InvitationStatus+      ( ..,+        InvitationStatus_ACCEPTED,+        InvitationStatus_ACCEPTING,+        InvitationStatus_EXPIRED,+        InvitationStatus_PENDING,+        InvitationStatus_REJECTED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype InvitationStatus = InvitationStatus'+  { fromInvitationStatus ::+      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 InvitationStatus_ACCEPTED :: InvitationStatus+pattern InvitationStatus_ACCEPTED = InvitationStatus' "ACCEPTED"++pattern InvitationStatus_ACCEPTING :: InvitationStatus+pattern InvitationStatus_ACCEPTING = InvitationStatus' "ACCEPTING"++pattern InvitationStatus_EXPIRED :: InvitationStatus+pattern InvitationStatus_EXPIRED = InvitationStatus' "EXPIRED"++pattern InvitationStatus_PENDING :: InvitationStatus+pattern InvitationStatus_PENDING = InvitationStatus' "PENDING"++pattern InvitationStatus_REJECTED :: InvitationStatus+pattern InvitationStatus_REJECTED = InvitationStatus' "REJECTED"++{-# COMPLETE+  InvitationStatus_ACCEPTED,+  InvitationStatus_ACCEPTING,+  InvitationStatus_EXPIRED,+  InvitationStatus_PENDING,+  InvitationStatus_REJECTED,+  InvitationStatus'+  #-}
+ gen/Amazonka/ManagedBlockChain/Types/InviteAction.hs view
@@ -0,0 +1,80 @@+{-# 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.ManagedBlockChain.Types.InviteAction+-- 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.ManagedBlockChain.Types.InviteAction 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 to invite a specific Amazon Web Services account to create a+-- member and join the network. The @InviteAction@ is carried out when a+-- @Proposal@ is @APPROVED@.+--+-- Applies only to Hyperledger Fabric.+--+-- /See:/ 'newInviteAction' smart constructor.+data InviteAction = InviteAction'+  { -- | The Amazon Web Services account ID to invite.+    principal :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InviteAction' 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:+--+-- 'principal', 'inviteAction_principal' - The Amazon Web Services account ID to invite.+newInviteAction ::+  -- | 'principal'+  Prelude.Text ->+  InviteAction+newInviteAction pPrincipal_ =+  InviteAction' {principal = pPrincipal_}++-- | The Amazon Web Services account ID to invite.+inviteAction_principal :: Lens.Lens' InviteAction Prelude.Text+inviteAction_principal = Lens.lens (\InviteAction' {principal} -> principal) (\s@InviteAction' {} a -> s {principal = a} :: InviteAction)++instance Data.FromJSON InviteAction where+  parseJSON =+    Data.withObject+      "InviteAction"+      ( \x ->+          InviteAction' Prelude.<$> (x Data..: "Principal")+      )++instance Prelude.Hashable InviteAction where+  hashWithSalt _salt InviteAction' {..} =+    _salt `Prelude.hashWithSalt` principal++instance Prelude.NFData InviteAction where+  rnf InviteAction' {..} = Prelude.rnf principal++instance Data.ToJSON InviteAction where+  toJSON InviteAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Principal" Data..= principal)]+      )
+ gen/Amazonka/ManagedBlockChain/Types/LogConfiguration.hs view
@@ -0,0 +1,74 @@+{-# 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.ManagedBlockChain.Types.LogConfiguration+-- 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.ManagedBlockChain.Types.LogConfiguration 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 configuration for logging events.+--+-- /See:/ 'newLogConfiguration' smart constructor.+data LogConfiguration = LogConfiguration'+  { -- | Indicates whether logging is enabled.+    enabled :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LogConfiguration' 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:+--+-- 'enabled', 'logConfiguration_enabled' - Indicates whether logging is enabled.+newLogConfiguration ::+  LogConfiguration+newLogConfiguration =+  LogConfiguration' {enabled = Prelude.Nothing}++-- | Indicates whether logging is enabled.+logConfiguration_enabled :: Lens.Lens' LogConfiguration (Prelude.Maybe Prelude.Bool)+logConfiguration_enabled = Lens.lens (\LogConfiguration' {enabled} -> enabled) (\s@LogConfiguration' {} a -> s {enabled = a} :: LogConfiguration)++instance Data.FromJSON LogConfiguration where+  parseJSON =+    Data.withObject+      "LogConfiguration"+      ( \x ->+          LogConfiguration' Prelude.<$> (x Data..:? "Enabled")+      )++instance Prelude.Hashable LogConfiguration where+  hashWithSalt _salt LogConfiguration' {..} =+    _salt `Prelude.hashWithSalt` enabled++instance Prelude.NFData LogConfiguration where+  rnf LogConfiguration' {..} = Prelude.rnf enabled++instance Data.ToJSON LogConfiguration where+  toJSON LogConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Enabled" Data..=) Prelude.<$> enabled]+      )
+ gen/Amazonka/ManagedBlockChain/Types/LogConfigurations.hs view
@@ -0,0 +1,76 @@+{-# 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.ManagedBlockChain.Types.LogConfigurations+-- 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.ManagedBlockChain.Types.LogConfigurations where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.LogConfiguration+import qualified Amazonka.Prelude as Prelude++-- | A collection of log configurations.+--+-- /See:/ 'newLogConfigurations' smart constructor.+data LogConfigurations = LogConfigurations'+  { -- | Parameters for publishing logs to Amazon CloudWatch Logs.+    cloudwatch :: Prelude.Maybe LogConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LogConfigurations' 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:+--+-- 'cloudwatch', 'logConfigurations_cloudwatch' - Parameters for publishing logs to Amazon CloudWatch Logs.+newLogConfigurations ::+  LogConfigurations+newLogConfigurations =+  LogConfigurations' {cloudwatch = Prelude.Nothing}++-- | Parameters for publishing logs to Amazon CloudWatch Logs.+logConfigurations_cloudwatch :: Lens.Lens' LogConfigurations (Prelude.Maybe LogConfiguration)+logConfigurations_cloudwatch = Lens.lens (\LogConfigurations' {cloudwatch} -> cloudwatch) (\s@LogConfigurations' {} a -> s {cloudwatch = a} :: LogConfigurations)++instance Data.FromJSON LogConfigurations where+  parseJSON =+    Data.withObject+      "LogConfigurations"+      ( \x ->+          LogConfigurations'+            Prelude.<$> (x Data..:? "Cloudwatch")+      )++instance Prelude.Hashable LogConfigurations where+  hashWithSalt _salt LogConfigurations' {..} =+    _salt `Prelude.hashWithSalt` cloudwatch++instance Prelude.NFData LogConfigurations where+  rnf LogConfigurations' {..} = Prelude.rnf cloudwatch++instance Data.ToJSON LogConfigurations where+  toJSON LogConfigurations' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Cloudwatch" Data..=) Prelude.<$> cloudwatch]+      )
+ gen/Amazonka/ManagedBlockChain/Types/Member.hs view
@@ -0,0 +1,338 @@+{-# 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.ManagedBlockChain.Types.Member+-- 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.ManagedBlockChain.Types.Member where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.MemberFrameworkAttributes+import Amazonka.ManagedBlockChain.Types.MemberLogPublishingConfiguration+import Amazonka.ManagedBlockChain.Types.MemberStatus+import qualified Amazonka.Prelude as Prelude++-- | Member configuration properties.+--+-- Applies only to Hyperledger Fabric.+--+-- /See:/ 'newMember' smart constructor.+data Member = Member'+  { -- | The Amazon Resource Name (ARN) of the member. For more information about+    -- ARNs and their format, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /Amazon Web Services General Reference/.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the member was created.+    creationDate :: Prelude.Maybe Data.ISO8601,+    -- | An optional description for the member.+    description :: Prelude.Maybe Prelude.Text,+    -- | Attributes relevant to a member for the blockchain framework that the+    -- Managed Blockchain network uses.+    frameworkAttributes :: Prelude.Maybe MemberFrameworkAttributes,+    -- | The unique identifier of the member.+    id :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the customer managed key in Key+    -- Management Service (KMS) that the member uses for encryption at rest. If+    -- the value of this parameter is @\"AWS Owned KMS Key\"@, the member uses+    -- an Amazon Web Services owned KMS key for encryption. This parameter is+    -- inherited by the nodes that this member owns.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/managed-blockchain-encryption-at-rest.html Encryption at Rest>+    -- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | Configuration properties for logging events associated with a member.+    logPublishingConfiguration :: Prelude.Maybe MemberLogPublishingConfiguration,+    -- | The name of the member.+    name :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the network to which the member belongs.+    networkId :: Prelude.Maybe Prelude.Text,+    -- | The status of a member.+    --+    -- -   @CREATING@ - The Amazon Web Services account is in the process of+    --     creating a member.+    --+    -- -   @AVAILABLE@ - The member has been created and can participate in the+    --     network.+    --+    -- -   @CREATE_FAILED@ - The Amazon Web Services account attempted to+    --     create a member and creation failed.+    --+    -- -   @UPDATING@ - The member is in the process of being updated.+    --+    -- -   @DELETING@ - The member and all associated resources are in the+    --     process of being deleted. Either the Amazon Web Services account+    --     that owns the member deleted it, or the member is being deleted as+    --     the result of an @APPROVED@ @PROPOSAL@ to remove the member.+    --+    -- -   @DELETED@ - The member can no longer participate on the network and+    --     all associated resources are deleted. Either the Amazon Web Services+    --     account that owns the member deleted it, or the member is being+    --     deleted as the result of an @APPROVED@ @PROPOSAL@ to remove the+    --     member.+    --+    -- -   @INACCESSIBLE_ENCRYPTION_KEY@ - The member is impaired and might not+    --     function as expected because it cannot access the specified customer+    --     managed key in KMS for encryption at rest. Either the KMS key was+    --     disabled or deleted, or the grants on the key were revoked.+    --+    --     The effect of disabling or deleting a key or of revoking a grant+    --     isn\'t immediate. It might take some time for the member resource to+    --     discover that the key is inaccessible. When a resource is in this+    --     state, we recommend deleting and recreating the resource.+    status :: Prelude.Maybe MemberStatus,+    -- | Tags assigned to the member. Tags consist of a key and optional value.+    -- For more information about tags, see+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+    -- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Member' 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', 'member_arn' - The Amazon Resource Name (ARN) of the member. For more information about+-- ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+--+-- 'creationDate', 'member_creationDate' - The date and time that the member was created.+--+-- 'description', 'member_description' - An optional description for the member.+--+-- 'frameworkAttributes', 'member_frameworkAttributes' - Attributes relevant to a member for the blockchain framework that the+-- Managed Blockchain network uses.+--+-- 'id', 'member_id' - The unique identifier of the member.+--+-- 'kmsKeyArn', 'member_kmsKeyArn' - The Amazon Resource Name (ARN) of the customer managed key in Key+-- Management Service (KMS) that the member uses for encryption at rest. If+-- the value of this parameter is @\"AWS Owned KMS Key\"@, the member uses+-- an Amazon Web Services owned KMS key for encryption. This parameter is+-- inherited by the nodes that this member owns.+--+-- For more information, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/managed-blockchain-encryption-at-rest.html Encryption at Rest>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+--+-- 'logPublishingConfiguration', 'member_logPublishingConfiguration' - Configuration properties for logging events associated with a member.+--+-- 'name', 'member_name' - The name of the member.+--+-- 'networkId', 'member_networkId' - The unique identifier of the network to which the member belongs.+--+-- 'status', 'member_status' - The status of a member.+--+-- -   @CREATING@ - The Amazon Web Services account is in the process of+--     creating a member.+--+-- -   @AVAILABLE@ - The member has been created and can participate in the+--     network.+--+-- -   @CREATE_FAILED@ - The Amazon Web Services account attempted to+--     create a member and creation failed.+--+-- -   @UPDATING@ - The member is in the process of being updated.+--+-- -   @DELETING@ - The member and all associated resources are in the+--     process of being deleted. Either the Amazon Web Services account+--     that owns the member deleted it, or the member is being deleted as+--     the result of an @APPROVED@ @PROPOSAL@ to remove the member.+--+-- -   @DELETED@ - The member can no longer participate on the network and+--     all associated resources are deleted. Either the Amazon Web Services+--     account that owns the member deleted it, or the member is being+--     deleted as the result of an @APPROVED@ @PROPOSAL@ to remove the+--     member.+--+-- -   @INACCESSIBLE_ENCRYPTION_KEY@ - The member is impaired and might not+--     function as expected because it cannot access the specified customer+--     managed key in KMS for encryption at rest. Either the KMS key was+--     disabled or deleted, or the grants on the key were revoked.+--+--     The effect of disabling or deleting a key or of revoking a grant+--     isn\'t immediate. It might take some time for the member resource to+--     discover that the key is inaccessible. When a resource is in this+--     state, we recommend deleting and recreating the resource.+--+-- 'tags', 'member_tags' - Tags assigned to the member. Tags consist of a key and optional value.+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+newMember ::+  Member+newMember =+  Member'+    { arn = Prelude.Nothing,+      creationDate = Prelude.Nothing,+      description = Prelude.Nothing,+      frameworkAttributes = Prelude.Nothing,+      id = Prelude.Nothing,+      kmsKeyArn = Prelude.Nothing,+      logPublishingConfiguration = Prelude.Nothing,+      name = Prelude.Nothing,+      networkId = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the member. For more information about+-- ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+member_arn :: Lens.Lens' Member (Prelude.Maybe Prelude.Text)+member_arn = Lens.lens (\Member' {arn} -> arn) (\s@Member' {} a -> s {arn = a} :: Member)++-- | The date and time that the member was created.+member_creationDate :: Lens.Lens' Member (Prelude.Maybe Prelude.UTCTime)+member_creationDate = Lens.lens (\Member' {creationDate} -> creationDate) (\s@Member' {} a -> s {creationDate = a} :: Member) Prelude.. Lens.mapping Data._Time++-- | An optional description for the member.+member_description :: Lens.Lens' Member (Prelude.Maybe Prelude.Text)+member_description = Lens.lens (\Member' {description} -> description) (\s@Member' {} a -> s {description = a} :: Member)++-- | Attributes relevant to a member for the blockchain framework that the+-- Managed Blockchain network uses.+member_frameworkAttributes :: Lens.Lens' Member (Prelude.Maybe MemberFrameworkAttributes)+member_frameworkAttributes = Lens.lens (\Member' {frameworkAttributes} -> frameworkAttributes) (\s@Member' {} a -> s {frameworkAttributes = a} :: Member)++-- | The unique identifier of the member.+member_id :: Lens.Lens' Member (Prelude.Maybe Prelude.Text)+member_id = Lens.lens (\Member' {id} -> id) (\s@Member' {} a -> s {id = a} :: Member)++-- | The Amazon Resource Name (ARN) of the customer managed key in Key+-- Management Service (KMS) that the member uses for encryption at rest. If+-- the value of this parameter is @\"AWS Owned KMS Key\"@, the member uses+-- an Amazon Web Services owned KMS key for encryption. This parameter is+-- inherited by the nodes that this member owns.+--+-- For more information, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/managed-blockchain-encryption-at-rest.html Encryption at Rest>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+member_kmsKeyArn :: Lens.Lens' Member (Prelude.Maybe Prelude.Text)+member_kmsKeyArn = Lens.lens (\Member' {kmsKeyArn} -> kmsKeyArn) (\s@Member' {} a -> s {kmsKeyArn = a} :: Member)++-- | Configuration properties for logging events associated with a member.+member_logPublishingConfiguration :: Lens.Lens' Member (Prelude.Maybe MemberLogPublishingConfiguration)+member_logPublishingConfiguration = Lens.lens (\Member' {logPublishingConfiguration} -> logPublishingConfiguration) (\s@Member' {} a -> s {logPublishingConfiguration = a} :: Member)++-- | The name of the member.+member_name :: Lens.Lens' Member (Prelude.Maybe Prelude.Text)+member_name = Lens.lens (\Member' {name} -> name) (\s@Member' {} a -> s {name = a} :: Member)++-- | The unique identifier of the network to which the member belongs.+member_networkId :: Lens.Lens' Member (Prelude.Maybe Prelude.Text)+member_networkId = Lens.lens (\Member' {networkId} -> networkId) (\s@Member' {} a -> s {networkId = a} :: Member)++-- | The status of a member.+--+-- -   @CREATING@ - The Amazon Web Services account is in the process of+--     creating a member.+--+-- -   @AVAILABLE@ - The member has been created and can participate in the+--     network.+--+-- -   @CREATE_FAILED@ - The Amazon Web Services account attempted to+--     create a member and creation failed.+--+-- -   @UPDATING@ - The member is in the process of being updated.+--+-- -   @DELETING@ - The member and all associated resources are in the+--     process of being deleted. Either the Amazon Web Services account+--     that owns the member deleted it, or the member is being deleted as+--     the result of an @APPROVED@ @PROPOSAL@ to remove the member.+--+-- -   @DELETED@ - The member can no longer participate on the network and+--     all associated resources are deleted. Either the Amazon Web Services+--     account that owns the member deleted it, or the member is being+--     deleted as the result of an @APPROVED@ @PROPOSAL@ to remove the+--     member.+--+-- -   @INACCESSIBLE_ENCRYPTION_KEY@ - The member is impaired and might not+--     function as expected because it cannot access the specified customer+--     managed key in KMS for encryption at rest. Either the KMS key was+--     disabled or deleted, or the grants on the key were revoked.+--+--     The effect of disabling or deleting a key or of revoking a grant+--     isn\'t immediate. It might take some time for the member resource to+--     discover that the key is inaccessible. When a resource is in this+--     state, we recommend deleting and recreating the resource.+member_status :: Lens.Lens' Member (Prelude.Maybe MemberStatus)+member_status = Lens.lens (\Member' {status} -> status) (\s@Member' {} a -> s {status = a} :: Member)++-- | Tags assigned to the member. Tags consist of a key and optional value.+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+member_tags :: Lens.Lens' Member (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+member_tags = Lens.lens (\Member' {tags} -> tags) (\s@Member' {} a -> s {tags = a} :: Member) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Member where+  parseJSON =+    Data.withObject+      "Member"+      ( \x ->+          Member'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "CreationDate")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "FrameworkAttributes")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "KmsKeyArn")+            Prelude.<*> (x Data..:? "LogPublishingConfiguration")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "NetworkId")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable Member where+  hashWithSalt _salt Member' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` frameworkAttributes+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` logPublishingConfiguration+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` networkId+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` tags++instance Prelude.NFData Member where+  rnf Member' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf frameworkAttributes+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf logPublishingConfiguration+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/ManagedBlockChain/Types/MemberConfiguration.hs view
@@ -0,0 +1,235 @@+{-# 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.ManagedBlockChain.Types.MemberConfiguration+-- 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.ManagedBlockChain.Types.MemberConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.MemberFrameworkConfiguration+import Amazonka.ManagedBlockChain.Types.MemberLogPublishingConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Configuration properties of the member.+--+-- Applies only to Hyperledger Fabric.+--+-- /See:/ 'newMemberConfiguration' smart constructor.+data MemberConfiguration = MemberConfiguration'+  { -- | An optional description of the member.+    description :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the customer managed key in Key+    -- Management Service (KMS) to use for encryption at rest in the member.+    -- This parameter is inherited by any nodes that this member creates. For+    -- more information, see+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/managed-blockchain-encryption-at-rest.html Encryption at Rest>+    -- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+    --+    -- Use one of the following options to specify this parameter:+    --+    -- -   __Undefined or empty string__ - By default, use an KMS key that is+    --     owned and managed by Amazon Web Services on your behalf.+    --+    -- -   __A valid symmetric customer managed KMS key__ - Use the specified+    --     KMS key in your account that you create, own, and manage.+    --+    --     Amazon Managed Blockchain doesn\'t support asymmetric keys. For more+    --     information, see+    --     <https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html Using symmetric and asymmetric keys>+    --     in the /Key Management Service Developer Guide/.+    --+    --     The following is an example of a KMS key ARN:+    --     @arn:aws:kms:us-east-2:111122223333:key\/1234abcd-12ab-34cd-56ef-1234567890ab@+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | Configuration properties for logging events associated with a member of+    -- a Managed Blockchain network.+    logPublishingConfiguration :: Prelude.Maybe MemberLogPublishingConfiguration,+    -- | Tags assigned to the member. Tags consist of a key and optional value.+    -- For more information about tags, see+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+    -- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+    --+    -- When specifying tags during creation, you can specify multiple key-value+    -- pairs in a single request, with an overall maximum of 50 tags added to+    -- each resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the member.+    name :: Prelude.Text,+    -- | Configuration properties of the blockchain framework relevant to the+    -- member.+    frameworkConfiguration :: MemberFrameworkConfiguration+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MemberConfiguration' 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', 'memberConfiguration_description' - An optional description of the member.+--+-- 'kmsKeyArn', 'memberConfiguration_kmsKeyArn' - The Amazon Resource Name (ARN) of the customer managed key in Key+-- Management Service (KMS) to use for encryption at rest in the member.+-- This parameter is inherited by any nodes that this member creates. For+-- more information, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/managed-blockchain-encryption-at-rest.html Encryption at Rest>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+--+-- Use one of the following options to specify this parameter:+--+-- -   __Undefined or empty string__ - By default, use an KMS key that is+--     owned and managed by Amazon Web Services on your behalf.+--+-- -   __A valid symmetric customer managed KMS key__ - Use the specified+--     KMS key in your account that you create, own, and manage.+--+--     Amazon Managed Blockchain doesn\'t support asymmetric keys. For more+--     information, see+--     <https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html Using symmetric and asymmetric keys>+--     in the /Key Management Service Developer Guide/.+--+--     The following is an example of a KMS key ARN:+--     @arn:aws:kms:us-east-2:111122223333:key\/1234abcd-12ab-34cd-56ef-1234567890ab@+--+-- 'logPublishingConfiguration', 'memberConfiguration_logPublishingConfiguration' - Configuration properties for logging events associated with a member of+-- a Managed Blockchain network.+--+-- 'tags', 'memberConfiguration_tags' - Tags assigned to the member. Tags consist of a key and optional value.+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+--+-- When specifying tags during creation, you can specify multiple key-value+-- pairs in a single request, with an overall maximum of 50 tags added to+-- each resource.+--+-- 'name', 'memberConfiguration_name' - The name of the member.+--+-- 'frameworkConfiguration', 'memberConfiguration_frameworkConfiguration' - Configuration properties of the blockchain framework relevant to the+-- member.+newMemberConfiguration ::+  -- | 'name'+  Prelude.Text ->+  -- | 'frameworkConfiguration'+  MemberFrameworkConfiguration ->+  MemberConfiguration+newMemberConfiguration+  pName_+  pFrameworkConfiguration_ =+    MemberConfiguration'+      { description = Prelude.Nothing,+        kmsKeyArn = Prelude.Nothing,+        logPublishingConfiguration = Prelude.Nothing,+        tags = Prelude.Nothing,+        name = pName_,+        frameworkConfiguration = pFrameworkConfiguration_+      }++-- | An optional description of the member.+memberConfiguration_description :: Lens.Lens' MemberConfiguration (Prelude.Maybe Prelude.Text)+memberConfiguration_description = Lens.lens (\MemberConfiguration' {description} -> description) (\s@MemberConfiguration' {} a -> s {description = a} :: MemberConfiguration)++-- | The Amazon Resource Name (ARN) of the customer managed key in Key+-- Management Service (KMS) to use for encryption at rest in the member.+-- This parameter is inherited by any nodes that this member creates. For+-- more information, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/managed-blockchain-encryption-at-rest.html Encryption at Rest>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+--+-- Use one of the following options to specify this parameter:+--+-- -   __Undefined or empty string__ - By default, use an KMS key that is+--     owned and managed by Amazon Web Services on your behalf.+--+-- -   __A valid symmetric customer managed KMS key__ - Use the specified+--     KMS key in your account that you create, own, and manage.+--+--     Amazon Managed Blockchain doesn\'t support asymmetric keys. For more+--     information, see+--     <https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html Using symmetric and asymmetric keys>+--     in the /Key Management Service Developer Guide/.+--+--     The following is an example of a KMS key ARN:+--     @arn:aws:kms:us-east-2:111122223333:key\/1234abcd-12ab-34cd-56ef-1234567890ab@+memberConfiguration_kmsKeyArn :: Lens.Lens' MemberConfiguration (Prelude.Maybe Prelude.Text)+memberConfiguration_kmsKeyArn = Lens.lens (\MemberConfiguration' {kmsKeyArn} -> kmsKeyArn) (\s@MemberConfiguration' {} a -> s {kmsKeyArn = a} :: MemberConfiguration)++-- | Configuration properties for logging events associated with a member of+-- a Managed Blockchain network.+memberConfiguration_logPublishingConfiguration :: Lens.Lens' MemberConfiguration (Prelude.Maybe MemberLogPublishingConfiguration)+memberConfiguration_logPublishingConfiguration = Lens.lens (\MemberConfiguration' {logPublishingConfiguration} -> logPublishingConfiguration) (\s@MemberConfiguration' {} a -> s {logPublishingConfiguration = a} :: MemberConfiguration)++-- | Tags assigned to the member. Tags consist of a key and optional value.+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+--+-- When specifying tags during creation, you can specify multiple key-value+-- pairs in a single request, with an overall maximum of 50 tags added to+-- each resource.+memberConfiguration_tags :: Lens.Lens' MemberConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+memberConfiguration_tags = Lens.lens (\MemberConfiguration' {tags} -> tags) (\s@MemberConfiguration' {} a -> s {tags = a} :: MemberConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The name of the member.+memberConfiguration_name :: Lens.Lens' MemberConfiguration Prelude.Text+memberConfiguration_name = Lens.lens (\MemberConfiguration' {name} -> name) (\s@MemberConfiguration' {} a -> s {name = a} :: MemberConfiguration)++-- | Configuration properties of the blockchain framework relevant to the+-- member.+memberConfiguration_frameworkConfiguration :: Lens.Lens' MemberConfiguration MemberFrameworkConfiguration+memberConfiguration_frameworkConfiguration = Lens.lens (\MemberConfiguration' {frameworkConfiguration} -> frameworkConfiguration) (\s@MemberConfiguration' {} a -> s {frameworkConfiguration = a} :: MemberConfiguration)++instance Prelude.Hashable MemberConfiguration where+  hashWithSalt _salt MemberConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` logPublishingConfiguration+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` frameworkConfiguration++instance Prelude.NFData MemberConfiguration where+  rnf MemberConfiguration' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf logPublishingConfiguration+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf frameworkConfiguration++instance Data.ToJSON MemberConfiguration where+  toJSON MemberConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("KmsKeyArn" Data..=) Prelude.<$> kmsKeyArn,+            ("LogPublishingConfiguration" Data..=)+              Prelude.<$> logPublishingConfiguration,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just+              ( "FrameworkConfiguration"+                  Data..= frameworkConfiguration+              )+          ]+      )
+ gen/Amazonka/ManagedBlockChain/Types/MemberFabricAttributes.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ManagedBlockChain.Types.MemberFabricAttributes+-- 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.ManagedBlockChain.Types.MemberFabricAttributes 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++-- | Attributes of Hyperledger Fabric for a member in a Managed Blockchain+-- network using the Hyperledger Fabric framework.+--+-- /See:/ 'newMemberFabricAttributes' smart constructor.+data MemberFabricAttributes = MemberFabricAttributes'+  { -- | The user name for the initial administrator user for the member.+    adminUsername :: Prelude.Maybe Prelude.Text,+    -- | The endpoint used to access the member\'s certificate authority.+    caEndpoint :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MemberFabricAttributes' 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:+--+-- 'adminUsername', 'memberFabricAttributes_adminUsername' - The user name for the initial administrator user for the member.+--+-- 'caEndpoint', 'memberFabricAttributes_caEndpoint' - The endpoint used to access the member\'s certificate authority.+newMemberFabricAttributes ::+  MemberFabricAttributes+newMemberFabricAttributes =+  MemberFabricAttributes'+    { adminUsername =+        Prelude.Nothing,+      caEndpoint = Prelude.Nothing+    }++-- | The user name for the initial administrator user for the member.+memberFabricAttributes_adminUsername :: Lens.Lens' MemberFabricAttributes (Prelude.Maybe Prelude.Text)+memberFabricAttributes_adminUsername = Lens.lens (\MemberFabricAttributes' {adminUsername} -> adminUsername) (\s@MemberFabricAttributes' {} a -> s {adminUsername = a} :: MemberFabricAttributes)++-- | The endpoint used to access the member\'s certificate authority.+memberFabricAttributes_caEndpoint :: Lens.Lens' MemberFabricAttributes (Prelude.Maybe Prelude.Text)+memberFabricAttributes_caEndpoint = Lens.lens (\MemberFabricAttributes' {caEndpoint} -> caEndpoint) (\s@MemberFabricAttributes' {} a -> s {caEndpoint = a} :: MemberFabricAttributes)++instance Data.FromJSON MemberFabricAttributes where+  parseJSON =+    Data.withObject+      "MemberFabricAttributes"+      ( \x ->+          MemberFabricAttributes'+            Prelude.<$> (x Data..:? "AdminUsername")+            Prelude.<*> (x Data..:? "CaEndpoint")+      )++instance Prelude.Hashable MemberFabricAttributes where+  hashWithSalt _salt MemberFabricAttributes' {..} =+    _salt+      `Prelude.hashWithSalt` adminUsername+      `Prelude.hashWithSalt` caEndpoint++instance Prelude.NFData MemberFabricAttributes where+  rnf MemberFabricAttributes' {..} =+    Prelude.rnf adminUsername+      `Prelude.seq` Prelude.rnf caEndpoint
+ gen/Amazonka/ManagedBlockChain/Types/MemberFabricConfiguration.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.ManagedBlockChain.Types.MemberFabricConfiguration+-- 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.ManagedBlockChain.Types.MemberFabricConfiguration 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++-- | Configuration properties for Hyperledger Fabric for a member in a+-- Managed Blockchain network using the Hyperledger Fabric framework.+--+-- /See:/ 'newMemberFabricConfiguration' smart constructor.+data MemberFabricConfiguration = MemberFabricConfiguration'+  { -- | The user name for the member\'s initial administrative user.+    adminUsername :: Prelude.Text,+    -- | The password for the member\'s initial administrative user. The+    -- @AdminPassword@ must be at least eight characters long and no more than+    -- 32 characters. It must contain at least one uppercase letter, one+    -- lowercase letter, and one digit. It cannot have a single quotation mark+    -- (‘), a double quotation marks (“), a forward slash(\/), a backward+    -- slash(\\), \@, or a space.+    adminPassword :: Data.Sensitive Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MemberFabricConfiguration' 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:+--+-- 'adminUsername', 'memberFabricConfiguration_adminUsername' - The user name for the member\'s initial administrative user.+--+-- 'adminPassword', 'memberFabricConfiguration_adminPassword' - The password for the member\'s initial administrative user. The+-- @AdminPassword@ must be at least eight characters long and no more than+-- 32 characters. It must contain at least one uppercase letter, one+-- lowercase letter, and one digit. It cannot have a single quotation mark+-- (‘), a double quotation marks (“), a forward slash(\/), a backward+-- slash(\\), \@, or a space.+newMemberFabricConfiguration ::+  -- | 'adminUsername'+  Prelude.Text ->+  -- | 'adminPassword'+  Prelude.Text ->+  MemberFabricConfiguration+newMemberFabricConfiguration+  pAdminUsername_+  pAdminPassword_ =+    MemberFabricConfiguration'+      { adminUsername =+          pAdminUsername_,+        adminPassword =+          Data._Sensitive Lens.# pAdminPassword_+      }++-- | The user name for the member\'s initial administrative user.+memberFabricConfiguration_adminUsername :: Lens.Lens' MemberFabricConfiguration Prelude.Text+memberFabricConfiguration_adminUsername = Lens.lens (\MemberFabricConfiguration' {adminUsername} -> adminUsername) (\s@MemberFabricConfiguration' {} a -> s {adminUsername = a} :: MemberFabricConfiguration)++-- | The password for the member\'s initial administrative user. The+-- @AdminPassword@ must be at least eight characters long and no more than+-- 32 characters. It must contain at least one uppercase letter, one+-- lowercase letter, and one digit. It cannot have a single quotation mark+-- (‘), a double quotation marks (“), a forward slash(\/), a backward+-- slash(\\), \@, or a space.+memberFabricConfiguration_adminPassword :: Lens.Lens' MemberFabricConfiguration Prelude.Text+memberFabricConfiguration_adminPassword = Lens.lens (\MemberFabricConfiguration' {adminPassword} -> adminPassword) (\s@MemberFabricConfiguration' {} a -> s {adminPassword = a} :: MemberFabricConfiguration) Prelude.. Data._Sensitive++instance Prelude.Hashable MemberFabricConfiguration where+  hashWithSalt _salt MemberFabricConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` adminUsername+      `Prelude.hashWithSalt` adminPassword++instance Prelude.NFData MemberFabricConfiguration where+  rnf MemberFabricConfiguration' {..} =+    Prelude.rnf adminUsername+      `Prelude.seq` Prelude.rnf adminPassword++instance Data.ToJSON MemberFabricConfiguration where+  toJSON MemberFabricConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("AdminUsername" Data..= adminUsername),+            Prelude.Just+              ("AdminPassword" Data..= adminPassword)+          ]+      )
+ gen/Amazonka/ManagedBlockChain/Types/MemberFabricLogPublishingConfiguration.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ManagedBlockChain.Types.MemberFabricLogPublishingConfiguration+-- 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.ManagedBlockChain.Types.MemberFabricLogPublishingConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.LogConfigurations+import qualified Amazonka.Prelude as Prelude++-- | Configuration properties for logging events associated with a member of+-- a Managed Blockchain network using the Hyperledger Fabric framework.+--+-- /See:/ 'newMemberFabricLogPublishingConfiguration' smart constructor.+data MemberFabricLogPublishingConfiguration = MemberFabricLogPublishingConfiguration'+  { -- | Configuration properties for logging events associated with a member\'s+    -- Certificate Authority (CA). CA logs help you determine when a member in+    -- your account joins the network, or when new peers register with a member+    -- CA.+    caLogs :: Prelude.Maybe LogConfigurations+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MemberFabricLogPublishingConfiguration' 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:+--+-- 'caLogs', 'memberFabricLogPublishingConfiguration_caLogs' - Configuration properties for logging events associated with a member\'s+-- Certificate Authority (CA). CA logs help you determine when a member in+-- your account joins the network, or when new peers register with a member+-- CA.+newMemberFabricLogPublishingConfiguration ::+  MemberFabricLogPublishingConfiguration+newMemberFabricLogPublishingConfiguration =+  MemberFabricLogPublishingConfiguration'+    { caLogs =+        Prelude.Nothing+    }++-- | Configuration properties for logging events associated with a member\'s+-- Certificate Authority (CA). CA logs help you determine when a member in+-- your account joins the network, or when new peers register with a member+-- CA.+memberFabricLogPublishingConfiguration_caLogs :: Lens.Lens' MemberFabricLogPublishingConfiguration (Prelude.Maybe LogConfigurations)+memberFabricLogPublishingConfiguration_caLogs = Lens.lens (\MemberFabricLogPublishingConfiguration' {caLogs} -> caLogs) (\s@MemberFabricLogPublishingConfiguration' {} a -> s {caLogs = a} :: MemberFabricLogPublishingConfiguration)++instance+  Data.FromJSON+    MemberFabricLogPublishingConfiguration+  where+  parseJSON =+    Data.withObject+      "MemberFabricLogPublishingConfiguration"+      ( \x ->+          MemberFabricLogPublishingConfiguration'+            Prelude.<$> (x Data..:? "CaLogs")+      )++instance+  Prelude.Hashable+    MemberFabricLogPublishingConfiguration+  where+  hashWithSalt+    _salt+    MemberFabricLogPublishingConfiguration' {..} =+      _salt `Prelude.hashWithSalt` caLogs++instance+  Prelude.NFData+    MemberFabricLogPublishingConfiguration+  where+  rnf MemberFabricLogPublishingConfiguration' {..} =+    Prelude.rnf caLogs++instance+  Data.ToJSON+    MemberFabricLogPublishingConfiguration+  where+  toJSON MemberFabricLogPublishingConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [("CaLogs" Data..=) Prelude.<$> caLogs]+      )
+ gen/Amazonka/ManagedBlockChain/Types/MemberFrameworkAttributes.hs view
@@ -0,0 +1,77 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ManagedBlockChain.Types.MemberFrameworkAttributes+-- 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.ManagedBlockChain.Types.MemberFrameworkAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.MemberFabricAttributes+import qualified Amazonka.Prelude as Prelude++-- | Attributes relevant to a member for the blockchain framework that the+-- Managed Blockchain network uses.+--+-- /See:/ 'newMemberFrameworkAttributes' smart constructor.+data MemberFrameworkAttributes = MemberFrameworkAttributes'+  { -- | Attributes of Hyperledger Fabric relevant to a member on a Managed+    -- Blockchain network that uses Hyperledger Fabric.+    fabric :: Prelude.Maybe MemberFabricAttributes+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MemberFrameworkAttributes' 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:+--+-- 'fabric', 'memberFrameworkAttributes_fabric' - Attributes of Hyperledger Fabric relevant to a member on a Managed+-- Blockchain network that uses Hyperledger Fabric.+newMemberFrameworkAttributes ::+  MemberFrameworkAttributes+newMemberFrameworkAttributes =+  MemberFrameworkAttributes'+    { fabric =+        Prelude.Nothing+    }++-- | Attributes of Hyperledger Fabric relevant to a member on a Managed+-- Blockchain network that uses Hyperledger Fabric.+memberFrameworkAttributes_fabric :: Lens.Lens' MemberFrameworkAttributes (Prelude.Maybe MemberFabricAttributes)+memberFrameworkAttributes_fabric = Lens.lens (\MemberFrameworkAttributes' {fabric} -> fabric) (\s@MemberFrameworkAttributes' {} a -> s {fabric = a} :: MemberFrameworkAttributes)++instance Data.FromJSON MemberFrameworkAttributes where+  parseJSON =+    Data.withObject+      "MemberFrameworkAttributes"+      ( \x ->+          MemberFrameworkAttributes'+            Prelude.<$> (x Data..:? "Fabric")+      )++instance Prelude.Hashable MemberFrameworkAttributes where+  hashWithSalt _salt MemberFrameworkAttributes' {..} =+    _salt `Prelude.hashWithSalt` fabric++instance Prelude.NFData MemberFrameworkAttributes where+  rnf MemberFrameworkAttributes' {..} =+    Prelude.rnf fabric
+ gen/Amazonka/ManagedBlockChain/Types/MemberFrameworkConfiguration.hs view
@@ -0,0 +1,78 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ManagedBlockChain.Types.MemberFrameworkConfiguration+-- 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.ManagedBlockChain.Types.MemberFrameworkConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.MemberFabricConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Configuration properties relevant to a member for the blockchain+-- framework that the Managed Blockchain network uses.+--+-- /See:/ 'newMemberFrameworkConfiguration' smart constructor.+data MemberFrameworkConfiguration = MemberFrameworkConfiguration'+  { -- | Attributes of Hyperledger Fabric for a member on a Managed Blockchain+    -- network that uses Hyperledger Fabric.+    fabric :: Prelude.Maybe MemberFabricConfiguration+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MemberFrameworkConfiguration' 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:+--+-- 'fabric', 'memberFrameworkConfiguration_fabric' - Attributes of Hyperledger Fabric for a member on a Managed Blockchain+-- network that uses Hyperledger Fabric.+newMemberFrameworkConfiguration ::+  MemberFrameworkConfiguration+newMemberFrameworkConfiguration =+  MemberFrameworkConfiguration'+    { fabric =+        Prelude.Nothing+    }++-- | Attributes of Hyperledger Fabric for a member on a Managed Blockchain+-- network that uses Hyperledger Fabric.+memberFrameworkConfiguration_fabric :: Lens.Lens' MemberFrameworkConfiguration (Prelude.Maybe MemberFabricConfiguration)+memberFrameworkConfiguration_fabric = Lens.lens (\MemberFrameworkConfiguration' {fabric} -> fabric) (\s@MemberFrameworkConfiguration' {} a -> s {fabric = a} :: MemberFrameworkConfiguration)++instance+  Prelude.Hashable+    MemberFrameworkConfiguration+  where+  hashWithSalt _salt MemberFrameworkConfiguration' {..} =+    _salt `Prelude.hashWithSalt` fabric++instance Prelude.NFData MemberFrameworkConfiguration where+  rnf MemberFrameworkConfiguration' {..} =+    Prelude.rnf fabric++instance Data.ToJSON MemberFrameworkConfiguration where+  toJSON MemberFrameworkConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Fabric" Data..=) Prelude.<$> fabric]+      )
+ gen/Amazonka/ManagedBlockChain/Types/MemberLogPublishingConfiguration.hs view
@@ -0,0 +1,95 @@+{-# 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.ManagedBlockChain.Types.MemberLogPublishingConfiguration+-- 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.ManagedBlockChain.Types.MemberLogPublishingConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.MemberFabricLogPublishingConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Configuration properties for logging events associated with a member of+-- a Managed Blockchain network.+--+-- /See:/ 'newMemberLogPublishingConfiguration' smart constructor.+data MemberLogPublishingConfiguration = MemberLogPublishingConfiguration'+  { -- | Configuration properties for logging events associated with a member of+    -- a Managed Blockchain network using the Hyperledger Fabric framework.+    fabric :: Prelude.Maybe MemberFabricLogPublishingConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MemberLogPublishingConfiguration' 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:+--+-- 'fabric', 'memberLogPublishingConfiguration_fabric' - Configuration properties for logging events associated with a member of+-- a Managed Blockchain network using the Hyperledger Fabric framework.+newMemberLogPublishingConfiguration ::+  MemberLogPublishingConfiguration+newMemberLogPublishingConfiguration =+  MemberLogPublishingConfiguration'+    { fabric =+        Prelude.Nothing+    }++-- | Configuration properties for logging events associated with a member of+-- a Managed Blockchain network using the Hyperledger Fabric framework.+memberLogPublishingConfiguration_fabric :: Lens.Lens' MemberLogPublishingConfiguration (Prelude.Maybe MemberFabricLogPublishingConfiguration)+memberLogPublishingConfiguration_fabric = Lens.lens (\MemberLogPublishingConfiguration' {fabric} -> fabric) (\s@MemberLogPublishingConfiguration' {} a -> s {fabric = a} :: MemberLogPublishingConfiguration)++instance+  Data.FromJSON+    MemberLogPublishingConfiguration+  where+  parseJSON =+    Data.withObject+      "MemberLogPublishingConfiguration"+      ( \x ->+          MemberLogPublishingConfiguration'+            Prelude.<$> (x Data..:? "Fabric")+      )++instance+  Prelude.Hashable+    MemberLogPublishingConfiguration+  where+  hashWithSalt+    _salt+    MemberLogPublishingConfiguration' {..} =+      _salt `Prelude.hashWithSalt` fabric++instance+  Prelude.NFData+    MemberLogPublishingConfiguration+  where+  rnf MemberLogPublishingConfiguration' {..} =+    Prelude.rnf fabric++instance Data.ToJSON MemberLogPublishingConfiguration where+  toJSON MemberLogPublishingConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Fabric" Data..=) Prelude.<$> fabric]+      )
+ gen/Amazonka/ManagedBlockChain/Types/MemberStatus.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.ManagedBlockChain.Types.MemberStatus+-- 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.ManagedBlockChain.Types.MemberStatus+  ( MemberStatus+      ( ..,+        MemberStatus_AVAILABLE,+        MemberStatus_CREATE_FAILED,+        MemberStatus_CREATING,+        MemberStatus_DELETED,+        MemberStatus_DELETING,+        MemberStatus_INACCESSIBLE_ENCRYPTION_KEY,+        MemberStatus_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MemberStatus = MemberStatus'+  { fromMemberStatus ::+      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 MemberStatus_AVAILABLE :: MemberStatus+pattern MemberStatus_AVAILABLE = MemberStatus' "AVAILABLE"++pattern MemberStatus_CREATE_FAILED :: MemberStatus+pattern MemberStatus_CREATE_FAILED = MemberStatus' "CREATE_FAILED"++pattern MemberStatus_CREATING :: MemberStatus+pattern MemberStatus_CREATING = MemberStatus' "CREATING"++pattern MemberStatus_DELETED :: MemberStatus+pattern MemberStatus_DELETED = MemberStatus' "DELETED"++pattern MemberStatus_DELETING :: MemberStatus+pattern MemberStatus_DELETING = MemberStatus' "DELETING"++pattern MemberStatus_INACCESSIBLE_ENCRYPTION_KEY :: MemberStatus+pattern MemberStatus_INACCESSIBLE_ENCRYPTION_KEY = MemberStatus' "INACCESSIBLE_ENCRYPTION_KEY"++pattern MemberStatus_UPDATING :: MemberStatus+pattern MemberStatus_UPDATING = MemberStatus' "UPDATING"++{-# COMPLETE+  MemberStatus_AVAILABLE,+  MemberStatus_CREATE_FAILED,+  MemberStatus_CREATING,+  MemberStatus_DELETED,+  MemberStatus_DELETING,+  MemberStatus_INACCESSIBLE_ENCRYPTION_KEY,+  MemberStatus_UPDATING,+  MemberStatus'+  #-}
+ gen/Amazonka/ManagedBlockChain/Types/MemberSummary.hs view
@@ -0,0 +1,258 @@+{-# 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.ManagedBlockChain.Types.MemberSummary+-- 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.ManagedBlockChain.Types.MemberSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.MemberStatus+import qualified Amazonka.Prelude as Prelude++-- | A summary of configuration properties for a member.+--+-- Applies only to Hyperledger Fabric.+--+-- /See:/ 'newMemberSummary' smart constructor.+data MemberSummary = MemberSummary'+  { -- | The Amazon Resource Name (ARN) of the member. For more information about+    -- ARNs and their format, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /Amazon Web Services General Reference/.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the member was created.+    creationDate :: Prelude.Maybe Data.ISO8601,+    -- | An optional description of the member.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the member.+    id :: Prelude.Maybe Prelude.Text,+    -- | An indicator of whether the member is owned by your Amazon Web Services+    -- account or a different Amazon Web Services account.+    isOwned :: Prelude.Maybe Prelude.Bool,+    -- | The name of the member.+    name :: Prelude.Maybe Prelude.Text,+    -- | The status of the member.+    --+    -- -   @CREATING@ - The Amazon Web Services account is in the process of+    --     creating a member.+    --+    -- -   @AVAILABLE@ - The member has been created and can participate in the+    --     network.+    --+    -- -   @CREATE_FAILED@ - The Amazon Web Services account attempted to+    --     create a member and creation failed.+    --+    -- -   @UPDATING@ - The member is in the process of being updated.+    --+    -- -   @DELETING@ - The member and all associated resources are in the+    --     process of being deleted. Either the Amazon Web Services account+    --     that owns the member deleted it, or the member is being deleted as+    --     the result of an @APPROVED@ @PROPOSAL@ to remove the member.+    --+    -- -   @DELETED@ - The member can no longer participate on the network and+    --     all associated resources are deleted. Either the Amazon Web Services+    --     account that owns the member deleted it, or the member is being+    --     deleted as the result of an @APPROVED@ @PROPOSAL@ to remove the+    --     member.+    --+    -- -   @INACCESSIBLE_ENCRYPTION_KEY@ - The member is impaired and might not+    --     function as expected because it cannot access the specified customer+    --     managed key in Key Management Service (KMS) for encryption at rest.+    --     Either the KMS key was disabled or deleted, or the grants on the key+    --     were revoked.+    --+    --     The effect of disabling or deleting a key or of revoking a grant+    --     isn\'t immediate. It might take some time for the member resource to+    --     discover that the key is inaccessible. When a resource is in this+    --     state, we recommend deleting and recreating the resource.+    status :: Prelude.Maybe MemberStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MemberSummary' 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', 'memberSummary_arn' - The Amazon Resource Name (ARN) of the member. For more information about+-- ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+--+-- 'creationDate', 'memberSummary_creationDate' - The date and time that the member was created.+--+-- 'description', 'memberSummary_description' - An optional description of the member.+--+-- 'id', 'memberSummary_id' - The unique identifier of the member.+--+-- 'isOwned', 'memberSummary_isOwned' - An indicator of whether the member is owned by your Amazon Web Services+-- account or a different Amazon Web Services account.+--+-- 'name', 'memberSummary_name' - The name of the member.+--+-- 'status', 'memberSummary_status' - The status of the member.+--+-- -   @CREATING@ - The Amazon Web Services account is in the process of+--     creating a member.+--+-- -   @AVAILABLE@ - The member has been created and can participate in the+--     network.+--+-- -   @CREATE_FAILED@ - The Amazon Web Services account attempted to+--     create a member and creation failed.+--+-- -   @UPDATING@ - The member is in the process of being updated.+--+-- -   @DELETING@ - The member and all associated resources are in the+--     process of being deleted. Either the Amazon Web Services account+--     that owns the member deleted it, or the member is being deleted as+--     the result of an @APPROVED@ @PROPOSAL@ to remove the member.+--+-- -   @DELETED@ - The member can no longer participate on the network and+--     all associated resources are deleted. Either the Amazon Web Services+--     account that owns the member deleted it, or the member is being+--     deleted as the result of an @APPROVED@ @PROPOSAL@ to remove the+--     member.+--+-- -   @INACCESSIBLE_ENCRYPTION_KEY@ - The member is impaired and might not+--     function as expected because it cannot access the specified customer+--     managed key in Key Management Service (KMS) for encryption at rest.+--     Either the KMS key was disabled or deleted, or the grants on the key+--     were revoked.+--+--     The effect of disabling or deleting a key or of revoking a grant+--     isn\'t immediate. It might take some time for the member resource to+--     discover that the key is inaccessible. When a resource is in this+--     state, we recommend deleting and recreating the resource.+newMemberSummary ::+  MemberSummary+newMemberSummary =+  MemberSummary'+    { arn = Prelude.Nothing,+      creationDate = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      isOwned = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the member. For more information about+-- ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+memberSummary_arn :: Lens.Lens' MemberSummary (Prelude.Maybe Prelude.Text)+memberSummary_arn = Lens.lens (\MemberSummary' {arn} -> arn) (\s@MemberSummary' {} a -> s {arn = a} :: MemberSummary)++-- | The date and time that the member was created.+memberSummary_creationDate :: Lens.Lens' MemberSummary (Prelude.Maybe Prelude.UTCTime)+memberSummary_creationDate = Lens.lens (\MemberSummary' {creationDate} -> creationDate) (\s@MemberSummary' {} a -> s {creationDate = a} :: MemberSummary) Prelude.. Lens.mapping Data._Time++-- | An optional description of the member.+memberSummary_description :: Lens.Lens' MemberSummary (Prelude.Maybe Prelude.Text)+memberSummary_description = Lens.lens (\MemberSummary' {description} -> description) (\s@MemberSummary' {} a -> s {description = a} :: MemberSummary)++-- | The unique identifier of the member.+memberSummary_id :: Lens.Lens' MemberSummary (Prelude.Maybe Prelude.Text)+memberSummary_id = Lens.lens (\MemberSummary' {id} -> id) (\s@MemberSummary' {} a -> s {id = a} :: MemberSummary)++-- | An indicator of whether the member is owned by your Amazon Web Services+-- account or a different Amazon Web Services account.+memberSummary_isOwned :: Lens.Lens' MemberSummary (Prelude.Maybe Prelude.Bool)+memberSummary_isOwned = Lens.lens (\MemberSummary' {isOwned} -> isOwned) (\s@MemberSummary' {} a -> s {isOwned = a} :: MemberSummary)++-- | The name of the member.+memberSummary_name :: Lens.Lens' MemberSummary (Prelude.Maybe Prelude.Text)+memberSummary_name = Lens.lens (\MemberSummary' {name} -> name) (\s@MemberSummary' {} a -> s {name = a} :: MemberSummary)++-- | The status of the member.+--+-- -   @CREATING@ - The Amazon Web Services account is in the process of+--     creating a member.+--+-- -   @AVAILABLE@ - The member has been created and can participate in the+--     network.+--+-- -   @CREATE_FAILED@ - The Amazon Web Services account attempted to+--     create a member and creation failed.+--+-- -   @UPDATING@ - The member is in the process of being updated.+--+-- -   @DELETING@ - The member and all associated resources are in the+--     process of being deleted. Either the Amazon Web Services account+--     that owns the member deleted it, or the member is being deleted as+--     the result of an @APPROVED@ @PROPOSAL@ to remove the member.+--+-- -   @DELETED@ - The member can no longer participate on the network and+--     all associated resources are deleted. Either the Amazon Web Services+--     account that owns the member deleted it, or the member is being+--     deleted as the result of an @APPROVED@ @PROPOSAL@ to remove the+--     member.+--+-- -   @INACCESSIBLE_ENCRYPTION_KEY@ - The member is impaired and might not+--     function as expected because it cannot access the specified customer+--     managed key in Key Management Service (KMS) for encryption at rest.+--     Either the KMS key was disabled or deleted, or the grants on the key+--     were revoked.+--+--     The effect of disabling or deleting a key or of revoking a grant+--     isn\'t immediate. It might take some time for the member resource to+--     discover that the key is inaccessible. When a resource is in this+--     state, we recommend deleting and recreating the resource.+memberSummary_status :: Lens.Lens' MemberSummary (Prelude.Maybe MemberStatus)+memberSummary_status = Lens.lens (\MemberSummary' {status} -> status) (\s@MemberSummary' {} a -> s {status = a} :: MemberSummary)++instance Data.FromJSON MemberSummary where+  parseJSON =+    Data.withObject+      "MemberSummary"+      ( \x ->+          MemberSummary'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "CreationDate")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "IsOwned")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Status")+      )++instance Prelude.Hashable MemberSummary where+  hashWithSalt _salt MemberSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` isOwned+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData MemberSummary where+  rnf MemberSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf isOwned+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/ManagedBlockChain/Types/Network.hs view
@@ -0,0 +1,244 @@+{-# 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.ManagedBlockChain.Types.Network+-- 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.ManagedBlockChain.Types.Network where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.Framework+import Amazonka.ManagedBlockChain.Types.NetworkFrameworkAttributes+import Amazonka.ManagedBlockChain.Types.NetworkStatus+import Amazonka.ManagedBlockChain.Types.VotingPolicy+import qualified Amazonka.Prelude as Prelude++-- | Network configuration properties.+--+-- /See:/ 'newNetwork' smart constructor.+data Network = Network'+  { -- | The Amazon Resource Name (ARN) of the network. For more information+    -- about ARNs and their format, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /Amazon Web Services General Reference/.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the network was created.+    creationDate :: Prelude.Maybe Data.ISO8601,+    -- | Attributes of the blockchain framework for the network.+    description :: Prelude.Maybe Prelude.Text,+    -- | The blockchain framework that the network uses.+    framework :: Prelude.Maybe Framework,+    -- | Attributes of the blockchain framework that the network uses.+    frameworkAttributes :: Prelude.Maybe NetworkFrameworkAttributes,+    -- | The version of the blockchain framework that the network uses.+    frameworkVersion :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the network.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the network.+    name :: Prelude.Maybe Prelude.Text,+    -- | The current status of the network.+    status :: Prelude.Maybe NetworkStatus,+    -- | Tags assigned to the network. Each tag consists of a key and optional+    -- value.+    --+    -- For more information about tags, see+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+    -- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+    -- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The voting rules for the network to decide if a proposal is accepted.+    votingPolicy :: Prelude.Maybe VotingPolicy,+    -- | The VPC endpoint service name of the VPC endpoint service of the+    -- network. Members use the VPC endpoint service name to create a VPC+    -- endpoint to access network resources.+    vpcEndpointServiceName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Network' 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', 'network_arn' - The Amazon Resource Name (ARN) of the network. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+--+-- 'creationDate', 'network_creationDate' - The date and time that the network was created.+--+-- 'description', 'network_description' - Attributes of the blockchain framework for the network.+--+-- 'framework', 'network_framework' - The blockchain framework that the network uses.+--+-- 'frameworkAttributes', 'network_frameworkAttributes' - Attributes of the blockchain framework that the network uses.+--+-- 'frameworkVersion', 'network_frameworkVersion' - The version of the blockchain framework that the network uses.+--+-- 'id', 'network_id' - The unique identifier of the network.+--+-- 'name', 'network_name' - The name of the network.+--+-- 'status', 'network_status' - The current status of the network.+--+-- 'tags', 'network_tags' - Tags assigned to the network. Each tag consists of a key and optional+-- value.+--+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+--+-- 'votingPolicy', 'network_votingPolicy' - The voting rules for the network to decide if a proposal is accepted.+--+-- 'vpcEndpointServiceName', 'network_vpcEndpointServiceName' - The VPC endpoint service name of the VPC endpoint service of the+-- network. Members use the VPC endpoint service name to create a VPC+-- endpoint to access network resources.+newNetwork ::+  Network+newNetwork =+  Network'+    { arn = Prelude.Nothing,+      creationDate = Prelude.Nothing,+      description = Prelude.Nothing,+      framework = Prelude.Nothing,+      frameworkAttributes = Prelude.Nothing,+      frameworkVersion = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing,+      votingPolicy = Prelude.Nothing,+      vpcEndpointServiceName = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the network. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+network_arn :: Lens.Lens' Network (Prelude.Maybe Prelude.Text)+network_arn = Lens.lens (\Network' {arn} -> arn) (\s@Network' {} a -> s {arn = a} :: Network)++-- | The date and time that the network was created.+network_creationDate :: Lens.Lens' Network (Prelude.Maybe Prelude.UTCTime)+network_creationDate = Lens.lens (\Network' {creationDate} -> creationDate) (\s@Network' {} a -> s {creationDate = a} :: Network) Prelude.. Lens.mapping Data._Time++-- | Attributes of the blockchain framework for the network.+network_description :: Lens.Lens' Network (Prelude.Maybe Prelude.Text)+network_description = Lens.lens (\Network' {description} -> description) (\s@Network' {} a -> s {description = a} :: Network)++-- | The blockchain framework that the network uses.+network_framework :: Lens.Lens' Network (Prelude.Maybe Framework)+network_framework = Lens.lens (\Network' {framework} -> framework) (\s@Network' {} a -> s {framework = a} :: Network)++-- | Attributes of the blockchain framework that the network uses.+network_frameworkAttributes :: Lens.Lens' Network (Prelude.Maybe NetworkFrameworkAttributes)+network_frameworkAttributes = Lens.lens (\Network' {frameworkAttributes} -> frameworkAttributes) (\s@Network' {} a -> s {frameworkAttributes = a} :: Network)++-- | The version of the blockchain framework that the network uses.+network_frameworkVersion :: Lens.Lens' Network (Prelude.Maybe Prelude.Text)+network_frameworkVersion = Lens.lens (\Network' {frameworkVersion} -> frameworkVersion) (\s@Network' {} a -> s {frameworkVersion = a} :: Network)++-- | The unique identifier of the network.+network_id :: Lens.Lens' Network (Prelude.Maybe Prelude.Text)+network_id = Lens.lens (\Network' {id} -> id) (\s@Network' {} a -> s {id = a} :: Network)++-- | The name of the network.+network_name :: Lens.Lens' Network (Prelude.Maybe Prelude.Text)+network_name = Lens.lens (\Network' {name} -> name) (\s@Network' {} a -> s {name = a} :: Network)++-- | The current status of the network.+network_status :: Lens.Lens' Network (Prelude.Maybe NetworkStatus)+network_status = Lens.lens (\Network' {status} -> status) (\s@Network' {} a -> s {status = a} :: Network)++-- | Tags assigned to the network. Each tag consists of a key and optional+-- value.+--+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+network_tags :: Lens.Lens' Network (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+network_tags = Lens.lens (\Network' {tags} -> tags) (\s@Network' {} a -> s {tags = a} :: Network) Prelude.. Lens.mapping Lens.coerced++-- | The voting rules for the network to decide if a proposal is accepted.+network_votingPolicy :: Lens.Lens' Network (Prelude.Maybe VotingPolicy)+network_votingPolicy = Lens.lens (\Network' {votingPolicy} -> votingPolicy) (\s@Network' {} a -> s {votingPolicy = a} :: Network)++-- | The VPC endpoint service name of the VPC endpoint service of the+-- network. Members use the VPC endpoint service name to create a VPC+-- endpoint to access network resources.+network_vpcEndpointServiceName :: Lens.Lens' Network (Prelude.Maybe Prelude.Text)+network_vpcEndpointServiceName = Lens.lens (\Network' {vpcEndpointServiceName} -> vpcEndpointServiceName) (\s@Network' {} a -> s {vpcEndpointServiceName = a} :: Network)++instance Data.FromJSON Network where+  parseJSON =+    Data.withObject+      "Network"+      ( \x ->+          Network'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "CreationDate")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "Framework")+            Prelude.<*> (x Data..:? "FrameworkAttributes")+            Prelude.<*> (x Data..:? "FrameworkVersion")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "VotingPolicy")+            Prelude.<*> (x Data..:? "VpcEndpointServiceName")+      )++instance Prelude.Hashable Network where+  hashWithSalt _salt Network' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` framework+      `Prelude.hashWithSalt` frameworkAttributes+      `Prelude.hashWithSalt` frameworkVersion+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` votingPolicy+      `Prelude.hashWithSalt` vpcEndpointServiceName++instance Prelude.NFData Network where+  rnf Network' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf framework+      `Prelude.seq` Prelude.rnf frameworkAttributes+      `Prelude.seq` Prelude.rnf frameworkVersion+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf votingPolicy+      `Prelude.seq` Prelude.rnf vpcEndpointServiceName
+ gen/Amazonka/ManagedBlockChain/Types/NetworkEthereumAttributes.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ManagedBlockChain.Types.NetworkEthereumAttributes+-- 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.ManagedBlockChain.Types.NetworkEthereumAttributes 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++-- | Attributes of Ethereum for a network.+--+-- /See:/ 'newNetworkEthereumAttributes' smart constructor.+data NetworkEthereumAttributes = NetworkEthereumAttributes'+  { -- | The Ethereum @CHAIN_ID@ associated with the Ethereum network. Chain IDs+    -- are as follows:+    --+    -- -   mainnet = @1@+    --+    -- -   goerli = @5@+    --+    -- -   rinkeby = @4@+    --+    -- -   ropsten = @3@+    chainId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NetworkEthereumAttributes' 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:+--+-- 'chainId', 'networkEthereumAttributes_chainId' - The Ethereum @CHAIN_ID@ associated with the Ethereum network. Chain IDs+-- are as follows:+--+-- -   mainnet = @1@+--+-- -   goerli = @5@+--+-- -   rinkeby = @4@+--+-- -   ropsten = @3@+newNetworkEthereumAttributes ::+  NetworkEthereumAttributes+newNetworkEthereumAttributes =+  NetworkEthereumAttributes'+    { chainId =+        Prelude.Nothing+    }++-- | The Ethereum @CHAIN_ID@ associated with the Ethereum network. Chain IDs+-- are as follows:+--+-- -   mainnet = @1@+--+-- -   goerli = @5@+--+-- -   rinkeby = @4@+--+-- -   ropsten = @3@+networkEthereumAttributes_chainId :: Lens.Lens' NetworkEthereumAttributes (Prelude.Maybe Prelude.Text)+networkEthereumAttributes_chainId = Lens.lens (\NetworkEthereumAttributes' {chainId} -> chainId) (\s@NetworkEthereumAttributes' {} a -> s {chainId = a} :: NetworkEthereumAttributes)++instance Data.FromJSON NetworkEthereumAttributes where+  parseJSON =+    Data.withObject+      "NetworkEthereumAttributes"+      ( \x ->+          NetworkEthereumAttributes'+            Prelude.<$> (x Data..:? "ChainId")+      )++instance Prelude.Hashable NetworkEthereumAttributes where+  hashWithSalt _salt NetworkEthereumAttributes' {..} =+    _salt `Prelude.hashWithSalt` chainId++instance Prelude.NFData NetworkEthereumAttributes where+  rnf NetworkEthereumAttributes' {..} =+    Prelude.rnf chainId
+ gen/Amazonka/ManagedBlockChain/Types/NetworkFabricAttributes.hs view
@@ -0,0 +1,91 @@+{-# 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.ManagedBlockChain.Types.NetworkFabricAttributes+-- 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.ManagedBlockChain.Types.NetworkFabricAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.Edition+import qualified Amazonka.Prelude as Prelude++-- | Attributes of Hyperledger Fabric for a network.+--+-- /See:/ 'newNetworkFabricAttributes' smart constructor.+data NetworkFabricAttributes = NetworkFabricAttributes'+  { -- | The edition of Amazon Managed Blockchain that Hyperledger Fabric uses.+    -- For more information, see+    -- <http://aws.amazon.com/managed-blockchain/pricing/ Amazon Managed Blockchain Pricing>.+    edition :: Prelude.Maybe Edition,+    -- | The endpoint of the ordering service for the network.+    orderingServiceEndpoint :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NetworkFabricAttributes' 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:+--+-- 'edition', 'networkFabricAttributes_edition' - The edition of Amazon Managed Blockchain that Hyperledger Fabric uses.+-- For more information, see+-- <http://aws.amazon.com/managed-blockchain/pricing/ Amazon Managed Blockchain Pricing>.+--+-- 'orderingServiceEndpoint', 'networkFabricAttributes_orderingServiceEndpoint' - The endpoint of the ordering service for the network.+newNetworkFabricAttributes ::+  NetworkFabricAttributes+newNetworkFabricAttributes =+  NetworkFabricAttributes'+    { edition = Prelude.Nothing,+      orderingServiceEndpoint = Prelude.Nothing+    }++-- | The edition of Amazon Managed Blockchain that Hyperledger Fabric uses.+-- For more information, see+-- <http://aws.amazon.com/managed-blockchain/pricing/ Amazon Managed Blockchain Pricing>.+networkFabricAttributes_edition :: Lens.Lens' NetworkFabricAttributes (Prelude.Maybe Edition)+networkFabricAttributes_edition = Lens.lens (\NetworkFabricAttributes' {edition} -> edition) (\s@NetworkFabricAttributes' {} a -> s {edition = a} :: NetworkFabricAttributes)++-- | The endpoint of the ordering service for the network.+networkFabricAttributes_orderingServiceEndpoint :: Lens.Lens' NetworkFabricAttributes (Prelude.Maybe Prelude.Text)+networkFabricAttributes_orderingServiceEndpoint = Lens.lens (\NetworkFabricAttributes' {orderingServiceEndpoint} -> orderingServiceEndpoint) (\s@NetworkFabricAttributes' {} a -> s {orderingServiceEndpoint = a} :: NetworkFabricAttributes)++instance Data.FromJSON NetworkFabricAttributes where+  parseJSON =+    Data.withObject+      "NetworkFabricAttributes"+      ( \x ->+          NetworkFabricAttributes'+            Prelude.<$> (x Data..:? "Edition")+            Prelude.<*> (x Data..:? "OrderingServiceEndpoint")+      )++instance Prelude.Hashable NetworkFabricAttributes where+  hashWithSalt _salt NetworkFabricAttributes' {..} =+    _salt+      `Prelude.hashWithSalt` edition+      `Prelude.hashWithSalt` orderingServiceEndpoint++instance Prelude.NFData NetworkFabricAttributes where+  rnf NetworkFabricAttributes' {..} =+    Prelude.rnf edition+      `Prelude.seq` Prelude.rnf orderingServiceEndpoint
+ gen/Amazonka/ManagedBlockChain/Types/NetworkFabricConfiguration.hs view
@@ -0,0 +1,76 @@+{-# 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.ManagedBlockChain.Types.NetworkFabricConfiguration+-- 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.ManagedBlockChain.Types.NetworkFabricConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.Edition+import qualified Amazonka.Prelude as Prelude++-- | Hyperledger Fabric configuration properties for the network.+--+-- /See:/ 'newNetworkFabricConfiguration' smart constructor.+data NetworkFabricConfiguration = NetworkFabricConfiguration'+  { -- | The edition of Amazon Managed Blockchain that the network uses. For more+    -- information, see+    -- <http://aws.amazon.com/managed-blockchain/pricing/ Amazon Managed Blockchain Pricing>.+    edition :: Edition+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NetworkFabricConfiguration' 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:+--+-- 'edition', 'networkFabricConfiguration_edition' - The edition of Amazon Managed Blockchain that the network uses. For more+-- information, see+-- <http://aws.amazon.com/managed-blockchain/pricing/ Amazon Managed Blockchain Pricing>.+newNetworkFabricConfiguration ::+  -- | 'edition'+  Edition ->+  NetworkFabricConfiguration+newNetworkFabricConfiguration pEdition_ =+  NetworkFabricConfiguration' {edition = pEdition_}++-- | The edition of Amazon Managed Blockchain that the network uses. For more+-- information, see+-- <http://aws.amazon.com/managed-blockchain/pricing/ Amazon Managed Blockchain Pricing>.+networkFabricConfiguration_edition :: Lens.Lens' NetworkFabricConfiguration Edition+networkFabricConfiguration_edition = Lens.lens (\NetworkFabricConfiguration' {edition} -> edition) (\s@NetworkFabricConfiguration' {} a -> s {edition = a} :: NetworkFabricConfiguration)++instance Prelude.Hashable NetworkFabricConfiguration where+  hashWithSalt _salt NetworkFabricConfiguration' {..} =+    _salt `Prelude.hashWithSalt` edition++instance Prelude.NFData NetworkFabricConfiguration where+  rnf NetworkFabricConfiguration' {..} =+    Prelude.rnf edition++instance Data.ToJSON NetworkFabricConfiguration where+  toJSON NetworkFabricConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Edition" Data..= edition)]+      )
+ gen/Amazonka/ManagedBlockChain/Types/NetworkFrameworkAttributes.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.ManagedBlockChain.Types.NetworkFrameworkAttributes+-- 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.ManagedBlockChain.Types.NetworkFrameworkAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.NetworkEthereumAttributes+import Amazonka.ManagedBlockChain.Types.NetworkFabricAttributes+import qualified Amazonka.Prelude as Prelude++-- | Attributes relevant to the network for the blockchain framework that the+-- network uses.+--+-- /See:/ 'newNetworkFrameworkAttributes' smart constructor.+data NetworkFrameworkAttributes = NetworkFrameworkAttributes'+  { -- | Attributes of an Ethereum network for Managed Blockchain resources+    -- participating in an Ethereum network.+    ethereum :: Prelude.Maybe NetworkEthereumAttributes,+    -- | Attributes of Hyperledger Fabric for a Managed Blockchain network that+    -- uses Hyperledger Fabric.+    fabric :: Prelude.Maybe NetworkFabricAttributes+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NetworkFrameworkAttributes' 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:+--+-- 'ethereum', 'networkFrameworkAttributes_ethereum' - Attributes of an Ethereum network for Managed Blockchain resources+-- participating in an Ethereum network.+--+-- 'fabric', 'networkFrameworkAttributes_fabric' - Attributes of Hyperledger Fabric for a Managed Blockchain network that+-- uses Hyperledger Fabric.+newNetworkFrameworkAttributes ::+  NetworkFrameworkAttributes+newNetworkFrameworkAttributes =+  NetworkFrameworkAttributes'+    { ethereum =+        Prelude.Nothing,+      fabric = Prelude.Nothing+    }++-- | Attributes of an Ethereum network for Managed Blockchain resources+-- participating in an Ethereum network.+networkFrameworkAttributes_ethereum :: Lens.Lens' NetworkFrameworkAttributes (Prelude.Maybe NetworkEthereumAttributes)+networkFrameworkAttributes_ethereum = Lens.lens (\NetworkFrameworkAttributes' {ethereum} -> ethereum) (\s@NetworkFrameworkAttributes' {} a -> s {ethereum = a} :: NetworkFrameworkAttributes)++-- | Attributes of Hyperledger Fabric for a Managed Blockchain network that+-- uses Hyperledger Fabric.+networkFrameworkAttributes_fabric :: Lens.Lens' NetworkFrameworkAttributes (Prelude.Maybe NetworkFabricAttributes)+networkFrameworkAttributes_fabric = Lens.lens (\NetworkFrameworkAttributes' {fabric} -> fabric) (\s@NetworkFrameworkAttributes' {} a -> s {fabric = a} :: NetworkFrameworkAttributes)++instance Data.FromJSON NetworkFrameworkAttributes where+  parseJSON =+    Data.withObject+      "NetworkFrameworkAttributes"+      ( \x ->+          NetworkFrameworkAttributes'+            Prelude.<$> (x Data..:? "Ethereum")+            Prelude.<*> (x Data..:? "Fabric")+      )++instance Prelude.Hashable NetworkFrameworkAttributes where+  hashWithSalt _salt NetworkFrameworkAttributes' {..} =+    _salt+      `Prelude.hashWithSalt` ethereum+      `Prelude.hashWithSalt` fabric++instance Prelude.NFData NetworkFrameworkAttributes where+  rnf NetworkFrameworkAttributes' {..} =+    Prelude.rnf ethereum+      `Prelude.seq` Prelude.rnf fabric
+ gen/Amazonka/ManagedBlockChain/Types/NetworkFrameworkConfiguration.hs view
@@ -0,0 +1,78 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ManagedBlockChain.Types.NetworkFrameworkConfiguration+-- 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.ManagedBlockChain.Types.NetworkFrameworkConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.NetworkFabricConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Configuration properties relevant to the network for the blockchain+-- framework that the network uses.+--+-- /See:/ 'newNetworkFrameworkConfiguration' smart constructor.+data NetworkFrameworkConfiguration = NetworkFrameworkConfiguration'+  { -- | Hyperledger Fabric configuration properties for a Managed Blockchain+    -- network that uses Hyperledger Fabric.+    fabric :: Prelude.Maybe NetworkFabricConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NetworkFrameworkConfiguration' 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:+--+-- 'fabric', 'networkFrameworkConfiguration_fabric' - Hyperledger Fabric configuration properties for a Managed Blockchain+-- network that uses Hyperledger Fabric.+newNetworkFrameworkConfiguration ::+  NetworkFrameworkConfiguration+newNetworkFrameworkConfiguration =+  NetworkFrameworkConfiguration'+    { fabric =+        Prelude.Nothing+    }++-- | Hyperledger Fabric configuration properties for a Managed Blockchain+-- network that uses Hyperledger Fabric.+networkFrameworkConfiguration_fabric :: Lens.Lens' NetworkFrameworkConfiguration (Prelude.Maybe NetworkFabricConfiguration)+networkFrameworkConfiguration_fabric = Lens.lens (\NetworkFrameworkConfiguration' {fabric} -> fabric) (\s@NetworkFrameworkConfiguration' {} a -> s {fabric = a} :: NetworkFrameworkConfiguration)++instance+  Prelude.Hashable+    NetworkFrameworkConfiguration+  where+  hashWithSalt _salt NetworkFrameworkConfiguration' {..} =+    _salt `Prelude.hashWithSalt` fabric++instance Prelude.NFData NetworkFrameworkConfiguration where+  rnf NetworkFrameworkConfiguration' {..} =+    Prelude.rnf fabric++instance Data.ToJSON NetworkFrameworkConfiguration where+  toJSON NetworkFrameworkConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Fabric" Data..=) Prelude.<$> fabric]+      )
+ gen/Amazonka/ManagedBlockChain/Types/NetworkStatus.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ManagedBlockChain.Types.NetworkStatus+-- 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.ManagedBlockChain.Types.NetworkStatus+  ( NetworkStatus+      ( ..,+        NetworkStatus_AVAILABLE,+        NetworkStatus_CREATE_FAILED,+        NetworkStatus_CREATING,+        NetworkStatus_DELETED,+        NetworkStatus_DELETING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype NetworkStatus = NetworkStatus'+  { fromNetworkStatus ::+      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 NetworkStatus_AVAILABLE :: NetworkStatus+pattern NetworkStatus_AVAILABLE = NetworkStatus' "AVAILABLE"++pattern NetworkStatus_CREATE_FAILED :: NetworkStatus+pattern NetworkStatus_CREATE_FAILED = NetworkStatus' "CREATE_FAILED"++pattern NetworkStatus_CREATING :: NetworkStatus+pattern NetworkStatus_CREATING = NetworkStatus' "CREATING"++pattern NetworkStatus_DELETED :: NetworkStatus+pattern NetworkStatus_DELETED = NetworkStatus' "DELETED"++pattern NetworkStatus_DELETING :: NetworkStatus+pattern NetworkStatus_DELETING = NetworkStatus' "DELETING"++{-# COMPLETE+  NetworkStatus_AVAILABLE,+  NetworkStatus_CREATE_FAILED,+  NetworkStatus_CREATING,+  NetworkStatus_DELETED,+  NetworkStatus_DELETING,+  NetworkStatus'+  #-}
+ gen/Amazonka/ManagedBlockChain/Types/NetworkSummary.hs view
@@ -0,0 +1,167 @@+{-# 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.ManagedBlockChain.Types.NetworkSummary+-- 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.ManagedBlockChain.Types.NetworkSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.Framework+import Amazonka.ManagedBlockChain.Types.NetworkStatus+import qualified Amazonka.Prelude as Prelude++-- | A summary of network configuration properties.+--+-- /See:/ 'newNetworkSummary' smart constructor.+data NetworkSummary = NetworkSummary'+  { -- | The Amazon Resource Name (ARN) of the network. For more information+    -- about ARNs and their format, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /Amazon Web Services General Reference/.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the network was created.+    creationDate :: Prelude.Maybe Data.ISO8601,+    -- | An optional description of the network.+    description :: Prelude.Maybe Prelude.Text,+    -- | The blockchain framework that the network uses.+    framework :: Prelude.Maybe Framework,+    -- | The version of the blockchain framework that the network uses.+    frameworkVersion :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the network.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the network.+    name :: Prelude.Maybe Prelude.Text,+    -- | The current status of the network.+    status :: Prelude.Maybe NetworkStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NetworkSummary' 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', 'networkSummary_arn' - The Amazon Resource Name (ARN) of the network. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+--+-- 'creationDate', 'networkSummary_creationDate' - The date and time that the network was created.+--+-- 'description', 'networkSummary_description' - An optional description of the network.+--+-- 'framework', 'networkSummary_framework' - The blockchain framework that the network uses.+--+-- 'frameworkVersion', 'networkSummary_frameworkVersion' - The version of the blockchain framework that the network uses.+--+-- 'id', 'networkSummary_id' - The unique identifier of the network.+--+-- 'name', 'networkSummary_name' - The name of the network.+--+-- 'status', 'networkSummary_status' - The current status of the network.+newNetworkSummary ::+  NetworkSummary+newNetworkSummary =+  NetworkSummary'+    { arn = Prelude.Nothing,+      creationDate = Prelude.Nothing,+      description = Prelude.Nothing,+      framework = Prelude.Nothing,+      frameworkVersion = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the network. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+networkSummary_arn :: Lens.Lens' NetworkSummary (Prelude.Maybe Prelude.Text)+networkSummary_arn = Lens.lens (\NetworkSummary' {arn} -> arn) (\s@NetworkSummary' {} a -> s {arn = a} :: NetworkSummary)++-- | The date and time that the network was created.+networkSummary_creationDate :: Lens.Lens' NetworkSummary (Prelude.Maybe Prelude.UTCTime)+networkSummary_creationDate = Lens.lens (\NetworkSummary' {creationDate} -> creationDate) (\s@NetworkSummary' {} a -> s {creationDate = a} :: NetworkSummary) Prelude.. Lens.mapping Data._Time++-- | An optional description of the network.+networkSummary_description :: Lens.Lens' NetworkSummary (Prelude.Maybe Prelude.Text)+networkSummary_description = Lens.lens (\NetworkSummary' {description} -> description) (\s@NetworkSummary' {} a -> s {description = a} :: NetworkSummary)++-- | The blockchain framework that the network uses.+networkSummary_framework :: Lens.Lens' NetworkSummary (Prelude.Maybe Framework)+networkSummary_framework = Lens.lens (\NetworkSummary' {framework} -> framework) (\s@NetworkSummary' {} a -> s {framework = a} :: NetworkSummary)++-- | The version of the blockchain framework that the network uses.+networkSummary_frameworkVersion :: Lens.Lens' NetworkSummary (Prelude.Maybe Prelude.Text)+networkSummary_frameworkVersion = Lens.lens (\NetworkSummary' {frameworkVersion} -> frameworkVersion) (\s@NetworkSummary' {} a -> s {frameworkVersion = a} :: NetworkSummary)++-- | The unique identifier of the network.+networkSummary_id :: Lens.Lens' NetworkSummary (Prelude.Maybe Prelude.Text)+networkSummary_id = Lens.lens (\NetworkSummary' {id} -> id) (\s@NetworkSummary' {} a -> s {id = a} :: NetworkSummary)++-- | The name of the network.+networkSummary_name :: Lens.Lens' NetworkSummary (Prelude.Maybe Prelude.Text)+networkSummary_name = Lens.lens (\NetworkSummary' {name} -> name) (\s@NetworkSummary' {} a -> s {name = a} :: NetworkSummary)++-- | The current status of the network.+networkSummary_status :: Lens.Lens' NetworkSummary (Prelude.Maybe NetworkStatus)+networkSummary_status = Lens.lens (\NetworkSummary' {status} -> status) (\s@NetworkSummary' {} a -> s {status = a} :: NetworkSummary)++instance Data.FromJSON NetworkSummary where+  parseJSON =+    Data.withObject+      "NetworkSummary"+      ( \x ->+          NetworkSummary'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "CreationDate")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "Framework")+            Prelude.<*> (x Data..:? "FrameworkVersion")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Status")+      )++instance Prelude.Hashable NetworkSummary where+  hashWithSalt _salt NetworkSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` framework+      `Prelude.hashWithSalt` frameworkVersion+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData NetworkSummary where+  rnf NetworkSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf framework+      `Prelude.seq` Prelude.rnf frameworkVersion+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/ManagedBlockChain/Types/Node.hs view
@@ -0,0 +1,400 @@+{-# 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.ManagedBlockChain.Types.Node+-- 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.ManagedBlockChain.Types.Node where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.NodeFrameworkAttributes+import Amazonka.ManagedBlockChain.Types.NodeLogPublishingConfiguration+import Amazonka.ManagedBlockChain.Types.NodeStatus+import Amazonka.ManagedBlockChain.Types.StateDBType+import qualified Amazonka.Prelude as Prelude++-- | Configuration properties of a node.+--+-- /See:/ 'newNode' smart constructor.+data Node = Node'+  { -- | The Amazon Resource Name (ARN) of the node. For more information about+    -- ARNs and their format, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /Amazon Web Services General Reference/.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The Availability Zone in which the node exists. Required for Ethereum+    -- nodes.+    availabilityZone :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the node was created.+    creationDate :: Prelude.Maybe Data.ISO8601,+    -- | Attributes of the blockchain framework being used.+    frameworkAttributes :: Prelude.Maybe NodeFrameworkAttributes,+    -- | The unique identifier of the node.+    id :: Prelude.Maybe Prelude.Text,+    -- | The instance type of the node.+    instanceType :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the customer managed key in Key+    -- Management Service (KMS) that the node uses for encryption at rest. If+    -- the value of this parameter is @\"AWS Owned KMS Key\"@, the node uses an+    -- Amazon Web Services owned KMS key for encryption. The node inherits this+    -- parameter from the member that it belongs to.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/managed-blockchain-encryption-at-rest.html Encryption at Rest>+    -- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+    --+    -- Applies only to Hyperledger Fabric.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | Configuration properties for logging events associated with a peer node+    -- on a Hyperledger Fabric network on Managed Blockchain.+    logPublishingConfiguration :: Prelude.Maybe NodeLogPublishingConfiguration,+    -- | The unique identifier of the member to which the node belongs.+    --+    -- Applies only to Hyperledger Fabric.+    memberId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the network that the node is on.+    networkId :: Prelude.Maybe Prelude.Text,+    -- | The state database that the node uses. Values are @LevelDB@ or+    -- @CouchDB@.+    --+    -- Applies only to Hyperledger Fabric.+    stateDB :: Prelude.Maybe StateDBType,+    -- | The status of the node.+    --+    -- -   @CREATING@ - The Amazon Web Services account is in the process of+    --     creating a node.+    --+    -- -   @AVAILABLE@ - The node has been created and can participate in the+    --     network.+    --+    -- -   @UNHEALTHY@ - The node is impaired and might not function as+    --     expected. Amazon Managed Blockchain automatically finds nodes in+    --     this state and tries to recover them. If a node is recoverable, it+    --     returns to @AVAILABLE@. Otherwise, it moves to @FAILED@ status.+    --+    -- -   @CREATE_FAILED@ - The Amazon Web Services account attempted to+    --     create a node and creation failed.+    --+    -- -   @UPDATING@ - The node is in the process of being updated.+    --+    -- -   @DELETING@ - The node is in the process of being deleted.+    --+    -- -   @DELETED@ - The node can no longer participate on the network.+    --+    -- -   @FAILED@ - The node is no longer functional, cannot be recovered,+    --     and must be deleted.+    --+    -- -   @INACCESSIBLE_ENCRYPTION_KEY@ - The node is impaired and might not+    --     function as expected because it cannot access the specified customer+    --     managed key in KMS for encryption at rest. Either the KMS key was+    --     disabled or deleted, or the grants on the key were revoked.+    --+    --     The effect of disabling or deleting a key or of revoking a grant+    --     isn\'t immediate. It might take some time for the node resource to+    --     discover that the key is inaccessible. When a resource is in this+    --     state, we recommend deleting and recreating the resource.+    status :: Prelude.Maybe NodeStatus,+    -- | Tags assigned to the node. Each tag consists of a key and optional+    -- value.+    --+    -- For more information about tags, see+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+    -- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+    -- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Node' 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', 'node_arn' - The Amazon Resource Name (ARN) of the node. For more information about+-- ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+--+-- 'availabilityZone', 'node_availabilityZone' - The Availability Zone in which the node exists. Required for Ethereum+-- nodes.+--+-- 'creationDate', 'node_creationDate' - The date and time that the node was created.+--+-- 'frameworkAttributes', 'node_frameworkAttributes' - Attributes of the blockchain framework being used.+--+-- 'id', 'node_id' - The unique identifier of the node.+--+-- 'instanceType', 'node_instanceType' - The instance type of the node.+--+-- 'kmsKeyArn', 'node_kmsKeyArn' - The Amazon Resource Name (ARN) of the customer managed key in Key+-- Management Service (KMS) that the node uses for encryption at rest. If+-- the value of this parameter is @\"AWS Owned KMS Key\"@, the node uses an+-- Amazon Web Services owned KMS key for encryption. The node inherits this+-- parameter from the member that it belongs to.+--+-- For more information, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/managed-blockchain-encryption-at-rest.html Encryption at Rest>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+--+-- Applies only to Hyperledger Fabric.+--+-- 'logPublishingConfiguration', 'node_logPublishingConfiguration' - Configuration properties for logging events associated with a peer node+-- on a Hyperledger Fabric network on Managed Blockchain.+--+-- 'memberId', 'node_memberId' - The unique identifier of the member to which the node belongs.+--+-- Applies only to Hyperledger Fabric.+--+-- 'networkId', 'node_networkId' - The unique identifier of the network that the node is on.+--+-- 'stateDB', 'node_stateDB' - The state database that the node uses. Values are @LevelDB@ or+-- @CouchDB@.+--+-- Applies only to Hyperledger Fabric.+--+-- 'status', 'node_status' - The status of the node.+--+-- -   @CREATING@ - The Amazon Web Services account is in the process of+--     creating a node.+--+-- -   @AVAILABLE@ - The node has been created and can participate in the+--     network.+--+-- -   @UNHEALTHY@ - The node is impaired and might not function as+--     expected. Amazon Managed Blockchain automatically finds nodes in+--     this state and tries to recover them. If a node is recoverable, it+--     returns to @AVAILABLE@. Otherwise, it moves to @FAILED@ status.+--+-- -   @CREATE_FAILED@ - The Amazon Web Services account attempted to+--     create a node and creation failed.+--+-- -   @UPDATING@ - The node is in the process of being updated.+--+-- -   @DELETING@ - The node is in the process of being deleted.+--+-- -   @DELETED@ - The node can no longer participate on the network.+--+-- -   @FAILED@ - The node is no longer functional, cannot be recovered,+--     and must be deleted.+--+-- -   @INACCESSIBLE_ENCRYPTION_KEY@ - The node is impaired and might not+--     function as expected because it cannot access the specified customer+--     managed key in KMS for encryption at rest. Either the KMS key was+--     disabled or deleted, or the grants on the key were revoked.+--+--     The effect of disabling or deleting a key or of revoking a grant+--     isn\'t immediate. It might take some time for the node resource to+--     discover that the key is inaccessible. When a resource is in this+--     state, we recommend deleting and recreating the resource.+--+-- 'tags', 'node_tags' - Tags assigned to the node. Each tag consists of a key and optional+-- value.+--+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+newNode ::+  Node+newNode =+  Node'+    { arn = Prelude.Nothing,+      availabilityZone = Prelude.Nothing,+      creationDate = Prelude.Nothing,+      frameworkAttributes = Prelude.Nothing,+      id = Prelude.Nothing,+      instanceType = Prelude.Nothing,+      kmsKeyArn = Prelude.Nothing,+      logPublishingConfiguration = Prelude.Nothing,+      memberId = Prelude.Nothing,+      networkId = Prelude.Nothing,+      stateDB = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the node. For more information about+-- ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+node_arn :: Lens.Lens' Node (Prelude.Maybe Prelude.Text)+node_arn = Lens.lens (\Node' {arn} -> arn) (\s@Node' {} a -> s {arn = a} :: Node)++-- | The Availability Zone in which the node exists. Required for Ethereum+-- nodes.+node_availabilityZone :: Lens.Lens' Node (Prelude.Maybe Prelude.Text)+node_availabilityZone = Lens.lens (\Node' {availabilityZone} -> availabilityZone) (\s@Node' {} a -> s {availabilityZone = a} :: Node)++-- | The date and time that the node was created.+node_creationDate :: Lens.Lens' Node (Prelude.Maybe Prelude.UTCTime)+node_creationDate = Lens.lens (\Node' {creationDate} -> creationDate) (\s@Node' {} a -> s {creationDate = a} :: Node) Prelude.. Lens.mapping Data._Time++-- | Attributes of the blockchain framework being used.+node_frameworkAttributes :: Lens.Lens' Node (Prelude.Maybe NodeFrameworkAttributes)+node_frameworkAttributes = Lens.lens (\Node' {frameworkAttributes} -> frameworkAttributes) (\s@Node' {} a -> s {frameworkAttributes = a} :: Node)++-- | The unique identifier of the node.+node_id :: Lens.Lens' Node (Prelude.Maybe Prelude.Text)+node_id = Lens.lens (\Node' {id} -> id) (\s@Node' {} a -> s {id = a} :: Node)++-- | The instance type of the node.+node_instanceType :: Lens.Lens' Node (Prelude.Maybe Prelude.Text)+node_instanceType = Lens.lens (\Node' {instanceType} -> instanceType) (\s@Node' {} a -> s {instanceType = a} :: Node)++-- | The Amazon Resource Name (ARN) of the customer managed key in Key+-- Management Service (KMS) that the node uses for encryption at rest. If+-- the value of this parameter is @\"AWS Owned KMS Key\"@, the node uses an+-- Amazon Web Services owned KMS key for encryption. The node inherits this+-- parameter from the member that it belongs to.+--+-- For more information, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/managed-blockchain-encryption-at-rest.html Encryption at Rest>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+--+-- Applies only to Hyperledger Fabric.+node_kmsKeyArn :: Lens.Lens' Node (Prelude.Maybe Prelude.Text)+node_kmsKeyArn = Lens.lens (\Node' {kmsKeyArn} -> kmsKeyArn) (\s@Node' {} a -> s {kmsKeyArn = a} :: Node)++-- | Configuration properties for logging events associated with a peer node+-- on a Hyperledger Fabric network on Managed Blockchain.+node_logPublishingConfiguration :: Lens.Lens' Node (Prelude.Maybe NodeLogPublishingConfiguration)+node_logPublishingConfiguration = Lens.lens (\Node' {logPublishingConfiguration} -> logPublishingConfiguration) (\s@Node' {} a -> s {logPublishingConfiguration = a} :: Node)++-- | The unique identifier of the member to which the node belongs.+--+-- Applies only to Hyperledger Fabric.+node_memberId :: Lens.Lens' Node (Prelude.Maybe Prelude.Text)+node_memberId = Lens.lens (\Node' {memberId} -> memberId) (\s@Node' {} a -> s {memberId = a} :: Node)++-- | The unique identifier of the network that the node is on.+node_networkId :: Lens.Lens' Node (Prelude.Maybe Prelude.Text)+node_networkId = Lens.lens (\Node' {networkId} -> networkId) (\s@Node' {} a -> s {networkId = a} :: Node)++-- | The state database that the node uses. Values are @LevelDB@ or+-- @CouchDB@.+--+-- Applies only to Hyperledger Fabric.+node_stateDB :: Lens.Lens' Node (Prelude.Maybe StateDBType)+node_stateDB = Lens.lens (\Node' {stateDB} -> stateDB) (\s@Node' {} a -> s {stateDB = a} :: Node)++-- | The status of the node.+--+-- -   @CREATING@ - The Amazon Web Services account is in the process of+--     creating a node.+--+-- -   @AVAILABLE@ - The node has been created and can participate in the+--     network.+--+-- -   @UNHEALTHY@ - The node is impaired and might not function as+--     expected. Amazon Managed Blockchain automatically finds nodes in+--     this state and tries to recover them. If a node is recoverable, it+--     returns to @AVAILABLE@. Otherwise, it moves to @FAILED@ status.+--+-- -   @CREATE_FAILED@ - The Amazon Web Services account attempted to+--     create a node and creation failed.+--+-- -   @UPDATING@ - The node is in the process of being updated.+--+-- -   @DELETING@ - The node is in the process of being deleted.+--+-- -   @DELETED@ - The node can no longer participate on the network.+--+-- -   @FAILED@ - The node is no longer functional, cannot be recovered,+--     and must be deleted.+--+-- -   @INACCESSIBLE_ENCRYPTION_KEY@ - The node is impaired and might not+--     function as expected because it cannot access the specified customer+--     managed key in KMS for encryption at rest. Either the KMS key was+--     disabled or deleted, or the grants on the key were revoked.+--+--     The effect of disabling or deleting a key or of revoking a grant+--     isn\'t immediate. It might take some time for the node resource to+--     discover that the key is inaccessible. When a resource is in this+--     state, we recommend deleting and recreating the resource.+node_status :: Lens.Lens' Node (Prelude.Maybe NodeStatus)+node_status = Lens.lens (\Node' {status} -> status) (\s@Node' {} a -> s {status = a} :: Node)++-- | Tags assigned to the node. Each tag consists of a key and optional+-- value.+--+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+node_tags :: Lens.Lens' Node (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+node_tags = Lens.lens (\Node' {tags} -> tags) (\s@Node' {} a -> s {tags = a} :: Node) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Node where+  parseJSON =+    Data.withObject+      "Node"+      ( \x ->+          Node'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "AvailabilityZone")+            Prelude.<*> (x Data..:? "CreationDate")+            Prelude.<*> (x Data..:? "FrameworkAttributes")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "InstanceType")+            Prelude.<*> (x Data..:? "KmsKeyArn")+            Prelude.<*> (x Data..:? "LogPublishingConfiguration")+            Prelude.<*> (x Data..:? "MemberId")+            Prelude.<*> (x Data..:? "NetworkId")+            Prelude.<*> (x Data..:? "StateDB")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable Node where+  hashWithSalt _salt Node' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` availabilityZone+      `Prelude.hashWithSalt` creationDate+      `Prelude.hashWithSalt` frameworkAttributes+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` instanceType+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` logPublishingConfiguration+      `Prelude.hashWithSalt` memberId+      `Prelude.hashWithSalt` networkId+      `Prelude.hashWithSalt` stateDB+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` tags++instance Prelude.NFData Node where+  rnf Node' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf availabilityZone+      `Prelude.seq` Prelude.rnf creationDate+      `Prelude.seq` Prelude.rnf frameworkAttributes+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf instanceType+      `Prelude.seq` Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf logPublishingConfiguration+      `Prelude.seq` Prelude.rnf memberId+      `Prelude.seq` Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf stateDB+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/ManagedBlockChain/Types/NodeConfiguration.hs view
@@ -0,0 +1,132 @@+{-# 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.ManagedBlockChain.Types.NodeConfiguration+-- 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.ManagedBlockChain.Types.NodeConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.NodeLogPublishingConfiguration+import Amazonka.ManagedBlockChain.Types.StateDBType+import qualified Amazonka.Prelude as Prelude++-- | Configuration properties of a node.+--+-- /See:/ 'newNodeConfiguration' smart constructor.+data NodeConfiguration = NodeConfiguration'+  { -- | The Availability Zone in which the node exists. Required for Ethereum+    -- nodes.+    availabilityZone :: Prelude.Maybe Prelude.Text,+    -- | Configuration properties for logging events associated with a peer node+    -- on a Hyperledger Fabric network on Managed Blockchain.+    logPublishingConfiguration :: Prelude.Maybe NodeLogPublishingConfiguration,+    -- | The state database that the node uses. Values are @LevelDB@ or+    -- @CouchDB@. When using an Amazon Managed Blockchain network with+    -- Hyperledger Fabric version 1.4 or later, the default is @CouchDB@.+    --+    -- Applies only to Hyperledger Fabric.+    stateDB :: Prelude.Maybe StateDBType,+    -- | The Amazon Managed Blockchain instance type for the node.+    instanceType :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NodeConfiguration' 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:+--+-- 'availabilityZone', 'nodeConfiguration_availabilityZone' - The Availability Zone in which the node exists. Required for Ethereum+-- nodes.+--+-- 'logPublishingConfiguration', 'nodeConfiguration_logPublishingConfiguration' - Configuration properties for logging events associated with a peer node+-- on a Hyperledger Fabric network on Managed Blockchain.+--+-- 'stateDB', 'nodeConfiguration_stateDB' - The state database that the node uses. Values are @LevelDB@ or+-- @CouchDB@. When using an Amazon Managed Blockchain network with+-- Hyperledger Fabric version 1.4 or later, the default is @CouchDB@.+--+-- Applies only to Hyperledger Fabric.+--+-- 'instanceType', 'nodeConfiguration_instanceType' - The Amazon Managed Blockchain instance type for the node.+newNodeConfiguration ::+  -- | 'instanceType'+  Prelude.Text ->+  NodeConfiguration+newNodeConfiguration pInstanceType_ =+  NodeConfiguration'+    { availabilityZone =+        Prelude.Nothing,+      logPublishingConfiguration = Prelude.Nothing,+      stateDB = Prelude.Nothing,+      instanceType = pInstanceType_+    }++-- | The Availability Zone in which the node exists. Required for Ethereum+-- nodes.+nodeConfiguration_availabilityZone :: Lens.Lens' NodeConfiguration (Prelude.Maybe Prelude.Text)+nodeConfiguration_availabilityZone = Lens.lens (\NodeConfiguration' {availabilityZone} -> availabilityZone) (\s@NodeConfiguration' {} a -> s {availabilityZone = a} :: NodeConfiguration)++-- | Configuration properties for logging events associated with a peer node+-- on a Hyperledger Fabric network on Managed Blockchain.+nodeConfiguration_logPublishingConfiguration :: Lens.Lens' NodeConfiguration (Prelude.Maybe NodeLogPublishingConfiguration)+nodeConfiguration_logPublishingConfiguration = Lens.lens (\NodeConfiguration' {logPublishingConfiguration} -> logPublishingConfiguration) (\s@NodeConfiguration' {} a -> s {logPublishingConfiguration = a} :: NodeConfiguration)++-- | The state database that the node uses. Values are @LevelDB@ or+-- @CouchDB@. When using an Amazon Managed Blockchain network with+-- Hyperledger Fabric version 1.4 or later, the default is @CouchDB@.+--+-- Applies only to Hyperledger Fabric.+nodeConfiguration_stateDB :: Lens.Lens' NodeConfiguration (Prelude.Maybe StateDBType)+nodeConfiguration_stateDB = Lens.lens (\NodeConfiguration' {stateDB} -> stateDB) (\s@NodeConfiguration' {} a -> s {stateDB = a} :: NodeConfiguration)++-- | The Amazon Managed Blockchain instance type for the node.+nodeConfiguration_instanceType :: Lens.Lens' NodeConfiguration Prelude.Text+nodeConfiguration_instanceType = Lens.lens (\NodeConfiguration' {instanceType} -> instanceType) (\s@NodeConfiguration' {} a -> s {instanceType = a} :: NodeConfiguration)++instance Prelude.Hashable NodeConfiguration where+  hashWithSalt _salt NodeConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` availabilityZone+      `Prelude.hashWithSalt` logPublishingConfiguration+      `Prelude.hashWithSalt` stateDB+      `Prelude.hashWithSalt` instanceType++instance Prelude.NFData NodeConfiguration where+  rnf NodeConfiguration' {..} =+    Prelude.rnf availabilityZone+      `Prelude.seq` Prelude.rnf logPublishingConfiguration+      `Prelude.seq` Prelude.rnf stateDB+      `Prelude.seq` Prelude.rnf instanceType++instance Data.ToJSON NodeConfiguration where+  toJSON NodeConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AvailabilityZone" Data..=)+              Prelude.<$> availabilityZone,+            ("LogPublishingConfiguration" Data..=)+              Prelude.<$> logPublishingConfiguration,+            ("StateDB" Data..=) Prelude.<$> stateDB,+            Prelude.Just ("InstanceType" Data..= instanceType)+          ]+      )
+ gen/Amazonka/ManagedBlockChain/Types/NodeEthereumAttributes.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.ManagedBlockChain.Types.NodeEthereumAttributes+-- 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.ManagedBlockChain.Types.NodeEthereumAttributes 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++-- | Attributes of an Ethereum node.+--+-- /See:/ 'newNodeEthereumAttributes' smart constructor.+data NodeEthereumAttributes = NodeEthereumAttributes'+  { -- | The endpoint on which the Ethereum node listens to run Ethereum API+    -- methods over HTTP connections from a client. Use this endpoint in client+    -- code for smart contracts when using an HTTP connection. Connections to+    -- this endpoint are authenticated using+    -- <https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html Signature Version 4>.+    httpEndpoint :: Prelude.Maybe Prelude.Text,+    -- | The endpoint on which the Ethereum node listens to run Ethereum JSON-RPC+    -- methods over WebSocket connections from a client. Use this endpoint in+    -- client code for smart contracts when using a WebSocket connection.+    -- Connections to this endpoint are authenticated using+    -- <https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html Signature Version 4>.+    webSocketEndpoint :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NodeEthereumAttributes' 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:+--+-- 'httpEndpoint', 'nodeEthereumAttributes_httpEndpoint' - The endpoint on which the Ethereum node listens to run Ethereum API+-- methods over HTTP connections from a client. Use this endpoint in client+-- code for smart contracts when using an HTTP connection. Connections to+-- this endpoint are authenticated using+-- <https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html Signature Version 4>.+--+-- 'webSocketEndpoint', 'nodeEthereumAttributes_webSocketEndpoint' - The endpoint on which the Ethereum node listens to run Ethereum JSON-RPC+-- methods over WebSocket connections from a client. Use this endpoint in+-- client code for smart contracts when using a WebSocket connection.+-- Connections to this endpoint are authenticated using+-- <https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html Signature Version 4>.+newNodeEthereumAttributes ::+  NodeEthereumAttributes+newNodeEthereumAttributes =+  NodeEthereumAttributes'+    { httpEndpoint =+        Prelude.Nothing,+      webSocketEndpoint = Prelude.Nothing+    }++-- | The endpoint on which the Ethereum node listens to run Ethereum API+-- methods over HTTP connections from a client. Use this endpoint in client+-- code for smart contracts when using an HTTP connection. Connections to+-- this endpoint are authenticated using+-- <https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html Signature Version 4>.+nodeEthereumAttributes_httpEndpoint :: Lens.Lens' NodeEthereumAttributes (Prelude.Maybe Prelude.Text)+nodeEthereumAttributes_httpEndpoint = Lens.lens (\NodeEthereumAttributes' {httpEndpoint} -> httpEndpoint) (\s@NodeEthereumAttributes' {} a -> s {httpEndpoint = a} :: NodeEthereumAttributes)++-- | The endpoint on which the Ethereum node listens to run Ethereum JSON-RPC+-- methods over WebSocket connections from a client. Use this endpoint in+-- client code for smart contracts when using a WebSocket connection.+-- Connections to this endpoint are authenticated using+-- <https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html Signature Version 4>.+nodeEthereumAttributes_webSocketEndpoint :: Lens.Lens' NodeEthereumAttributes (Prelude.Maybe Prelude.Text)+nodeEthereumAttributes_webSocketEndpoint = Lens.lens (\NodeEthereumAttributes' {webSocketEndpoint} -> webSocketEndpoint) (\s@NodeEthereumAttributes' {} a -> s {webSocketEndpoint = a} :: NodeEthereumAttributes)++instance Data.FromJSON NodeEthereumAttributes where+  parseJSON =+    Data.withObject+      "NodeEthereumAttributes"+      ( \x ->+          NodeEthereumAttributes'+            Prelude.<$> (x Data..:? "HttpEndpoint")+            Prelude.<*> (x Data..:? "WebSocketEndpoint")+      )++instance Prelude.Hashable NodeEthereumAttributes where+  hashWithSalt _salt NodeEthereumAttributes' {..} =+    _salt+      `Prelude.hashWithSalt` httpEndpoint+      `Prelude.hashWithSalt` webSocketEndpoint++instance Prelude.NFData NodeEthereumAttributes where+  rnf NodeEthereumAttributes' {..} =+    Prelude.rnf httpEndpoint+      `Prelude.seq` Prelude.rnf webSocketEndpoint
+ gen/Amazonka/ManagedBlockChain/Types/NodeFabricAttributes.hs view
@@ -0,0 +1,92 @@+{-# 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.ManagedBlockChain.Types.NodeFabricAttributes+-- 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.ManagedBlockChain.Types.NodeFabricAttributes 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++-- | Attributes of Hyperledger Fabric for a peer node on a Hyperledger Fabric+-- network on Managed Blockchain.+--+-- /See:/ 'newNodeFabricAttributes' smart constructor.+data NodeFabricAttributes = NodeFabricAttributes'+  { -- | The endpoint that identifies the peer node for all services except peer+    -- channel-based event services.+    peerEndpoint :: Prelude.Maybe Prelude.Text,+    -- | The endpoint that identifies the peer node for peer channel-based event+    -- services.+    peerEventEndpoint :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NodeFabricAttributes' 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:+--+-- 'peerEndpoint', 'nodeFabricAttributes_peerEndpoint' - The endpoint that identifies the peer node for all services except peer+-- channel-based event services.+--+-- 'peerEventEndpoint', 'nodeFabricAttributes_peerEventEndpoint' - The endpoint that identifies the peer node for peer channel-based event+-- services.+newNodeFabricAttributes ::+  NodeFabricAttributes+newNodeFabricAttributes =+  NodeFabricAttributes'+    { peerEndpoint =+        Prelude.Nothing,+      peerEventEndpoint = Prelude.Nothing+    }++-- | The endpoint that identifies the peer node for all services except peer+-- channel-based event services.+nodeFabricAttributes_peerEndpoint :: Lens.Lens' NodeFabricAttributes (Prelude.Maybe Prelude.Text)+nodeFabricAttributes_peerEndpoint = Lens.lens (\NodeFabricAttributes' {peerEndpoint} -> peerEndpoint) (\s@NodeFabricAttributes' {} a -> s {peerEndpoint = a} :: NodeFabricAttributes)++-- | The endpoint that identifies the peer node for peer channel-based event+-- services.+nodeFabricAttributes_peerEventEndpoint :: Lens.Lens' NodeFabricAttributes (Prelude.Maybe Prelude.Text)+nodeFabricAttributes_peerEventEndpoint = Lens.lens (\NodeFabricAttributes' {peerEventEndpoint} -> peerEventEndpoint) (\s@NodeFabricAttributes' {} a -> s {peerEventEndpoint = a} :: NodeFabricAttributes)++instance Data.FromJSON NodeFabricAttributes where+  parseJSON =+    Data.withObject+      "NodeFabricAttributes"+      ( \x ->+          NodeFabricAttributes'+            Prelude.<$> (x Data..:? "PeerEndpoint")+            Prelude.<*> (x Data..:? "PeerEventEndpoint")+      )++instance Prelude.Hashable NodeFabricAttributes where+  hashWithSalt _salt NodeFabricAttributes' {..} =+    _salt+      `Prelude.hashWithSalt` peerEndpoint+      `Prelude.hashWithSalt` peerEventEndpoint++instance Prelude.NFData NodeFabricAttributes where+  rnf NodeFabricAttributes' {..} =+    Prelude.rnf peerEndpoint+      `Prelude.seq` Prelude.rnf peerEventEndpoint
+ gen/Amazonka/ManagedBlockChain/Types/NodeFabricLogPublishingConfiguration.hs view
@@ -0,0 +1,131 @@+{-# 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.ManagedBlockChain.Types.NodeFabricLogPublishingConfiguration+-- 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.ManagedBlockChain.Types.NodeFabricLogPublishingConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.LogConfigurations+import qualified Amazonka.Prelude as Prelude++-- | Configuration properties for logging events associated with a peer node+-- owned by a member in a Managed Blockchain network.+--+-- /See:/ 'newNodeFabricLogPublishingConfiguration' smart constructor.+data NodeFabricLogPublishingConfiguration = NodeFabricLogPublishingConfiguration'+  { -- | Configuration properties for logging events associated with chaincode+    -- execution on a peer node. Chaincode logs contain the results of+    -- instantiating, invoking, and querying the chaincode. A peer can run+    -- multiple instances of chaincode. When enabled, a log stream is created+    -- for all chaincodes, with an individual log stream for each chaincode.+    chaincodeLogs :: Prelude.Maybe LogConfigurations,+    -- | Configuration properties for a peer node log. Peer node logs contain+    -- messages generated when your client submits transaction proposals to+    -- peer nodes, requests to join channels, enrolls an admin peer, and lists+    -- the chaincode instances on a peer node.+    peerLogs :: Prelude.Maybe LogConfigurations+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NodeFabricLogPublishingConfiguration' 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:+--+-- 'chaincodeLogs', 'nodeFabricLogPublishingConfiguration_chaincodeLogs' - Configuration properties for logging events associated with chaincode+-- execution on a peer node. Chaincode logs contain the results of+-- instantiating, invoking, and querying the chaincode. A peer can run+-- multiple instances of chaincode. When enabled, a log stream is created+-- for all chaincodes, with an individual log stream for each chaincode.+--+-- 'peerLogs', 'nodeFabricLogPublishingConfiguration_peerLogs' - Configuration properties for a peer node log. Peer node logs contain+-- messages generated when your client submits transaction proposals to+-- peer nodes, requests to join channels, enrolls an admin peer, and lists+-- the chaincode instances on a peer node.+newNodeFabricLogPublishingConfiguration ::+  NodeFabricLogPublishingConfiguration+newNodeFabricLogPublishingConfiguration =+  NodeFabricLogPublishingConfiguration'+    { chaincodeLogs =+        Prelude.Nothing,+      peerLogs = Prelude.Nothing+    }++-- | Configuration properties for logging events associated with chaincode+-- execution on a peer node. Chaincode logs contain the results of+-- instantiating, invoking, and querying the chaincode. A peer can run+-- multiple instances of chaincode. When enabled, a log stream is created+-- for all chaincodes, with an individual log stream for each chaincode.+nodeFabricLogPublishingConfiguration_chaincodeLogs :: Lens.Lens' NodeFabricLogPublishingConfiguration (Prelude.Maybe LogConfigurations)+nodeFabricLogPublishingConfiguration_chaincodeLogs = Lens.lens (\NodeFabricLogPublishingConfiguration' {chaincodeLogs} -> chaincodeLogs) (\s@NodeFabricLogPublishingConfiguration' {} a -> s {chaincodeLogs = a} :: NodeFabricLogPublishingConfiguration)++-- | Configuration properties for a peer node log. Peer node logs contain+-- messages generated when your client submits transaction proposals to+-- peer nodes, requests to join channels, enrolls an admin peer, and lists+-- the chaincode instances on a peer node.+nodeFabricLogPublishingConfiguration_peerLogs :: Lens.Lens' NodeFabricLogPublishingConfiguration (Prelude.Maybe LogConfigurations)+nodeFabricLogPublishingConfiguration_peerLogs = Lens.lens (\NodeFabricLogPublishingConfiguration' {peerLogs} -> peerLogs) (\s@NodeFabricLogPublishingConfiguration' {} a -> s {peerLogs = a} :: NodeFabricLogPublishingConfiguration)++instance+  Data.FromJSON+    NodeFabricLogPublishingConfiguration+  where+  parseJSON =+    Data.withObject+      "NodeFabricLogPublishingConfiguration"+      ( \x ->+          NodeFabricLogPublishingConfiguration'+            Prelude.<$> (x Data..:? "ChaincodeLogs")+            Prelude.<*> (x Data..:? "PeerLogs")+      )++instance+  Prelude.Hashable+    NodeFabricLogPublishingConfiguration+  where+  hashWithSalt+    _salt+    NodeFabricLogPublishingConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` chaincodeLogs+        `Prelude.hashWithSalt` peerLogs++instance+  Prelude.NFData+    NodeFabricLogPublishingConfiguration+  where+  rnf NodeFabricLogPublishingConfiguration' {..} =+    Prelude.rnf chaincodeLogs+      `Prelude.seq` Prelude.rnf peerLogs++instance+  Data.ToJSON+    NodeFabricLogPublishingConfiguration+  where+  toJSON NodeFabricLogPublishingConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ChaincodeLogs" Data..=) Prelude.<$> chaincodeLogs,+            ("PeerLogs" Data..=) Prelude.<$> peerLogs+          ]+      )
+ gen/Amazonka/ManagedBlockChain/Types/NodeFrameworkAttributes.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.ManagedBlockChain.Types.NodeFrameworkAttributes+-- 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.ManagedBlockChain.Types.NodeFrameworkAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.NodeEthereumAttributes+import Amazonka.ManagedBlockChain.Types.NodeFabricAttributes+import qualified Amazonka.Prelude as Prelude++-- | Attributes relevant to a node on a Managed Blockchain network for the+-- blockchain framework that the network uses.+--+-- /See:/ 'newNodeFrameworkAttributes' smart constructor.+data NodeFrameworkAttributes = NodeFrameworkAttributes'+  { -- | Attributes of Ethereum for a node on a Managed Blockchain network that+    -- uses Ethereum.+    ethereum :: Prelude.Maybe NodeEthereumAttributes,+    -- | Attributes of Hyperledger Fabric for a peer node on a Managed Blockchain+    -- network that uses Hyperledger Fabric.+    fabric :: Prelude.Maybe NodeFabricAttributes+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NodeFrameworkAttributes' 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:+--+-- 'ethereum', 'nodeFrameworkAttributes_ethereum' - Attributes of Ethereum for a node on a Managed Blockchain network that+-- uses Ethereum.+--+-- 'fabric', 'nodeFrameworkAttributes_fabric' - Attributes of Hyperledger Fabric for a peer node on a Managed Blockchain+-- network that uses Hyperledger Fabric.+newNodeFrameworkAttributes ::+  NodeFrameworkAttributes+newNodeFrameworkAttributes =+  NodeFrameworkAttributes'+    { ethereum =+        Prelude.Nothing,+      fabric = Prelude.Nothing+    }++-- | Attributes of Ethereum for a node on a Managed Blockchain network that+-- uses Ethereum.+nodeFrameworkAttributes_ethereum :: Lens.Lens' NodeFrameworkAttributes (Prelude.Maybe NodeEthereumAttributes)+nodeFrameworkAttributes_ethereum = Lens.lens (\NodeFrameworkAttributes' {ethereum} -> ethereum) (\s@NodeFrameworkAttributes' {} a -> s {ethereum = a} :: NodeFrameworkAttributes)++-- | Attributes of Hyperledger Fabric for a peer node on a Managed Blockchain+-- network that uses Hyperledger Fabric.+nodeFrameworkAttributes_fabric :: Lens.Lens' NodeFrameworkAttributes (Prelude.Maybe NodeFabricAttributes)+nodeFrameworkAttributes_fabric = Lens.lens (\NodeFrameworkAttributes' {fabric} -> fabric) (\s@NodeFrameworkAttributes' {} a -> s {fabric = a} :: NodeFrameworkAttributes)++instance Data.FromJSON NodeFrameworkAttributes where+  parseJSON =+    Data.withObject+      "NodeFrameworkAttributes"+      ( \x ->+          NodeFrameworkAttributes'+            Prelude.<$> (x Data..:? "Ethereum")+            Prelude.<*> (x Data..:? "Fabric")+      )++instance Prelude.Hashable NodeFrameworkAttributes where+  hashWithSalt _salt NodeFrameworkAttributes' {..} =+    _salt+      `Prelude.hashWithSalt` ethereum+      `Prelude.hashWithSalt` fabric++instance Prelude.NFData NodeFrameworkAttributes where+  rnf NodeFrameworkAttributes' {..} =+    Prelude.rnf ethereum+      `Prelude.seq` Prelude.rnf fabric
+ gen/Amazonka/ManagedBlockChain/Types/NodeLogPublishingConfiguration.hs view
@@ -0,0 +1,95 @@+{-# 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.ManagedBlockChain.Types.NodeLogPublishingConfiguration+-- 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.ManagedBlockChain.Types.NodeLogPublishingConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.NodeFabricLogPublishingConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Configuration properties for logging events associated with a peer node+-- on a Hyperledger Fabric network on Managed Blockchain.+--+-- /See:/ 'newNodeLogPublishingConfiguration' smart constructor.+data NodeLogPublishingConfiguration = NodeLogPublishingConfiguration'+  { -- | Configuration properties for logging events associated with a node that+    -- is owned by a member of a Managed Blockchain network using the+    -- Hyperledger Fabric framework.+    fabric :: Prelude.Maybe NodeFabricLogPublishingConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NodeLogPublishingConfiguration' 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:+--+-- 'fabric', 'nodeLogPublishingConfiguration_fabric' - Configuration properties for logging events associated with a node that+-- is owned by a member of a Managed Blockchain network using the+-- Hyperledger Fabric framework.+newNodeLogPublishingConfiguration ::+  NodeLogPublishingConfiguration+newNodeLogPublishingConfiguration =+  NodeLogPublishingConfiguration'+    { fabric =+        Prelude.Nothing+    }++-- | Configuration properties for logging events associated with a node that+-- is owned by a member of a Managed Blockchain network using the+-- Hyperledger Fabric framework.+nodeLogPublishingConfiguration_fabric :: Lens.Lens' NodeLogPublishingConfiguration (Prelude.Maybe NodeFabricLogPublishingConfiguration)+nodeLogPublishingConfiguration_fabric = Lens.lens (\NodeLogPublishingConfiguration' {fabric} -> fabric) (\s@NodeLogPublishingConfiguration' {} a -> s {fabric = a} :: NodeLogPublishingConfiguration)++instance Data.FromJSON NodeLogPublishingConfiguration where+  parseJSON =+    Data.withObject+      "NodeLogPublishingConfiguration"+      ( \x ->+          NodeLogPublishingConfiguration'+            Prelude.<$> (x Data..:? "Fabric")+      )++instance+  Prelude.Hashable+    NodeLogPublishingConfiguration+  where+  hashWithSalt+    _salt+    NodeLogPublishingConfiguration' {..} =+      _salt `Prelude.hashWithSalt` fabric++instance+  Prelude.NFData+    NodeLogPublishingConfiguration+  where+  rnf NodeLogPublishingConfiguration' {..} =+    Prelude.rnf fabric++instance Data.ToJSON NodeLogPublishingConfiguration where+  toJSON NodeLogPublishingConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Fabric" Data..=) Prelude.<$> fabric]+      )
+ gen/Amazonka/ManagedBlockChain/Types/NodeStatus.hs view
@@ -0,0 +1,106 @@+{-# 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.ManagedBlockChain.Types.NodeStatus+-- 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.ManagedBlockChain.Types.NodeStatus+  ( NodeStatus+      ( ..,+        NodeStatus_AVAILABLE,+        NodeStatus_CREATE_FAILED,+        NodeStatus_CREATING,+        NodeStatus_DELETED,+        NodeStatus_DELETING,+        NodeStatus_FAILED,+        NodeStatus_INACCESSIBLE_ENCRYPTION_KEY,+        NodeStatus_UNHEALTHY,+        NodeStatus_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype NodeStatus = NodeStatus'+  { fromNodeStatus ::+      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 NodeStatus_AVAILABLE :: NodeStatus+pattern NodeStatus_AVAILABLE = NodeStatus' "AVAILABLE"++pattern NodeStatus_CREATE_FAILED :: NodeStatus+pattern NodeStatus_CREATE_FAILED = NodeStatus' "CREATE_FAILED"++pattern NodeStatus_CREATING :: NodeStatus+pattern NodeStatus_CREATING = NodeStatus' "CREATING"++pattern NodeStatus_DELETED :: NodeStatus+pattern NodeStatus_DELETED = NodeStatus' "DELETED"++pattern NodeStatus_DELETING :: NodeStatus+pattern NodeStatus_DELETING = NodeStatus' "DELETING"++pattern NodeStatus_FAILED :: NodeStatus+pattern NodeStatus_FAILED = NodeStatus' "FAILED"++pattern NodeStatus_INACCESSIBLE_ENCRYPTION_KEY :: NodeStatus+pattern NodeStatus_INACCESSIBLE_ENCRYPTION_KEY = NodeStatus' "INACCESSIBLE_ENCRYPTION_KEY"++pattern NodeStatus_UNHEALTHY :: NodeStatus+pattern NodeStatus_UNHEALTHY = NodeStatus' "UNHEALTHY"++pattern NodeStatus_UPDATING :: NodeStatus+pattern NodeStatus_UPDATING = NodeStatus' "UPDATING"++{-# COMPLETE+  NodeStatus_AVAILABLE,+  NodeStatus_CREATE_FAILED,+  NodeStatus_CREATING,+  NodeStatus_DELETED,+  NodeStatus_DELETING,+  NodeStatus_FAILED,+  NodeStatus_INACCESSIBLE_ENCRYPTION_KEY,+  NodeStatus_UNHEALTHY,+  NodeStatus_UPDATING,+  NodeStatus'+  #-}
+ gen/Amazonka/ManagedBlockChain/Types/NodeSummary.hs view
@@ -0,0 +1,142 @@+{-# 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.ManagedBlockChain.Types.NodeSummary+-- 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.ManagedBlockChain.Types.NodeSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.NodeStatus+import qualified Amazonka.Prelude as Prelude++-- | A summary of configuration properties for a node.+--+-- /See:/ 'newNodeSummary' smart constructor.+data NodeSummary = NodeSummary'+  { -- | The Amazon Resource Name (ARN) of the node. For more information about+    -- ARNs and their format, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /Amazon Web Services General Reference/.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The Availability Zone in which the node exists.+    availabilityZone :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the node was created.+    creationDate :: Prelude.Maybe Data.ISO8601,+    -- | The unique identifier of the node.+    id :: Prelude.Maybe Prelude.Text,+    -- | The EC2 instance type for the node.+    instanceType :: Prelude.Maybe Prelude.Text,+    -- | The status of the node.+    status :: Prelude.Maybe NodeStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NodeSummary' 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', 'nodeSummary_arn' - The Amazon Resource Name (ARN) of the node. For more information about+-- ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+--+-- 'availabilityZone', 'nodeSummary_availabilityZone' - The Availability Zone in which the node exists.+--+-- 'creationDate', 'nodeSummary_creationDate' - The date and time that the node was created.+--+-- 'id', 'nodeSummary_id' - The unique identifier of the node.+--+-- 'instanceType', 'nodeSummary_instanceType' - The EC2 instance type for the node.+--+-- 'status', 'nodeSummary_status' - The status of the node.+newNodeSummary ::+  NodeSummary+newNodeSummary =+  NodeSummary'+    { arn = Prelude.Nothing,+      availabilityZone = Prelude.Nothing,+      creationDate = Prelude.Nothing,+      id = Prelude.Nothing,+      instanceType = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the node. For more information about+-- ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+nodeSummary_arn :: Lens.Lens' NodeSummary (Prelude.Maybe Prelude.Text)+nodeSummary_arn = Lens.lens (\NodeSummary' {arn} -> arn) (\s@NodeSummary' {} a -> s {arn = a} :: NodeSummary)++-- | The Availability Zone in which the node exists.+nodeSummary_availabilityZone :: Lens.Lens' NodeSummary (Prelude.Maybe Prelude.Text)+nodeSummary_availabilityZone = Lens.lens (\NodeSummary' {availabilityZone} -> availabilityZone) (\s@NodeSummary' {} a -> s {availabilityZone = a} :: NodeSummary)++-- | The date and time that the node was created.+nodeSummary_creationDate :: Lens.Lens' NodeSummary (Prelude.Maybe Prelude.UTCTime)+nodeSummary_creationDate = Lens.lens (\NodeSummary' {creationDate} -> creationDate) (\s@NodeSummary' {} a -> s {creationDate = a} :: NodeSummary) Prelude.. Lens.mapping Data._Time++-- | The unique identifier of the node.+nodeSummary_id :: Lens.Lens' NodeSummary (Prelude.Maybe Prelude.Text)+nodeSummary_id = Lens.lens (\NodeSummary' {id} -> id) (\s@NodeSummary' {} a -> s {id = a} :: NodeSummary)++-- | The EC2 instance type for the node.+nodeSummary_instanceType :: Lens.Lens' NodeSummary (Prelude.Maybe Prelude.Text)+nodeSummary_instanceType = Lens.lens (\NodeSummary' {instanceType} -> instanceType) (\s@NodeSummary' {} a -> s {instanceType = a} :: NodeSummary)++-- | The status of the node.+nodeSummary_status :: Lens.Lens' NodeSummary (Prelude.Maybe NodeStatus)+nodeSummary_status = Lens.lens (\NodeSummary' {status} -> status) (\s@NodeSummary' {} a -> s {status = a} :: NodeSummary)++instance Data.FromJSON NodeSummary where+  parseJSON =+    Data.withObject+      "NodeSummary"+      ( \x ->+          NodeSummary'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "AvailabilityZone")+            Prelude.<*> (x Data..:? "CreationDate")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "InstanceType")+            Prelude.<*> (x Data..:? "Status")+      )++instance Prelude.Hashable NodeSummary where+  hashWithSalt _salt NodeSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` availabilityZone+      `Prelude.hashWithSalt` creationDate+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` instanceType+      `Prelude.hashWithSalt` status++instance Prelude.NFData NodeSummary where+  rnf NodeSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf availabilityZone+      `Prelude.seq` Prelude.rnf creationDate+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf instanceType+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/ManagedBlockChain/Types/Proposal.hs view
@@ -0,0 +1,337 @@+{-# 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.ManagedBlockChain.Types.Proposal+-- 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.ManagedBlockChain.Types.Proposal where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.ProposalActions+import Amazonka.ManagedBlockChain.Types.ProposalStatus+import qualified Amazonka.Prelude as Prelude++-- | Properties of a proposal on a Managed Blockchain network.+--+-- Applies only to Hyperledger Fabric.+--+-- /See:/ 'newProposal' smart constructor.+data Proposal = Proposal'+  { -- | The actions to perform on the network if the proposal is @APPROVED@.+    actions :: Prelude.Maybe ProposalActions,+    -- | The Amazon Resource Name (ARN) of the proposal. For more information+    -- about ARNs and their format, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /Amazon Web Services General Reference/.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the proposal was created.+    creationDate :: Prelude.Maybe Data.ISO8601,+    -- | The description of the proposal.+    description :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the proposal expires. This is the @CreationDate@+    -- plus the @ProposalDurationInHours@ that is specified in the+    -- @ProposalThresholdPolicy@. After this date and time, if members haven\'t+    -- cast enough votes to determine the outcome according to the voting+    -- policy, the proposal is @EXPIRED@ and @Actions@ aren\'t carried out.+    expirationDate :: Prelude.Maybe Data.ISO8601,+    -- | The unique identifier of the network for which the proposal is made.+    networkId :: Prelude.Maybe Prelude.Text,+    -- | The current total of @NO@ votes cast on the proposal by members.+    noVoteCount :: Prelude.Maybe Prelude.Int,+    -- | The number of votes remaining to be cast on the proposal by members. In+    -- other words, the number of members minus the sum of @YES@ votes and @NO@+    -- votes.+    outstandingVoteCount :: Prelude.Maybe Prelude.Int,+    -- | The unique identifier of the proposal.+    proposalId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the member that created the proposal.+    proposedByMemberId :: Prelude.Maybe Prelude.Text,+    -- | The name of the member that created the proposal.+    proposedByMemberName :: Prelude.Maybe Prelude.Text,+    -- | The status of the proposal. Values are as follows:+    --+    -- -   @IN_PROGRESS@ - The proposal is active and open for member voting.+    --+    -- -   @APPROVED@ - The proposal was approved with sufficient @YES@ votes+    --     among members according to the @VotingPolicy@ specified for the+    --     @Network@. The specified proposal actions are carried out.+    --+    -- -   @REJECTED@ - The proposal was rejected with insufficient @YES@ votes+    --     among members according to the @VotingPolicy@ specified for the+    --     @Network@. The specified @ProposalActions@ aren\'t carried out.+    --+    -- -   @EXPIRED@ - Members didn\'t cast the number of votes required to+    --     determine the proposal outcome before the proposal expired. The+    --     specified @ProposalActions@ aren\'t carried out.+    --+    -- -   @ACTION_FAILED@ - One or more of the specified @ProposalActions@ in+    --     a proposal that was approved couldn\'t be completed because of an+    --     error. The @ACTION_FAILED@ status occurs even if only one+    --     ProposalAction fails and other actions are successful.+    status :: Prelude.Maybe ProposalStatus,+    -- | Tags assigned to the proposal. Each tag consists of a key and optional+    -- value.+    --+    -- For more information about tags, see+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+    -- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+    -- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+    -- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The current total of @YES@ votes cast on the proposal by members.+    yesVoteCount :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Proposal' 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', 'proposal_actions' - The actions to perform on the network if the proposal is @APPROVED@.+--+-- 'arn', 'proposal_arn' - The Amazon Resource Name (ARN) of the proposal. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+--+-- 'creationDate', 'proposal_creationDate' - The date and time that the proposal was created.+--+-- 'description', 'proposal_description' - The description of the proposal.+--+-- 'expirationDate', 'proposal_expirationDate' - The date and time that the proposal expires. This is the @CreationDate@+-- plus the @ProposalDurationInHours@ that is specified in the+-- @ProposalThresholdPolicy@. After this date and time, if members haven\'t+-- cast enough votes to determine the outcome according to the voting+-- policy, the proposal is @EXPIRED@ and @Actions@ aren\'t carried out.+--+-- 'networkId', 'proposal_networkId' - The unique identifier of the network for which the proposal is made.+--+-- 'noVoteCount', 'proposal_noVoteCount' - The current total of @NO@ votes cast on the proposal by members.+--+-- 'outstandingVoteCount', 'proposal_outstandingVoteCount' - The number of votes remaining to be cast on the proposal by members. In+-- other words, the number of members minus the sum of @YES@ votes and @NO@+-- votes.+--+-- 'proposalId', 'proposal_proposalId' - The unique identifier of the proposal.+--+-- 'proposedByMemberId', 'proposal_proposedByMemberId' - The unique identifier of the member that created the proposal.+--+-- 'proposedByMemberName', 'proposal_proposedByMemberName' - The name of the member that created the proposal.+--+-- 'status', 'proposal_status' - The status of the proposal. Values are as follows:+--+-- -   @IN_PROGRESS@ - The proposal is active and open for member voting.+--+-- -   @APPROVED@ - The proposal was approved with sufficient @YES@ votes+--     among members according to the @VotingPolicy@ specified for the+--     @Network@. The specified proposal actions are carried out.+--+-- -   @REJECTED@ - The proposal was rejected with insufficient @YES@ votes+--     among members according to the @VotingPolicy@ specified for the+--     @Network@. The specified @ProposalActions@ aren\'t carried out.+--+-- -   @EXPIRED@ - Members didn\'t cast the number of votes required to+--     determine the proposal outcome before the proposal expired. The+--     specified @ProposalActions@ aren\'t carried out.+--+-- -   @ACTION_FAILED@ - One or more of the specified @ProposalActions@ in+--     a proposal that was approved couldn\'t be completed because of an+--     error. The @ACTION_FAILED@ status occurs even if only one+--     ProposalAction fails and other actions are successful.+--+-- 'tags', 'proposal_tags' - Tags assigned to the proposal. Each tag consists of a key and optional+-- value.+--+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+--+-- 'yesVoteCount', 'proposal_yesVoteCount' - The current total of @YES@ votes cast on the proposal by members.+newProposal ::+  Proposal+newProposal =+  Proposal'+    { actions = Prelude.Nothing,+      arn = Prelude.Nothing,+      creationDate = Prelude.Nothing,+      description = Prelude.Nothing,+      expirationDate = Prelude.Nothing,+      networkId = Prelude.Nothing,+      noVoteCount = Prelude.Nothing,+      outstandingVoteCount = Prelude.Nothing,+      proposalId = Prelude.Nothing,+      proposedByMemberId = Prelude.Nothing,+      proposedByMemberName = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing,+      yesVoteCount = Prelude.Nothing+    }++-- | The actions to perform on the network if the proposal is @APPROVED@.+proposal_actions :: Lens.Lens' Proposal (Prelude.Maybe ProposalActions)+proposal_actions = Lens.lens (\Proposal' {actions} -> actions) (\s@Proposal' {} a -> s {actions = a} :: Proposal)++-- | The Amazon Resource Name (ARN) of the proposal. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+proposal_arn :: Lens.Lens' Proposal (Prelude.Maybe Prelude.Text)+proposal_arn = Lens.lens (\Proposal' {arn} -> arn) (\s@Proposal' {} a -> s {arn = a} :: Proposal)++-- | The date and time that the proposal was created.+proposal_creationDate :: Lens.Lens' Proposal (Prelude.Maybe Prelude.UTCTime)+proposal_creationDate = Lens.lens (\Proposal' {creationDate} -> creationDate) (\s@Proposal' {} a -> s {creationDate = a} :: Proposal) Prelude.. Lens.mapping Data._Time++-- | The description of the proposal.+proposal_description :: Lens.Lens' Proposal (Prelude.Maybe Prelude.Text)+proposal_description = Lens.lens (\Proposal' {description} -> description) (\s@Proposal' {} a -> s {description = a} :: Proposal)++-- | The date and time that the proposal expires. This is the @CreationDate@+-- plus the @ProposalDurationInHours@ that is specified in the+-- @ProposalThresholdPolicy@. After this date and time, if members haven\'t+-- cast enough votes to determine the outcome according to the voting+-- policy, the proposal is @EXPIRED@ and @Actions@ aren\'t carried out.+proposal_expirationDate :: Lens.Lens' Proposal (Prelude.Maybe Prelude.UTCTime)+proposal_expirationDate = Lens.lens (\Proposal' {expirationDate} -> expirationDate) (\s@Proposal' {} a -> s {expirationDate = a} :: Proposal) Prelude.. Lens.mapping Data._Time++-- | The unique identifier of the network for which the proposal is made.+proposal_networkId :: Lens.Lens' Proposal (Prelude.Maybe Prelude.Text)+proposal_networkId = Lens.lens (\Proposal' {networkId} -> networkId) (\s@Proposal' {} a -> s {networkId = a} :: Proposal)++-- | The current total of @NO@ votes cast on the proposal by members.+proposal_noVoteCount :: Lens.Lens' Proposal (Prelude.Maybe Prelude.Int)+proposal_noVoteCount = Lens.lens (\Proposal' {noVoteCount} -> noVoteCount) (\s@Proposal' {} a -> s {noVoteCount = a} :: Proposal)++-- | The number of votes remaining to be cast on the proposal by members. In+-- other words, the number of members minus the sum of @YES@ votes and @NO@+-- votes.+proposal_outstandingVoteCount :: Lens.Lens' Proposal (Prelude.Maybe Prelude.Int)+proposal_outstandingVoteCount = Lens.lens (\Proposal' {outstandingVoteCount} -> outstandingVoteCount) (\s@Proposal' {} a -> s {outstandingVoteCount = a} :: Proposal)++-- | The unique identifier of the proposal.+proposal_proposalId :: Lens.Lens' Proposal (Prelude.Maybe Prelude.Text)+proposal_proposalId = Lens.lens (\Proposal' {proposalId} -> proposalId) (\s@Proposal' {} a -> s {proposalId = a} :: Proposal)++-- | The unique identifier of the member that created the proposal.+proposal_proposedByMemberId :: Lens.Lens' Proposal (Prelude.Maybe Prelude.Text)+proposal_proposedByMemberId = Lens.lens (\Proposal' {proposedByMemberId} -> proposedByMemberId) (\s@Proposal' {} a -> s {proposedByMemberId = a} :: Proposal)++-- | The name of the member that created the proposal.+proposal_proposedByMemberName :: Lens.Lens' Proposal (Prelude.Maybe Prelude.Text)+proposal_proposedByMemberName = Lens.lens (\Proposal' {proposedByMemberName} -> proposedByMemberName) (\s@Proposal' {} a -> s {proposedByMemberName = a} :: Proposal)++-- | The status of the proposal. Values are as follows:+--+-- -   @IN_PROGRESS@ - The proposal is active and open for member voting.+--+-- -   @APPROVED@ - The proposal was approved with sufficient @YES@ votes+--     among members according to the @VotingPolicy@ specified for the+--     @Network@. The specified proposal actions are carried out.+--+-- -   @REJECTED@ - The proposal was rejected with insufficient @YES@ votes+--     among members according to the @VotingPolicy@ specified for the+--     @Network@. The specified @ProposalActions@ aren\'t carried out.+--+-- -   @EXPIRED@ - Members didn\'t cast the number of votes required to+--     determine the proposal outcome before the proposal expired. The+--     specified @ProposalActions@ aren\'t carried out.+--+-- -   @ACTION_FAILED@ - One or more of the specified @ProposalActions@ in+--     a proposal that was approved couldn\'t be completed because of an+--     error. The @ACTION_FAILED@ status occurs even if only one+--     ProposalAction fails and other actions are successful.+proposal_status :: Lens.Lens' Proposal (Prelude.Maybe ProposalStatus)+proposal_status = Lens.lens (\Proposal' {status} -> status) (\s@Proposal' {} a -> s {status = a} :: Proposal)++-- | Tags assigned to the proposal. Each tag consists of a key and optional+-- value.+--+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+proposal_tags :: Lens.Lens' Proposal (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+proposal_tags = Lens.lens (\Proposal' {tags} -> tags) (\s@Proposal' {} a -> s {tags = a} :: Proposal) Prelude.. Lens.mapping Lens.coerced++-- | The current total of @YES@ votes cast on the proposal by members.+proposal_yesVoteCount :: Lens.Lens' Proposal (Prelude.Maybe Prelude.Int)+proposal_yesVoteCount = Lens.lens (\Proposal' {yesVoteCount} -> yesVoteCount) (\s@Proposal' {} a -> s {yesVoteCount = a} :: Proposal)++instance Data.FromJSON Proposal where+  parseJSON =+    Data.withObject+      "Proposal"+      ( \x ->+          Proposal'+            Prelude.<$> (x Data..:? "Actions")+            Prelude.<*> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "CreationDate")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "ExpirationDate")+            Prelude.<*> (x Data..:? "NetworkId")+            Prelude.<*> (x Data..:? "NoVoteCount")+            Prelude.<*> (x Data..:? "OutstandingVoteCount")+            Prelude.<*> (x Data..:? "ProposalId")+            Prelude.<*> (x Data..:? "ProposedByMemberId")+            Prelude.<*> (x Data..:? "ProposedByMemberName")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "YesVoteCount")+      )++instance Prelude.Hashable Proposal where+  hashWithSalt _salt Proposal' {..} =+    _salt+      `Prelude.hashWithSalt` actions+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` expirationDate+      `Prelude.hashWithSalt` networkId+      `Prelude.hashWithSalt` noVoteCount+      `Prelude.hashWithSalt` outstandingVoteCount+      `Prelude.hashWithSalt` proposalId+      `Prelude.hashWithSalt` proposedByMemberId+      `Prelude.hashWithSalt` proposedByMemberName+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` yesVoteCount++instance Prelude.NFData Proposal where+  rnf Proposal' {..} =+    Prelude.rnf actions+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf expirationDate+      `Prelude.seq` Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf noVoteCount+      `Prelude.seq` Prelude.rnf outstandingVoteCount+      `Prelude.seq` Prelude.rnf proposalId+      `Prelude.seq` Prelude.rnf proposedByMemberId+      `Prelude.seq` Prelude.rnf proposedByMemberName+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf yesVoteCount
+ gen/Amazonka/ManagedBlockChain/Types/ProposalActions.hs view
@@ -0,0 +1,106 @@+{-# 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.ManagedBlockChain.Types.ProposalActions+-- 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.ManagedBlockChain.Types.ProposalActions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.InviteAction+import Amazonka.ManagedBlockChain.Types.RemoveAction+import qualified Amazonka.Prelude as Prelude++-- | The actions to carry out if a proposal is @APPROVED@.+--+-- Applies only to Hyperledger Fabric.+--+-- /See:/ 'newProposalActions' smart constructor.+data ProposalActions = ProposalActions'+  { -- | The actions to perform for an @APPROVED@ proposal to invite an Amazon+    -- Web Services account to create a member and join the network.+    invitations :: Prelude.Maybe [InviteAction],+    -- | The actions to perform for an @APPROVED@ proposal to remove a member+    -- from the network, which deletes the member and all associated member+    -- resources from the network.+    removals :: Prelude.Maybe [RemoveAction]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProposalActions' 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:+--+-- 'invitations', 'proposalActions_invitations' - The actions to perform for an @APPROVED@ proposal to invite an Amazon+-- Web Services account to create a member and join the network.+--+-- 'removals', 'proposalActions_removals' - The actions to perform for an @APPROVED@ proposal to remove a member+-- from the network, which deletes the member and all associated member+-- resources from the network.+newProposalActions ::+  ProposalActions+newProposalActions =+  ProposalActions'+    { invitations = Prelude.Nothing,+      removals = Prelude.Nothing+    }++-- | The actions to perform for an @APPROVED@ proposal to invite an Amazon+-- Web Services account to create a member and join the network.+proposalActions_invitations :: Lens.Lens' ProposalActions (Prelude.Maybe [InviteAction])+proposalActions_invitations = Lens.lens (\ProposalActions' {invitations} -> invitations) (\s@ProposalActions' {} a -> s {invitations = a} :: ProposalActions) Prelude.. Lens.mapping Lens.coerced++-- | The actions to perform for an @APPROVED@ proposal to remove a member+-- from the network, which deletes the member and all associated member+-- resources from the network.+proposalActions_removals :: Lens.Lens' ProposalActions (Prelude.Maybe [RemoveAction])+proposalActions_removals = Lens.lens (\ProposalActions' {removals} -> removals) (\s@ProposalActions' {} a -> s {removals = a} :: ProposalActions) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ProposalActions where+  parseJSON =+    Data.withObject+      "ProposalActions"+      ( \x ->+          ProposalActions'+            Prelude.<$> (x Data..:? "Invitations" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Removals" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable ProposalActions where+  hashWithSalt _salt ProposalActions' {..} =+    _salt+      `Prelude.hashWithSalt` invitations+      `Prelude.hashWithSalt` removals++instance Prelude.NFData ProposalActions where+  rnf ProposalActions' {..} =+    Prelude.rnf invitations+      `Prelude.seq` Prelude.rnf removals++instance Data.ToJSON ProposalActions where+  toJSON ProposalActions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Invitations" Data..=) Prelude.<$> invitations,+            ("Removals" Data..=) Prelude.<$> removals+          ]+      )
+ gen/Amazonka/ManagedBlockChain/Types/ProposalStatus.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ManagedBlockChain.Types.ProposalStatus+-- 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.ManagedBlockChain.Types.ProposalStatus+  ( ProposalStatus+      ( ..,+        ProposalStatus_ACTION_FAILED,+        ProposalStatus_APPROVED,+        ProposalStatus_EXPIRED,+        ProposalStatus_IN_PROGRESS,+        ProposalStatus_REJECTED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ProposalStatus = ProposalStatus'+  { fromProposalStatus ::+      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 ProposalStatus_ACTION_FAILED :: ProposalStatus+pattern ProposalStatus_ACTION_FAILED = ProposalStatus' "ACTION_FAILED"++pattern ProposalStatus_APPROVED :: ProposalStatus+pattern ProposalStatus_APPROVED = ProposalStatus' "APPROVED"++pattern ProposalStatus_EXPIRED :: ProposalStatus+pattern ProposalStatus_EXPIRED = ProposalStatus' "EXPIRED"++pattern ProposalStatus_IN_PROGRESS :: ProposalStatus+pattern ProposalStatus_IN_PROGRESS = ProposalStatus' "IN_PROGRESS"++pattern ProposalStatus_REJECTED :: ProposalStatus+pattern ProposalStatus_REJECTED = ProposalStatus' "REJECTED"++{-# COMPLETE+  ProposalStatus_ACTION_FAILED,+  ProposalStatus_APPROVED,+  ProposalStatus_EXPIRED,+  ProposalStatus_IN_PROGRESS,+  ProposalStatus_REJECTED,+  ProposalStatus'+  #-}
+ gen/Amazonka/ManagedBlockChain/Types/ProposalSummary.hs view
@@ -0,0 +1,234 @@+{-# 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.ManagedBlockChain.Types.ProposalSummary+-- 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.ManagedBlockChain.Types.ProposalSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.ProposalStatus+import qualified Amazonka.Prelude as Prelude++-- | Properties of a proposal.+--+-- Applies only to Hyperledger Fabric.+--+-- /See:/ 'newProposalSummary' smart constructor.+data ProposalSummary = ProposalSummary'+  { -- | The Amazon Resource Name (ARN) of the proposal. For more information+    -- about ARNs and their format, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /Amazon Web Services General Reference/.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the proposal was created.+    creationDate :: Prelude.Maybe Data.ISO8601,+    -- | The description of the proposal.+    description :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the proposal expires. This is the @CreationDate@+    -- plus the @ProposalDurationInHours@ that is specified in the+    -- @ProposalThresholdPolicy@. After this date and time, if members haven\'t+    -- cast enough votes to determine the outcome according to the voting+    -- policy, the proposal is @EXPIRED@ and @Actions@ aren\'t carried out.+    expirationDate :: Prelude.Maybe Data.ISO8601,+    -- | The unique identifier of the proposal.+    proposalId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the member that created the proposal.+    proposedByMemberId :: Prelude.Maybe Prelude.Text,+    -- | The name of the member that created the proposal.+    proposedByMemberName :: Prelude.Maybe Prelude.Text,+    -- | The status of the proposal. Values are as follows:+    --+    -- -   @IN_PROGRESS@ - The proposal is active and open for member voting.+    --+    -- -   @APPROVED@ - The proposal was approved with sufficient @YES@ votes+    --     among members according to the @VotingPolicy@ specified for the+    --     @Network@. The specified proposal actions are carried out.+    --+    -- -   @REJECTED@ - The proposal was rejected with insufficient @YES@ votes+    --     among members according to the @VotingPolicy@ specified for the+    --     @Network@. The specified @ProposalActions@ aren\'t carried out.+    --+    -- -   @EXPIRED@ - Members didn\'t cast the number of votes required to+    --     determine the proposal outcome before the proposal expired. The+    --     specified @ProposalActions@ aren\'t carried out.+    --+    -- -   @ACTION_FAILED@ - One or more of the specified @ProposalActions@ in+    --     a proposal that was approved couldn\'t be completed because of an+    --     error.+    status :: Prelude.Maybe ProposalStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProposalSummary' 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', 'proposalSummary_arn' - The Amazon Resource Name (ARN) of the proposal. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+--+-- 'creationDate', 'proposalSummary_creationDate' - The date and time that the proposal was created.+--+-- 'description', 'proposalSummary_description' - The description of the proposal.+--+-- 'expirationDate', 'proposalSummary_expirationDate' - The date and time that the proposal expires. This is the @CreationDate@+-- plus the @ProposalDurationInHours@ that is specified in the+-- @ProposalThresholdPolicy@. After this date and time, if members haven\'t+-- cast enough votes to determine the outcome according to the voting+-- policy, the proposal is @EXPIRED@ and @Actions@ aren\'t carried out.+--+-- 'proposalId', 'proposalSummary_proposalId' - The unique identifier of the proposal.+--+-- 'proposedByMemberId', 'proposalSummary_proposedByMemberId' - The unique identifier of the member that created the proposal.+--+-- 'proposedByMemberName', 'proposalSummary_proposedByMemberName' - The name of the member that created the proposal.+--+-- 'status', 'proposalSummary_status' - The status of the proposal. Values are as follows:+--+-- -   @IN_PROGRESS@ - The proposal is active and open for member voting.+--+-- -   @APPROVED@ - The proposal was approved with sufficient @YES@ votes+--     among members according to the @VotingPolicy@ specified for the+--     @Network@. The specified proposal actions are carried out.+--+-- -   @REJECTED@ - The proposal was rejected with insufficient @YES@ votes+--     among members according to the @VotingPolicy@ specified for the+--     @Network@. The specified @ProposalActions@ aren\'t carried out.+--+-- -   @EXPIRED@ - Members didn\'t cast the number of votes required to+--     determine the proposal outcome before the proposal expired. The+--     specified @ProposalActions@ aren\'t carried out.+--+-- -   @ACTION_FAILED@ - One or more of the specified @ProposalActions@ in+--     a proposal that was approved couldn\'t be completed because of an+--     error.+newProposalSummary ::+  ProposalSummary+newProposalSummary =+  ProposalSummary'+    { arn = Prelude.Nothing,+      creationDate = Prelude.Nothing,+      description = Prelude.Nothing,+      expirationDate = Prelude.Nothing,+      proposalId = Prelude.Nothing,+      proposedByMemberId = Prelude.Nothing,+      proposedByMemberName = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the proposal. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+proposalSummary_arn :: Lens.Lens' ProposalSummary (Prelude.Maybe Prelude.Text)+proposalSummary_arn = Lens.lens (\ProposalSummary' {arn} -> arn) (\s@ProposalSummary' {} a -> s {arn = a} :: ProposalSummary)++-- | The date and time that the proposal was created.+proposalSummary_creationDate :: Lens.Lens' ProposalSummary (Prelude.Maybe Prelude.UTCTime)+proposalSummary_creationDate = Lens.lens (\ProposalSummary' {creationDate} -> creationDate) (\s@ProposalSummary' {} a -> s {creationDate = a} :: ProposalSummary) Prelude.. Lens.mapping Data._Time++-- | The description of the proposal.+proposalSummary_description :: Lens.Lens' ProposalSummary (Prelude.Maybe Prelude.Text)+proposalSummary_description = Lens.lens (\ProposalSummary' {description} -> description) (\s@ProposalSummary' {} a -> s {description = a} :: ProposalSummary)++-- | The date and time that the proposal expires. This is the @CreationDate@+-- plus the @ProposalDurationInHours@ that is specified in the+-- @ProposalThresholdPolicy@. After this date and time, if members haven\'t+-- cast enough votes to determine the outcome according to the voting+-- policy, the proposal is @EXPIRED@ and @Actions@ aren\'t carried out.+proposalSummary_expirationDate :: Lens.Lens' ProposalSummary (Prelude.Maybe Prelude.UTCTime)+proposalSummary_expirationDate = Lens.lens (\ProposalSummary' {expirationDate} -> expirationDate) (\s@ProposalSummary' {} a -> s {expirationDate = a} :: ProposalSummary) Prelude.. Lens.mapping Data._Time++-- | The unique identifier of the proposal.+proposalSummary_proposalId :: Lens.Lens' ProposalSummary (Prelude.Maybe Prelude.Text)+proposalSummary_proposalId = Lens.lens (\ProposalSummary' {proposalId} -> proposalId) (\s@ProposalSummary' {} a -> s {proposalId = a} :: ProposalSummary)++-- | The unique identifier of the member that created the proposal.+proposalSummary_proposedByMemberId :: Lens.Lens' ProposalSummary (Prelude.Maybe Prelude.Text)+proposalSummary_proposedByMemberId = Lens.lens (\ProposalSummary' {proposedByMemberId} -> proposedByMemberId) (\s@ProposalSummary' {} a -> s {proposedByMemberId = a} :: ProposalSummary)++-- | The name of the member that created the proposal.+proposalSummary_proposedByMemberName :: Lens.Lens' ProposalSummary (Prelude.Maybe Prelude.Text)+proposalSummary_proposedByMemberName = Lens.lens (\ProposalSummary' {proposedByMemberName} -> proposedByMemberName) (\s@ProposalSummary' {} a -> s {proposedByMemberName = a} :: ProposalSummary)++-- | The status of the proposal. Values are as follows:+--+-- -   @IN_PROGRESS@ - The proposal is active and open for member voting.+--+-- -   @APPROVED@ - The proposal was approved with sufficient @YES@ votes+--     among members according to the @VotingPolicy@ specified for the+--     @Network@. The specified proposal actions are carried out.+--+-- -   @REJECTED@ - The proposal was rejected with insufficient @YES@ votes+--     among members according to the @VotingPolicy@ specified for the+--     @Network@. The specified @ProposalActions@ aren\'t carried out.+--+-- -   @EXPIRED@ - Members didn\'t cast the number of votes required to+--     determine the proposal outcome before the proposal expired. The+--     specified @ProposalActions@ aren\'t carried out.+--+-- -   @ACTION_FAILED@ - One or more of the specified @ProposalActions@ in+--     a proposal that was approved couldn\'t be completed because of an+--     error.+proposalSummary_status :: Lens.Lens' ProposalSummary (Prelude.Maybe ProposalStatus)+proposalSummary_status = Lens.lens (\ProposalSummary' {status} -> status) (\s@ProposalSummary' {} a -> s {status = a} :: ProposalSummary)++instance Data.FromJSON ProposalSummary where+  parseJSON =+    Data.withObject+      "ProposalSummary"+      ( \x ->+          ProposalSummary'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "CreationDate")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "ExpirationDate")+            Prelude.<*> (x Data..:? "ProposalId")+            Prelude.<*> (x Data..:? "ProposedByMemberId")+            Prelude.<*> (x Data..:? "ProposedByMemberName")+            Prelude.<*> (x Data..:? "Status")+      )++instance Prelude.Hashable ProposalSummary where+  hashWithSalt _salt ProposalSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` expirationDate+      `Prelude.hashWithSalt` proposalId+      `Prelude.hashWithSalt` proposedByMemberId+      `Prelude.hashWithSalt` proposedByMemberName+      `Prelude.hashWithSalt` status++instance Prelude.NFData ProposalSummary where+  rnf ProposalSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf expirationDate+      `Prelude.seq` Prelude.rnf proposalId+      `Prelude.seq` Prelude.rnf proposedByMemberId+      `Prelude.seq` Prelude.rnf proposedByMemberName+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/ManagedBlockChain/Types/RemoveAction.hs view
@@ -0,0 +1,80 @@+{-# 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.ManagedBlockChain.Types.RemoveAction+-- 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.ManagedBlockChain.Types.RemoveAction 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 to remove a member from a Managed Blockchain network as the+-- result of a removal proposal that is @APPROVED@. The member and all+-- associated resources are deleted from the network.+--+-- Applies only to Hyperledger Fabric.+--+-- /See:/ 'newRemoveAction' smart constructor.+data RemoveAction = RemoveAction'+  { -- | The unique identifier of the member to remove.+    memberId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveAction' 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:+--+-- 'memberId', 'removeAction_memberId' - The unique identifier of the member to remove.+newRemoveAction ::+  -- | 'memberId'+  Prelude.Text ->+  RemoveAction+newRemoveAction pMemberId_ =+  RemoveAction' {memberId = pMemberId_}++-- | The unique identifier of the member to remove.+removeAction_memberId :: Lens.Lens' RemoveAction Prelude.Text+removeAction_memberId = Lens.lens (\RemoveAction' {memberId} -> memberId) (\s@RemoveAction' {} a -> s {memberId = a} :: RemoveAction)++instance Data.FromJSON RemoveAction where+  parseJSON =+    Data.withObject+      "RemoveAction"+      ( \x ->+          RemoveAction' Prelude.<$> (x Data..: "MemberId")+      )++instance Prelude.Hashable RemoveAction where+  hashWithSalt _salt RemoveAction' {..} =+    _salt `Prelude.hashWithSalt` memberId++instance Prelude.NFData RemoveAction where+  rnf RemoveAction' {..} = Prelude.rnf memberId++instance Data.ToJSON RemoveAction where+  toJSON RemoveAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("MemberId" Data..= memberId)]+      )
+ gen/Amazonka/ManagedBlockChain/Types/StateDBType.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.ManagedBlockChain.Types.StateDBType+-- 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.ManagedBlockChain.Types.StateDBType+  ( StateDBType+      ( ..,+        StateDBType_CouchDB,+        StateDBType_LevelDB+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StateDBType = StateDBType'+  { fromStateDBType ::+      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 StateDBType_CouchDB :: StateDBType+pattern StateDBType_CouchDB = StateDBType' "CouchDB"++pattern StateDBType_LevelDB :: StateDBType+pattern StateDBType_LevelDB = StateDBType' "LevelDB"++{-# COMPLETE+  StateDBType_CouchDB,+  StateDBType_LevelDB,+  StateDBType'+  #-}
+ gen/Amazonka/ManagedBlockChain/Types/ThresholdComparator.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.ManagedBlockChain.Types.ThresholdComparator+-- 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.ManagedBlockChain.Types.ThresholdComparator+  ( ThresholdComparator+      ( ..,+        ThresholdComparator_GREATER_THAN,+        ThresholdComparator_GREATER_THAN_OR_EQUAL_TO+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ThresholdComparator = ThresholdComparator'+  { fromThresholdComparator ::+      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 ThresholdComparator_GREATER_THAN :: ThresholdComparator+pattern ThresholdComparator_GREATER_THAN = ThresholdComparator' "GREATER_THAN"++pattern ThresholdComparator_GREATER_THAN_OR_EQUAL_TO :: ThresholdComparator+pattern ThresholdComparator_GREATER_THAN_OR_EQUAL_TO = ThresholdComparator' "GREATER_THAN_OR_EQUAL_TO"++{-# COMPLETE+  ThresholdComparator_GREATER_THAN,+  ThresholdComparator_GREATER_THAN_OR_EQUAL_TO,+  ThresholdComparator'+  #-}
+ gen/Amazonka/ManagedBlockChain/Types/VoteSummary.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ManagedBlockChain.Types.VoteSummary+-- 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.ManagedBlockChain.Types.VoteSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.VoteValue+import qualified Amazonka.Prelude as Prelude++-- | Properties of an individual vote that a member cast for a proposal.+--+-- Applies only to Hyperledger Fabric.+--+-- /See:/ 'newVoteSummary' smart constructor.+data VoteSummary = VoteSummary'+  { -- | The unique identifier of the member that cast the vote.+    memberId :: Prelude.Maybe Prelude.Text,+    -- | The name of the member that cast the vote.+    memberName :: Prelude.Maybe Prelude.Text,+    -- | The vote value, either @YES@ or @NO@.+    vote :: Prelude.Maybe VoteValue+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VoteSummary' 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:+--+-- 'memberId', 'voteSummary_memberId' - The unique identifier of the member that cast the vote.+--+-- 'memberName', 'voteSummary_memberName' - The name of the member that cast the vote.+--+-- 'vote', 'voteSummary_vote' - The vote value, either @YES@ or @NO@.+newVoteSummary ::+  VoteSummary+newVoteSummary =+  VoteSummary'+    { memberId = Prelude.Nothing,+      memberName = Prelude.Nothing,+      vote = Prelude.Nothing+    }++-- | The unique identifier of the member that cast the vote.+voteSummary_memberId :: Lens.Lens' VoteSummary (Prelude.Maybe Prelude.Text)+voteSummary_memberId = Lens.lens (\VoteSummary' {memberId} -> memberId) (\s@VoteSummary' {} a -> s {memberId = a} :: VoteSummary)++-- | The name of the member that cast the vote.+voteSummary_memberName :: Lens.Lens' VoteSummary (Prelude.Maybe Prelude.Text)+voteSummary_memberName = Lens.lens (\VoteSummary' {memberName} -> memberName) (\s@VoteSummary' {} a -> s {memberName = a} :: VoteSummary)++-- | The vote value, either @YES@ or @NO@.+voteSummary_vote :: Lens.Lens' VoteSummary (Prelude.Maybe VoteValue)+voteSummary_vote = Lens.lens (\VoteSummary' {vote} -> vote) (\s@VoteSummary' {} a -> s {vote = a} :: VoteSummary)++instance Data.FromJSON VoteSummary where+  parseJSON =+    Data.withObject+      "VoteSummary"+      ( \x ->+          VoteSummary'+            Prelude.<$> (x Data..:? "MemberId")+            Prelude.<*> (x Data..:? "MemberName")+            Prelude.<*> (x Data..:? "Vote")+      )++instance Prelude.Hashable VoteSummary where+  hashWithSalt _salt VoteSummary' {..} =+    _salt+      `Prelude.hashWithSalt` memberId+      `Prelude.hashWithSalt` memberName+      `Prelude.hashWithSalt` vote++instance Prelude.NFData VoteSummary where+  rnf VoteSummary' {..} =+    Prelude.rnf memberId+      `Prelude.seq` Prelude.rnf memberName+      `Prelude.seq` Prelude.rnf vote
+ gen/Amazonka/ManagedBlockChain/Types/VoteValue.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.ManagedBlockChain.Types.VoteValue+-- 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.ManagedBlockChain.Types.VoteValue+  ( VoteValue+      ( ..,+        VoteValue_NO,+        VoteValue_YES+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VoteValue = VoteValue'+  { fromVoteValue ::+      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 VoteValue_NO :: VoteValue+pattern VoteValue_NO = VoteValue' "NO"++pattern VoteValue_YES :: VoteValue+pattern VoteValue_YES = VoteValue' "YES"++{-# COMPLETE+  VoteValue_NO,+  VoteValue_YES,+  VoteValue'+  #-}
+ gen/Amazonka/ManagedBlockChain/Types/VotingPolicy.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.ManagedBlockChain.Types.VotingPolicy+-- 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.ManagedBlockChain.Types.VotingPolicy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types.ApprovalThresholdPolicy+import qualified Amazonka.Prelude as Prelude++-- | The voting rules for the network to decide if a proposal is accepted+--+-- Applies only to Hyperledger Fabric.+--+-- /See:/ 'newVotingPolicy' smart constructor.+data VotingPolicy = VotingPolicy'+  { -- | Defines the rules for the network for voting on proposals, such as the+    -- percentage of @YES@ votes required for the proposal to be approved and+    -- the duration of the proposal. The policy applies to all proposals and is+    -- specified when the network is created.+    approvalThresholdPolicy :: Prelude.Maybe ApprovalThresholdPolicy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VotingPolicy' 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:+--+-- 'approvalThresholdPolicy', 'votingPolicy_approvalThresholdPolicy' - Defines the rules for the network for voting on proposals, such as the+-- percentage of @YES@ votes required for the proposal to be approved and+-- the duration of the proposal. The policy applies to all proposals and is+-- specified when the network is created.+newVotingPolicy ::+  VotingPolicy+newVotingPolicy =+  VotingPolicy'+    { approvalThresholdPolicy =+        Prelude.Nothing+    }++-- | Defines the rules for the network for voting on proposals, such as the+-- percentage of @YES@ votes required for the proposal to be approved and+-- the duration of the proposal. The policy applies to all proposals and is+-- specified when the network is created.+votingPolicy_approvalThresholdPolicy :: Lens.Lens' VotingPolicy (Prelude.Maybe ApprovalThresholdPolicy)+votingPolicy_approvalThresholdPolicy = Lens.lens (\VotingPolicy' {approvalThresholdPolicy} -> approvalThresholdPolicy) (\s@VotingPolicy' {} a -> s {approvalThresholdPolicy = a} :: VotingPolicy)++instance Data.FromJSON VotingPolicy where+  parseJSON =+    Data.withObject+      "VotingPolicy"+      ( \x ->+          VotingPolicy'+            Prelude.<$> (x Data..:? "ApprovalThresholdPolicy")+      )++instance Prelude.Hashable VotingPolicy where+  hashWithSalt _salt VotingPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` approvalThresholdPolicy++instance Prelude.NFData VotingPolicy where+  rnf VotingPolicy' {..} =+    Prelude.rnf approvalThresholdPolicy++instance Data.ToJSON VotingPolicy where+  toJSON VotingPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ApprovalThresholdPolicy" Data..=)+              Prelude.<$> approvalThresholdPolicy+          ]+      )
+ gen/Amazonka/ManagedBlockChain/UntagResource.hs view
@@ -0,0 +1,176 @@+{-# 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.ManagedBlockChain.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)+--+-- Removes the specified tags from the Amazon Managed Blockchain resource.+--+-- For more information about tags, see+-- <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Ethereum Developer Guide/, or+-- <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html Tagging Resources>+-- in the /Amazon Managed Blockchain Hyperledger Fabric Developer Guide/.+module Amazonka.ManagedBlockChain.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,++    -- * Response Lenses+    untagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The Amazon Resource Name (ARN) of the resource. For more information+    -- about ARNs and their format, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /Amazon Web Services General Reference/.+    resourceArn :: Prelude.Text,+    -- | The tag keys.+    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 Amazon Resource Name (ARN) of the resource. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+--+-- 'tagKeys', 'untagResource_tagKeys' - The tag keys.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the resource. For more information+-- about ARNs and their format, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /Amazon Web Services General Reference/.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The tag keys.+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.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+  UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+  rnf UntagResourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/UpdateMember.hs view
@@ -0,0 +1,191 @@+{-# 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.ManagedBlockChain.UpdateMember+-- 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 member configuration with new parameters.+--+-- Applies only to Hyperledger Fabric.+module Amazonka.ManagedBlockChain.UpdateMember+  ( -- * Creating a Request+    UpdateMember (..),+    newUpdateMember,++    -- * Request Lenses+    updateMember_logPublishingConfiguration,+    updateMember_networkId,+    updateMember_memberId,++    -- * Destructuring the Response+    UpdateMemberResponse (..),+    newUpdateMemberResponse,++    -- * Response Lenses+    updateMemberResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateMember' smart constructor.+data UpdateMember = UpdateMember'+  { -- | Configuration properties for publishing to Amazon CloudWatch Logs.+    logPublishingConfiguration :: Prelude.Maybe MemberLogPublishingConfiguration,+    -- | The unique identifier of the Managed Blockchain network to which the+    -- member belongs.+    networkId :: Prelude.Text,+    -- | The unique identifier of the member.+    memberId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateMember' 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:+--+-- 'logPublishingConfiguration', 'updateMember_logPublishingConfiguration' - Configuration properties for publishing to Amazon CloudWatch Logs.+--+-- 'networkId', 'updateMember_networkId' - The unique identifier of the Managed Blockchain network to which the+-- member belongs.+--+-- 'memberId', 'updateMember_memberId' - The unique identifier of the member.+newUpdateMember ::+  -- | 'networkId'+  Prelude.Text ->+  -- | 'memberId'+  Prelude.Text ->+  UpdateMember+newUpdateMember pNetworkId_ pMemberId_ =+  UpdateMember'+    { logPublishingConfiguration =+        Prelude.Nothing,+      networkId = pNetworkId_,+      memberId = pMemberId_+    }++-- | Configuration properties for publishing to Amazon CloudWatch Logs.+updateMember_logPublishingConfiguration :: Lens.Lens' UpdateMember (Prelude.Maybe MemberLogPublishingConfiguration)+updateMember_logPublishingConfiguration = Lens.lens (\UpdateMember' {logPublishingConfiguration} -> logPublishingConfiguration) (\s@UpdateMember' {} a -> s {logPublishingConfiguration = a} :: UpdateMember)++-- | The unique identifier of the Managed Blockchain network to which the+-- member belongs.+updateMember_networkId :: Lens.Lens' UpdateMember Prelude.Text+updateMember_networkId = Lens.lens (\UpdateMember' {networkId} -> networkId) (\s@UpdateMember' {} a -> s {networkId = a} :: UpdateMember)++-- | The unique identifier of the member.+updateMember_memberId :: Lens.Lens' UpdateMember Prelude.Text+updateMember_memberId = Lens.lens (\UpdateMember' {memberId} -> memberId) (\s@UpdateMember' {} a -> s {memberId = a} :: UpdateMember)++instance Core.AWSRequest UpdateMember where+  type AWSResponse UpdateMember = UpdateMemberResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateMemberResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateMember where+  hashWithSalt _salt UpdateMember' {..} =+    _salt+      `Prelude.hashWithSalt` logPublishingConfiguration+      `Prelude.hashWithSalt` networkId+      `Prelude.hashWithSalt` memberId++instance Prelude.NFData UpdateMember where+  rnf UpdateMember' {..} =+    Prelude.rnf logPublishingConfiguration+      `Prelude.seq` Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf memberId++instance Data.ToHeaders UpdateMember where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateMember where+  toJSON UpdateMember' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("LogPublishingConfiguration" Data..=)+              Prelude.<$> logPublishingConfiguration+          ]+      )++instance Data.ToPath UpdateMember where+  toPath UpdateMember' {..} =+    Prelude.mconcat+      [ "/networks/",+        Data.toBS networkId,+        "/members/",+        Data.toBS memberId+      ]++instance Data.ToQuery UpdateMember where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateMemberResponse' smart constructor.+data UpdateMemberResponse = UpdateMemberResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateMemberResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'updateMemberResponse_httpStatus' - The response's http status code.+newUpdateMemberResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateMemberResponse+newUpdateMemberResponse pHttpStatus_ =+  UpdateMemberResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+updateMemberResponse_httpStatus :: Lens.Lens' UpdateMemberResponse Prelude.Int+updateMemberResponse_httpStatus = Lens.lens (\UpdateMemberResponse' {httpStatus} -> httpStatus) (\s@UpdateMemberResponse' {} a -> s {httpStatus = a} :: UpdateMemberResponse)++instance Prelude.NFData UpdateMemberResponse where+  rnf UpdateMemberResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/UpdateNode.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.ManagedBlockChain.UpdateNode+-- 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 node configuration with new parameters.+--+-- Applies only to Hyperledger Fabric.+module Amazonka.ManagedBlockChain.UpdateNode+  ( -- * Creating a Request+    UpdateNode (..),+    newUpdateNode,++    -- * Request Lenses+    updateNode_logPublishingConfiguration,+    updateNode_memberId,+    updateNode_networkId,+    updateNode_nodeId,++    -- * Destructuring the Response+    UpdateNodeResponse (..),+    newUpdateNodeResponse,++    -- * Response Lenses+    updateNodeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateNode' smart constructor.+data UpdateNode = UpdateNode'+  { -- | Configuration properties for publishing to Amazon CloudWatch Logs.+    logPublishingConfiguration :: Prelude.Maybe NodeLogPublishingConfiguration,+    -- | The unique identifier of the member that owns the node.+    --+    -- Applies only to Hyperledger Fabric.+    memberId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the network that the node is on.+    networkId :: Prelude.Text,+    -- | The unique identifier of the node.+    nodeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateNode' 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:+--+-- 'logPublishingConfiguration', 'updateNode_logPublishingConfiguration' - Configuration properties for publishing to Amazon CloudWatch Logs.+--+-- 'memberId', 'updateNode_memberId' - The unique identifier of the member that owns the node.+--+-- Applies only to Hyperledger Fabric.+--+-- 'networkId', 'updateNode_networkId' - The unique identifier of the network that the node is on.+--+-- 'nodeId', 'updateNode_nodeId' - The unique identifier of the node.+newUpdateNode ::+  -- | 'networkId'+  Prelude.Text ->+  -- | 'nodeId'+  Prelude.Text ->+  UpdateNode+newUpdateNode pNetworkId_ pNodeId_ =+  UpdateNode'+    { logPublishingConfiguration =+        Prelude.Nothing,+      memberId = Prelude.Nothing,+      networkId = pNetworkId_,+      nodeId = pNodeId_+    }++-- | Configuration properties for publishing to Amazon CloudWatch Logs.+updateNode_logPublishingConfiguration :: Lens.Lens' UpdateNode (Prelude.Maybe NodeLogPublishingConfiguration)+updateNode_logPublishingConfiguration = Lens.lens (\UpdateNode' {logPublishingConfiguration} -> logPublishingConfiguration) (\s@UpdateNode' {} a -> s {logPublishingConfiguration = a} :: UpdateNode)++-- | The unique identifier of the member that owns the node.+--+-- Applies only to Hyperledger Fabric.+updateNode_memberId :: Lens.Lens' UpdateNode (Prelude.Maybe Prelude.Text)+updateNode_memberId = Lens.lens (\UpdateNode' {memberId} -> memberId) (\s@UpdateNode' {} a -> s {memberId = a} :: UpdateNode)++-- | The unique identifier of the network that the node is on.+updateNode_networkId :: Lens.Lens' UpdateNode Prelude.Text+updateNode_networkId = Lens.lens (\UpdateNode' {networkId} -> networkId) (\s@UpdateNode' {} a -> s {networkId = a} :: UpdateNode)++-- | The unique identifier of the node.+updateNode_nodeId :: Lens.Lens' UpdateNode Prelude.Text+updateNode_nodeId = Lens.lens (\UpdateNode' {nodeId} -> nodeId) (\s@UpdateNode' {} a -> s {nodeId = a} :: UpdateNode)++instance Core.AWSRequest UpdateNode where+  type AWSResponse UpdateNode = UpdateNodeResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateNodeResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateNode where+  hashWithSalt _salt UpdateNode' {..} =+    _salt+      `Prelude.hashWithSalt` logPublishingConfiguration+      `Prelude.hashWithSalt` memberId+      `Prelude.hashWithSalt` networkId+      `Prelude.hashWithSalt` nodeId++instance Prelude.NFData UpdateNode where+  rnf UpdateNode' {..} =+    Prelude.rnf logPublishingConfiguration+      `Prelude.seq` Prelude.rnf memberId+      `Prelude.seq` Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf nodeId++instance Data.ToHeaders UpdateNode where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateNode where+  toJSON UpdateNode' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("LogPublishingConfiguration" Data..=)+              Prelude.<$> logPublishingConfiguration,+            ("MemberId" Data..=) Prelude.<$> memberId+          ]+      )++instance Data.ToPath UpdateNode where+  toPath UpdateNode' {..} =+    Prelude.mconcat+      [ "/networks/",+        Data.toBS networkId,+        "/nodes/",+        Data.toBS nodeId+      ]++instance Data.ToQuery UpdateNode where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateNodeResponse' smart constructor.+data UpdateNodeResponse = UpdateNodeResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateNodeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'updateNodeResponse_httpStatus' - The response's http status code.+newUpdateNodeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateNodeResponse+newUpdateNodeResponse pHttpStatus_ =+  UpdateNodeResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+updateNodeResponse_httpStatus :: Lens.Lens' UpdateNodeResponse Prelude.Int+updateNodeResponse_httpStatus = Lens.lens (\UpdateNodeResponse' {httpStatus} -> httpStatus) (\s@UpdateNodeResponse' {} a -> s {httpStatus = a} :: UpdateNodeResponse)++instance Prelude.NFData UpdateNodeResponse where+  rnf UpdateNodeResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/VoteOnProposal.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.ManagedBlockChain.VoteOnProposal+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Casts a vote for a specified @ProposalId@ on behalf of a member. The+-- member to vote as, specified by @VoterMemberId@, must be in the same+-- Amazon Web Services account as the principal that calls the action.+--+-- Applies only to Hyperledger Fabric.+module Amazonka.ManagedBlockChain.VoteOnProposal+  ( -- * Creating a Request+    VoteOnProposal (..),+    newVoteOnProposal,++    -- * Request Lenses+    voteOnProposal_networkId,+    voteOnProposal_proposalId,+    voteOnProposal_voterMemberId,+    voteOnProposal_vote,++    -- * Destructuring the Response+    VoteOnProposalResponse (..),+    newVoteOnProposalResponse,++    -- * Response Lenses+    voteOnProposalResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newVoteOnProposal' smart constructor.+data VoteOnProposal = VoteOnProposal'+  { -- | The unique identifier of the network.+    networkId :: Prelude.Text,+    -- | The unique identifier of the proposal.+    proposalId :: Prelude.Text,+    -- | The unique identifier of the member casting the vote.+    voterMemberId :: Prelude.Text,+    -- | The value of the vote.+    vote :: VoteValue+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VoteOnProposal' 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:+--+-- 'networkId', 'voteOnProposal_networkId' - The unique identifier of the network.+--+-- 'proposalId', 'voteOnProposal_proposalId' - The unique identifier of the proposal.+--+-- 'voterMemberId', 'voteOnProposal_voterMemberId' - The unique identifier of the member casting the vote.+--+-- 'vote', 'voteOnProposal_vote' - The value of the vote.+newVoteOnProposal ::+  -- | 'networkId'+  Prelude.Text ->+  -- | 'proposalId'+  Prelude.Text ->+  -- | 'voterMemberId'+  Prelude.Text ->+  -- | 'vote'+  VoteValue ->+  VoteOnProposal+newVoteOnProposal+  pNetworkId_+  pProposalId_+  pVoterMemberId_+  pVote_ =+    VoteOnProposal'+      { networkId = pNetworkId_,+        proposalId = pProposalId_,+        voterMemberId = pVoterMemberId_,+        vote = pVote_+      }++-- | The unique identifier of the network.+voteOnProposal_networkId :: Lens.Lens' VoteOnProposal Prelude.Text+voteOnProposal_networkId = Lens.lens (\VoteOnProposal' {networkId} -> networkId) (\s@VoteOnProposal' {} a -> s {networkId = a} :: VoteOnProposal)++-- | The unique identifier of the proposal.+voteOnProposal_proposalId :: Lens.Lens' VoteOnProposal Prelude.Text+voteOnProposal_proposalId = Lens.lens (\VoteOnProposal' {proposalId} -> proposalId) (\s@VoteOnProposal' {} a -> s {proposalId = a} :: VoteOnProposal)++-- | The unique identifier of the member casting the vote.+voteOnProposal_voterMemberId :: Lens.Lens' VoteOnProposal Prelude.Text+voteOnProposal_voterMemberId = Lens.lens (\VoteOnProposal' {voterMemberId} -> voterMemberId) (\s@VoteOnProposal' {} a -> s {voterMemberId = a} :: VoteOnProposal)++-- | The value of the vote.+voteOnProposal_vote :: Lens.Lens' VoteOnProposal VoteValue+voteOnProposal_vote = Lens.lens (\VoteOnProposal' {vote} -> vote) (\s@VoteOnProposal' {} a -> s {vote = a} :: VoteOnProposal)++instance Core.AWSRequest VoteOnProposal where+  type+    AWSResponse VoteOnProposal =+      VoteOnProposalResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          VoteOnProposalResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable VoteOnProposal where+  hashWithSalt _salt VoteOnProposal' {..} =+    _salt+      `Prelude.hashWithSalt` networkId+      `Prelude.hashWithSalt` proposalId+      `Prelude.hashWithSalt` voterMemberId+      `Prelude.hashWithSalt` vote++instance Prelude.NFData VoteOnProposal where+  rnf VoteOnProposal' {..} =+    Prelude.rnf networkId+      `Prelude.seq` Prelude.rnf proposalId+      `Prelude.seq` Prelude.rnf voterMemberId+      `Prelude.seq` Prelude.rnf vote++instance Data.ToHeaders VoteOnProposal where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON VoteOnProposal where+  toJSON VoteOnProposal' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("VoterMemberId" Data..= voterMemberId),+            Prelude.Just ("Vote" Data..= vote)+          ]+      )++instance Data.ToPath VoteOnProposal where+  toPath VoteOnProposal' {..} =+    Prelude.mconcat+      [ "/networks/",+        Data.toBS networkId,+        "/proposals/",+        Data.toBS proposalId,+        "/votes"+      ]++instance Data.ToQuery VoteOnProposal where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newVoteOnProposalResponse' smart constructor.+data VoteOnProposalResponse = VoteOnProposalResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VoteOnProposalResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'voteOnProposalResponse_httpStatus' - The response's http status code.+newVoteOnProposalResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  VoteOnProposalResponse+newVoteOnProposalResponse pHttpStatus_ =+  VoteOnProposalResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+voteOnProposalResponse_httpStatus :: Lens.Lens' VoteOnProposalResponse Prelude.Int+voteOnProposalResponse_httpStatus = Lens.lens (\VoteOnProposalResponse' {httpStatus} -> httpStatus) (\s@VoteOnProposalResponse' {} a -> s {httpStatus = a} :: VoteOnProposalResponse)++instance Prelude.NFData VoteOnProposalResponse where+  rnf VoteOnProposalResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/ManagedBlockChain/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.ManagedBlockChain.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.ManagedBlockChain.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ManagedBlockChain.Lens+import Amazonka.ManagedBlockChain.Types+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.ManagedBlockChain+import Test.Amazonka.ManagedBlockChain.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "ManagedBlockChain"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/ManagedBlockChain.hs view
@@ -0,0 +1,578 @@+{-# 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.ManagedBlockChain+-- 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.ManagedBlockChain where++import Amazonka.ManagedBlockChain+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.ManagedBlockChain.Internal+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"+--         [ requestCreateAccessor $+--             newCreateAccessor+--+--         , requestCreateMember $+--             newCreateMember+--+--         , requestCreateNetwork $+--             newCreateNetwork+--+--         , requestCreateNode $+--             newCreateNode+--+--         , requestCreateProposal $+--             newCreateProposal+--+--         , requestDeleteAccessor $+--             newDeleteAccessor+--+--         , requestDeleteMember $+--             newDeleteMember+--+--         , requestDeleteNode $+--             newDeleteNode+--+--         , requestGetAccessor $+--             newGetAccessor+--+--         , requestGetMember $+--             newGetMember+--+--         , requestGetNetwork $+--             newGetNetwork+--+--         , requestGetNode $+--             newGetNode+--+--         , requestGetProposal $+--             newGetProposal+--+--         , requestListAccessors $+--             newListAccessors+--+--         , requestListInvitations $+--             newListInvitations+--+--         , requestListMembers $+--             newListMembers+--+--         , requestListNetworks $+--             newListNetworks+--+--         , requestListNodes $+--             newListNodes+--+--         , requestListProposalVotes $+--             newListProposalVotes+--+--         , requestListProposals $+--             newListProposals+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestRejectInvitation $+--             newRejectInvitation+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateMember $+--             newUpdateMember+--+--         , requestUpdateNode $+--             newUpdateNode+--+--         , requestVoteOnProposal $+--             newVoteOnProposal+--+--           ]++--     , testGroup "response"+--         [ responseCreateAccessor $+--             newCreateAccessorResponse+--+--         , responseCreateMember $+--             newCreateMemberResponse+--+--         , responseCreateNetwork $+--             newCreateNetworkResponse+--+--         , responseCreateNode $+--             newCreateNodeResponse+--+--         , responseCreateProposal $+--             newCreateProposalResponse+--+--         , responseDeleteAccessor $+--             newDeleteAccessorResponse+--+--         , responseDeleteMember $+--             newDeleteMemberResponse+--+--         , responseDeleteNode $+--             newDeleteNodeResponse+--+--         , responseGetAccessor $+--             newGetAccessorResponse+--+--         , responseGetMember $+--             newGetMemberResponse+--+--         , responseGetNetwork $+--             newGetNetworkResponse+--+--         , responseGetNode $+--             newGetNodeResponse+--+--         , responseGetProposal $+--             newGetProposalResponse+--+--         , responseListAccessors $+--             newListAccessorsResponse+--+--         , responseListInvitations $+--             newListInvitationsResponse+--+--         , responseListMembers $+--             newListMembersResponse+--+--         , responseListNetworks $+--             newListNetworksResponse+--+--         , responseListNodes $+--             newListNodesResponse+--+--         , responseListProposalVotes $+--             newListProposalVotesResponse+--+--         , responseListProposals $+--             newListProposalsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseRejectInvitation $+--             newRejectInvitationResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateMember $+--             newUpdateMemberResponse+--+--         , responseUpdateNode $+--             newUpdateNodeResponse+--+--         , responseVoteOnProposal $+--             newVoteOnProposalResponse+--+--           ]+--     ]++-- Requests++requestCreateAccessor :: CreateAccessor -> TestTree+requestCreateAccessor =+  req+    "CreateAccessor"+    "fixture/CreateAccessor.yaml"++requestCreateMember :: CreateMember -> TestTree+requestCreateMember =+  req+    "CreateMember"+    "fixture/CreateMember.yaml"++requestCreateNetwork :: CreateNetwork -> TestTree+requestCreateNetwork =+  req+    "CreateNetwork"+    "fixture/CreateNetwork.yaml"++requestCreateNode :: CreateNode -> TestTree+requestCreateNode =+  req+    "CreateNode"+    "fixture/CreateNode.yaml"++requestCreateProposal :: CreateProposal -> TestTree+requestCreateProposal =+  req+    "CreateProposal"+    "fixture/CreateProposal.yaml"++requestDeleteAccessor :: DeleteAccessor -> TestTree+requestDeleteAccessor =+  req+    "DeleteAccessor"+    "fixture/DeleteAccessor.yaml"++requestDeleteMember :: DeleteMember -> TestTree+requestDeleteMember =+  req+    "DeleteMember"+    "fixture/DeleteMember.yaml"++requestDeleteNode :: DeleteNode -> TestTree+requestDeleteNode =+  req+    "DeleteNode"+    "fixture/DeleteNode.yaml"++requestGetAccessor :: GetAccessor -> TestTree+requestGetAccessor =+  req+    "GetAccessor"+    "fixture/GetAccessor.yaml"++requestGetMember :: GetMember -> TestTree+requestGetMember =+  req+    "GetMember"+    "fixture/GetMember.yaml"++requestGetNetwork :: GetNetwork -> TestTree+requestGetNetwork =+  req+    "GetNetwork"+    "fixture/GetNetwork.yaml"++requestGetNode :: GetNode -> TestTree+requestGetNode =+  req+    "GetNode"+    "fixture/GetNode.yaml"++requestGetProposal :: GetProposal -> TestTree+requestGetProposal =+  req+    "GetProposal"+    "fixture/GetProposal.yaml"++requestListAccessors :: ListAccessors -> TestTree+requestListAccessors =+  req+    "ListAccessors"+    "fixture/ListAccessors.yaml"++requestListInvitations :: ListInvitations -> TestTree+requestListInvitations =+  req+    "ListInvitations"+    "fixture/ListInvitations.yaml"++requestListMembers :: ListMembers -> TestTree+requestListMembers =+  req+    "ListMembers"+    "fixture/ListMembers.yaml"++requestListNetworks :: ListNetworks -> TestTree+requestListNetworks =+  req+    "ListNetworks"+    "fixture/ListNetworks.yaml"++requestListNodes :: ListNodes -> TestTree+requestListNodes =+  req+    "ListNodes"+    "fixture/ListNodes.yaml"++requestListProposalVotes :: ListProposalVotes -> TestTree+requestListProposalVotes =+  req+    "ListProposalVotes"+    "fixture/ListProposalVotes.yaml"++requestListProposals :: ListProposals -> TestTree+requestListProposals =+  req+    "ListProposals"+    "fixture/ListProposals.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestRejectInvitation :: RejectInvitation -> TestTree+requestRejectInvitation =+  req+    "RejectInvitation"+    "fixture/RejectInvitation.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateMember :: UpdateMember -> TestTree+requestUpdateMember =+  req+    "UpdateMember"+    "fixture/UpdateMember.yaml"++requestUpdateNode :: UpdateNode -> TestTree+requestUpdateNode =+  req+    "UpdateNode"+    "fixture/UpdateNode.yaml"++requestVoteOnProposal :: VoteOnProposal -> TestTree+requestVoteOnProposal =+  req+    "VoteOnProposal"+    "fixture/VoteOnProposal.yaml"++-- Responses++responseCreateAccessor :: CreateAccessorResponse -> TestTree+responseCreateAccessor =+  res+    "CreateAccessorResponse"+    "fixture/CreateAccessorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateAccessor)++responseCreateMember :: CreateMemberResponse -> TestTree+responseCreateMember =+  res+    "CreateMemberResponse"+    "fixture/CreateMemberResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateMember)++responseCreateNetwork :: CreateNetworkResponse -> TestTree+responseCreateNetwork =+  res+    "CreateNetworkResponse"+    "fixture/CreateNetworkResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateNetwork)++responseCreateNode :: CreateNodeResponse -> TestTree+responseCreateNode =+  res+    "CreateNodeResponse"+    "fixture/CreateNodeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateNode)++responseCreateProposal :: CreateProposalResponse -> TestTree+responseCreateProposal =+  res+    "CreateProposalResponse"+    "fixture/CreateProposalResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateProposal)++responseDeleteAccessor :: DeleteAccessorResponse -> TestTree+responseDeleteAccessor =+  res+    "DeleteAccessorResponse"+    "fixture/DeleteAccessorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAccessor)++responseDeleteMember :: DeleteMemberResponse -> TestTree+responseDeleteMember =+  res+    "DeleteMemberResponse"+    "fixture/DeleteMemberResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteMember)++responseDeleteNode :: DeleteNodeResponse -> TestTree+responseDeleteNode =+  res+    "DeleteNodeResponse"+    "fixture/DeleteNodeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteNode)++responseGetAccessor :: GetAccessorResponse -> TestTree+responseGetAccessor =+  res+    "GetAccessorResponse"+    "fixture/GetAccessorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetAccessor)++responseGetMember :: GetMemberResponse -> TestTree+responseGetMember =+  res+    "GetMemberResponse"+    "fixture/GetMemberResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetMember)++responseGetNetwork :: GetNetworkResponse -> TestTree+responseGetNetwork =+  res+    "GetNetworkResponse"+    "fixture/GetNetworkResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetNetwork)++responseGetNode :: GetNodeResponse -> TestTree+responseGetNode =+  res+    "GetNodeResponse"+    "fixture/GetNodeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetNode)++responseGetProposal :: GetProposalResponse -> TestTree+responseGetProposal =+  res+    "GetProposalResponse"+    "fixture/GetProposalResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetProposal)++responseListAccessors :: ListAccessorsResponse -> TestTree+responseListAccessors =+  res+    "ListAccessorsResponse"+    "fixture/ListAccessorsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAccessors)++responseListInvitations :: ListInvitationsResponse -> TestTree+responseListInvitations =+  res+    "ListInvitationsResponse"+    "fixture/ListInvitationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListInvitations)++responseListMembers :: ListMembersResponse -> TestTree+responseListMembers =+  res+    "ListMembersResponse"+    "fixture/ListMembersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListMembers)++responseListNetworks :: ListNetworksResponse -> TestTree+responseListNetworks =+  res+    "ListNetworksResponse"+    "fixture/ListNetworksResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListNetworks)++responseListNodes :: ListNodesResponse -> TestTree+responseListNodes =+  res+    "ListNodesResponse"+    "fixture/ListNodesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListNodes)++responseListProposalVotes :: ListProposalVotesResponse -> TestTree+responseListProposalVotes =+  res+    "ListProposalVotesResponse"+    "fixture/ListProposalVotesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListProposalVotes)++responseListProposals :: ListProposalsResponse -> TestTree+responseListProposals =+  res+    "ListProposalsResponse"+    "fixture/ListProposalsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListProposals)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseRejectInvitation :: RejectInvitationResponse -> TestTree+responseRejectInvitation =+  res+    "RejectInvitationResponse"+    "fixture/RejectInvitationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RejectInvitation)++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)++responseUpdateMember :: UpdateMemberResponse -> TestTree+responseUpdateMember =+  res+    "UpdateMemberResponse"+    "fixture/UpdateMemberResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateMember)++responseUpdateNode :: UpdateNodeResponse -> TestTree+responseUpdateNode =+  res+    "UpdateNodeResponse"+    "fixture/UpdateNodeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateNode)++responseVoteOnProposal :: VoteOnProposalResponse -> TestTree+responseVoteOnProposal =+  res+    "VoteOnProposalResponse"+    "fixture/VoteOnProposalResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy VoteOnProposal)
+ test/Test/Amazonka/ManagedBlockChain.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.ManagedBlockChain+-- 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.ManagedBlockChain+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/ManagedBlockChain/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.ManagedBlockChain.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.ManagedBlockChain.Internal where