packages feed

amazonka-dataexchange (empty) → 2.0

raw patch · 167 files changed

+18671/−0 lines, 167 filesdep +amazonka-coredep +amazonka-dataexchangedep +amazonka-test

Dependencies added: amazonka-core, amazonka-dataexchange, 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 Data Exchange SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2017-07-25@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-dataexchange)+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.DataExchange](http://hackage.haskell.org/package/amazonka-dataexchange/docs/Amazonka-DataExchange.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-dataexchange` 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-dataexchange.cabal view
@@ -0,0 +1,180 @@+cabal-version:      2.2+name:               amazonka-dataexchange+version:            2.0+synopsis:           Amazon Data Exchange 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 @2017-07-25@ 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.DataExchange.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.DataExchange" 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-dataexchange++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.DataExchange+    Amazonka.DataExchange.CancelJob+    Amazonka.DataExchange.CreateDataSet+    Amazonka.DataExchange.CreateEventAction+    Amazonka.DataExchange.CreateJob+    Amazonka.DataExchange.CreateRevision+    Amazonka.DataExchange.DeleteAsset+    Amazonka.DataExchange.DeleteDataSet+    Amazonka.DataExchange.DeleteEventAction+    Amazonka.DataExchange.DeleteRevision+    Amazonka.DataExchange.GetAsset+    Amazonka.DataExchange.GetDataSet+    Amazonka.DataExchange.GetEventAction+    Amazonka.DataExchange.GetJob+    Amazonka.DataExchange.GetRevision+    Amazonka.DataExchange.Lens+    Amazonka.DataExchange.ListDataSetRevisions+    Amazonka.DataExchange.ListDataSets+    Amazonka.DataExchange.ListEventActions+    Amazonka.DataExchange.ListJobs+    Amazonka.DataExchange.ListRevisionAssets+    Amazonka.DataExchange.ListTagsForResource+    Amazonka.DataExchange.RevokeRevision+    Amazonka.DataExchange.SendApiAsset+    Amazonka.DataExchange.StartJob+    Amazonka.DataExchange.TagResource+    Amazonka.DataExchange.Types+    Amazonka.DataExchange.Types.Action+    Amazonka.DataExchange.Types.ApiGatewayApiAsset+    Amazonka.DataExchange.Types.AssetDestinationEntry+    Amazonka.DataExchange.Types.AssetDetails+    Amazonka.DataExchange.Types.AssetEntry+    Amazonka.DataExchange.Types.AssetSourceEntry+    Amazonka.DataExchange.Types.AssetType+    Amazonka.DataExchange.Types.AutoExportRevisionDestinationEntry+    Amazonka.DataExchange.Types.AutoExportRevisionToS3RequestDetails+    Amazonka.DataExchange.Types.Code+    Amazonka.DataExchange.Types.CreateS3DataAccessFromS3BucketRequestDetails+    Amazonka.DataExchange.Types.CreateS3DataAccessFromS3BucketResponseDetails+    Amazonka.DataExchange.Types.DatabaseLFTagPolicy+    Amazonka.DataExchange.Types.DatabaseLFTagPolicyAndPermissions+    Amazonka.DataExchange.Types.DatabaseLFTagPolicyPermission+    Amazonka.DataExchange.Types.DataSetEntry+    Amazonka.DataExchange.Types.Details+    Amazonka.DataExchange.Types.Event+    Amazonka.DataExchange.Types.EventActionEntry+    Amazonka.DataExchange.Types.ExportAssetsToS3RequestDetails+    Amazonka.DataExchange.Types.ExportAssetsToS3ResponseDetails+    Amazonka.DataExchange.Types.ExportAssetToSignedUrlRequestDetails+    Amazonka.DataExchange.Types.ExportAssetToSignedUrlResponseDetails+    Amazonka.DataExchange.Types.ExportRevisionsToS3RequestDetails+    Amazonka.DataExchange.Types.ExportRevisionsToS3ResponseDetails+    Amazonka.DataExchange.Types.ExportServerSideEncryption+    Amazonka.DataExchange.Types.ImportAssetFromApiGatewayApiRequestDetails+    Amazonka.DataExchange.Types.ImportAssetFromApiGatewayApiResponseDetails+    Amazonka.DataExchange.Types.ImportAssetFromSignedUrlJobErrorDetails+    Amazonka.DataExchange.Types.ImportAssetFromSignedUrlRequestDetails+    Amazonka.DataExchange.Types.ImportAssetFromSignedUrlResponseDetails+    Amazonka.DataExchange.Types.ImportAssetsFromLakeFormationTagPolicyRequestDetails+    Amazonka.DataExchange.Types.ImportAssetsFromLakeFormationTagPolicyResponseDetails+    Amazonka.DataExchange.Types.ImportAssetsFromRedshiftDataSharesRequestDetails+    Amazonka.DataExchange.Types.ImportAssetsFromRedshiftDataSharesResponseDetails+    Amazonka.DataExchange.Types.ImportAssetsFromS3RequestDetails+    Amazonka.DataExchange.Types.ImportAssetsFromS3ResponseDetails+    Amazonka.DataExchange.Types.JobEntry+    Amazonka.DataExchange.Types.JobError+    Amazonka.DataExchange.Types.JobErrorLimitName+    Amazonka.DataExchange.Types.JobErrorResourceTypes+    Amazonka.DataExchange.Types.LakeFormationDataPermissionAsset+    Amazonka.DataExchange.Types.LakeFormationDataPermissionDetails+    Amazonka.DataExchange.Types.LakeFormationDataPermissionType+    Amazonka.DataExchange.Types.LFPermission+    Amazonka.DataExchange.Types.LFResourceDetails+    Amazonka.DataExchange.Types.LFResourceType+    Amazonka.DataExchange.Types.LFTag+    Amazonka.DataExchange.Types.LFTagPolicyDetails+    Amazonka.DataExchange.Types.Origin+    Amazonka.DataExchange.Types.OriginDetails+    Amazonka.DataExchange.Types.ProtocolType+    Amazonka.DataExchange.Types.RedshiftDataShareAsset+    Amazonka.DataExchange.Types.RedshiftDataShareAssetSourceEntry+    Amazonka.DataExchange.Types.RequestDetails+    Amazonka.DataExchange.Types.ResponseDetails+    Amazonka.DataExchange.Types.RevisionDestinationEntry+    Amazonka.DataExchange.Types.RevisionEntry+    Amazonka.DataExchange.Types.RevisionPublished+    Amazonka.DataExchange.Types.S3DataAccessAsset+    Amazonka.DataExchange.Types.S3DataAccessAssetSourceEntry+    Amazonka.DataExchange.Types.S3SnapshotAsset+    Amazonka.DataExchange.Types.ServerSideEncryptionTypes+    Amazonka.DataExchange.Types.State+    Amazonka.DataExchange.Types.TableLFTagPolicy+    Amazonka.DataExchange.Types.TableLFTagPolicyAndPermissions+    Amazonka.DataExchange.Types.TableTagPolicyLFPermission+    Amazonka.DataExchange.Types.Type+    Amazonka.DataExchange.UntagResource+    Amazonka.DataExchange.UpdateAsset+    Amazonka.DataExchange.UpdateDataSet+    Amazonka.DataExchange.UpdateEventAction+    Amazonka.DataExchange.UpdateRevision+    Amazonka.DataExchange.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-dataexchange-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.DataExchange+    Test.Amazonka.DataExchange.Internal+    Test.Amazonka.Gen.DataExchange++  build-depends:+    , amazonka-core          >=2.0 && <2.1+    , amazonka-dataexchange+    , amazonka-test          >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CancelJob.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/CancelJobResponse.proto view
+ fixture/CreateDataSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/CreateDataSetResponse.proto view
+ fixture/CreateEventAction.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/CreateEventActionResponse.proto view
+ fixture/CreateJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/CreateJobResponse.proto view
+ fixture/CreateRevision.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/CreateRevisionResponse.proto view
+ fixture/DeleteAsset.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/DeleteAssetResponse.proto view
+ fixture/DeleteDataSet.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/DeleteDataSetResponse.proto view
+ fixture/DeleteEventAction.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/DeleteEventActionResponse.proto view
+ fixture/DeleteRevision.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/DeleteRevisionResponse.proto view
+ fixture/GetAsset.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/GetAssetResponse.proto view
+ fixture/GetDataSet.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/GetDataSetResponse.proto view
+ fixture/GetEventAction.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/GetEventActionResponse.proto view
+ fixture/GetJob.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/GetJobResponse.proto view
+ fixture/GetRevision.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/GetRevisionResponse.proto view
+ fixture/ListDataSetRevisions.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/ListDataSetRevisionsResponse.proto view
+ fixture/ListDataSets.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/ListDataSetsResponse.proto view
+ fixture/ListEventActions.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/ListEventActionsResponse.proto view
+ fixture/ListJobs.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/ListJobsResponse.proto view
+ fixture/ListRevisionAssets.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/ListRevisionAssetsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/RevokeRevision.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/RevokeRevisionResponse.proto view
+ fixture/SendApiAsset.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/SendApiAssetResponse.proto view
+ fixture/StartJob.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/StartJobResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/UpdateAsset.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/UpdateAssetResponse.proto view
+ fixture/UpdateDataSet.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/UpdateDataSetResponse.proto view
+ fixture/UpdateEventAction.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/UpdateEventActionResponse.proto view
+ fixture/UpdateRevision.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dataexchange/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dataexchange.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/UpdateRevisionResponse.proto view
+ gen/Amazonka/DataExchange.hs view
@@ -0,0 +1,566 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.DataExchange+-- 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 @2017-07-25@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- AWS Data Exchange is a service that makes it easy for AWS customers to+-- exchange data in the cloud. You can use the AWS Data Exchange APIs to+-- create, update, manage, and access file-based data set in the AWS Cloud.+--+-- As a subscriber, you can view and access the data sets that you have an+-- entitlement to through a subscription. You can use the APIs to download+-- or copy your entitled data sets to Amazon Simple Storage Service (Amazon+-- S3) for use across a variety of AWS analytics and machine learning+-- services.+--+-- As a provider, you can create and manage your data sets that you would+-- like to publish to a product. Being able to package and provide your+-- data sets into products requires a few steps to determine eligibility.+-- For more information, visit the /AWS Data Exchange User Guide/.+--+-- A data set is a collection of data that can be changed or updated over+-- time. Data sets can be updated using revisions, which represent a new+-- version or incremental change to a data set. A revision contains one or+-- more assets. An asset in AWS Data Exchange is a piece of data that can+-- be stored as an Amazon S3 object, Redshift datashare, API Gateway API,+-- AWS Lake Formation data permission, or Amazon S3 data access. The asset+-- can be a structured data file, an image file, or some other data file.+-- Jobs are asynchronous import or export operations used to create or copy+-- assets.+module Amazonka.DataExchange+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceLimitExceededException+    _ServiceLimitExceededException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CancelJob+    CancelJob (CancelJob'),+    newCancelJob,+    CancelJobResponse (CancelJobResponse'),+    newCancelJobResponse,++    -- ** CreateDataSet+    CreateDataSet (CreateDataSet'),+    newCreateDataSet,+    CreateDataSetResponse (CreateDataSetResponse'),+    newCreateDataSetResponse,++    -- ** CreateEventAction+    CreateEventAction (CreateEventAction'),+    newCreateEventAction,+    CreateEventActionResponse (CreateEventActionResponse'),+    newCreateEventActionResponse,++    -- ** CreateJob+    CreateJob (CreateJob'),+    newCreateJob,+    CreateJobResponse (CreateJobResponse'),+    newCreateJobResponse,++    -- ** CreateRevision+    CreateRevision (CreateRevision'),+    newCreateRevision,+    CreateRevisionResponse (CreateRevisionResponse'),+    newCreateRevisionResponse,++    -- ** DeleteAsset+    DeleteAsset (DeleteAsset'),+    newDeleteAsset,+    DeleteAssetResponse (DeleteAssetResponse'),+    newDeleteAssetResponse,++    -- ** DeleteDataSet+    DeleteDataSet (DeleteDataSet'),+    newDeleteDataSet,+    DeleteDataSetResponse (DeleteDataSetResponse'),+    newDeleteDataSetResponse,++    -- ** DeleteEventAction+    DeleteEventAction (DeleteEventAction'),+    newDeleteEventAction,+    DeleteEventActionResponse (DeleteEventActionResponse'),+    newDeleteEventActionResponse,++    -- ** DeleteRevision+    DeleteRevision (DeleteRevision'),+    newDeleteRevision,+    DeleteRevisionResponse (DeleteRevisionResponse'),+    newDeleteRevisionResponse,++    -- ** GetAsset+    GetAsset (GetAsset'),+    newGetAsset,+    GetAssetResponse (GetAssetResponse'),+    newGetAssetResponse,++    -- ** GetDataSet+    GetDataSet (GetDataSet'),+    newGetDataSet,+    GetDataSetResponse (GetDataSetResponse'),+    newGetDataSetResponse,++    -- ** GetEventAction+    GetEventAction (GetEventAction'),+    newGetEventAction,+    GetEventActionResponse (GetEventActionResponse'),+    newGetEventActionResponse,++    -- ** GetJob+    GetJob (GetJob'),+    newGetJob,+    GetJobResponse (GetJobResponse'),+    newGetJobResponse,++    -- ** GetRevision+    GetRevision (GetRevision'),+    newGetRevision,+    GetRevisionResponse (GetRevisionResponse'),+    newGetRevisionResponse,++    -- ** ListDataSetRevisions (Paginated)+    ListDataSetRevisions (ListDataSetRevisions'),+    newListDataSetRevisions,+    ListDataSetRevisionsResponse (ListDataSetRevisionsResponse'),+    newListDataSetRevisionsResponse,++    -- ** ListDataSets (Paginated)+    ListDataSets (ListDataSets'),+    newListDataSets,+    ListDataSetsResponse (ListDataSetsResponse'),+    newListDataSetsResponse,++    -- ** ListEventActions (Paginated)+    ListEventActions (ListEventActions'),+    newListEventActions,+    ListEventActionsResponse (ListEventActionsResponse'),+    newListEventActionsResponse,++    -- ** ListJobs (Paginated)+    ListJobs (ListJobs'),+    newListJobs,+    ListJobsResponse (ListJobsResponse'),+    newListJobsResponse,++    -- ** ListRevisionAssets (Paginated)+    ListRevisionAssets (ListRevisionAssets'),+    newListRevisionAssets,+    ListRevisionAssetsResponse (ListRevisionAssetsResponse'),+    newListRevisionAssetsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** RevokeRevision+    RevokeRevision (RevokeRevision'),+    newRevokeRevision,+    RevokeRevisionResponse (RevokeRevisionResponse'),+    newRevokeRevisionResponse,++    -- ** SendApiAsset+    SendApiAsset (SendApiAsset'),+    newSendApiAsset,+    SendApiAssetResponse (SendApiAssetResponse'),+    newSendApiAssetResponse,++    -- ** StartJob+    StartJob (StartJob'),+    newStartJob,+    StartJobResponse (StartJobResponse'),+    newStartJobResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateAsset+    UpdateAsset (UpdateAsset'),+    newUpdateAsset,+    UpdateAssetResponse (UpdateAssetResponse'),+    newUpdateAssetResponse,++    -- ** UpdateDataSet+    UpdateDataSet (UpdateDataSet'),+    newUpdateDataSet,+    UpdateDataSetResponse (UpdateDataSetResponse'),+    newUpdateDataSetResponse,++    -- ** UpdateEventAction+    UpdateEventAction (UpdateEventAction'),+    newUpdateEventAction,+    UpdateEventActionResponse (UpdateEventActionResponse'),+    newUpdateEventActionResponse,++    -- ** UpdateRevision+    UpdateRevision (UpdateRevision'),+    newUpdateRevision,+    UpdateRevisionResponse (UpdateRevisionResponse'),+    newUpdateRevisionResponse,++    -- * Types++    -- ** AssetType+    AssetType (..),++    -- ** Code+    Code (..),++    -- ** DatabaseLFTagPolicyPermission+    DatabaseLFTagPolicyPermission (..),++    -- ** JobErrorLimitName+    JobErrorLimitName (..),++    -- ** JobErrorResourceTypes+    JobErrorResourceTypes (..),++    -- ** LFPermission+    LFPermission (..),++    -- ** LFResourceType+    LFResourceType (..),++    -- ** LakeFormationDataPermissionType+    LakeFormationDataPermissionType (..),++    -- ** Origin+    Origin (..),++    -- ** ProtocolType+    ProtocolType (..),++    -- ** ServerSideEncryptionTypes+    ServerSideEncryptionTypes (..),++    -- ** State+    State (..),++    -- ** TableTagPolicyLFPermission+    TableTagPolicyLFPermission (..),++    -- ** Type+    Type (..),++    -- ** Action+    Action (Action'),+    newAction,++    -- ** ApiGatewayApiAsset+    ApiGatewayApiAsset (ApiGatewayApiAsset'),+    newApiGatewayApiAsset,++    -- ** AssetDestinationEntry+    AssetDestinationEntry (AssetDestinationEntry'),+    newAssetDestinationEntry,++    -- ** AssetDetails+    AssetDetails (AssetDetails'),+    newAssetDetails,++    -- ** AssetEntry+    AssetEntry (AssetEntry'),+    newAssetEntry,++    -- ** AssetSourceEntry+    AssetSourceEntry (AssetSourceEntry'),+    newAssetSourceEntry,++    -- ** AutoExportRevisionDestinationEntry+    AutoExportRevisionDestinationEntry (AutoExportRevisionDestinationEntry'),+    newAutoExportRevisionDestinationEntry,++    -- ** AutoExportRevisionToS3RequestDetails+    AutoExportRevisionToS3RequestDetails (AutoExportRevisionToS3RequestDetails'),+    newAutoExportRevisionToS3RequestDetails,++    -- ** CreateS3DataAccessFromS3BucketRequestDetails+    CreateS3DataAccessFromS3BucketRequestDetails (CreateS3DataAccessFromS3BucketRequestDetails'),+    newCreateS3DataAccessFromS3BucketRequestDetails,++    -- ** CreateS3DataAccessFromS3BucketResponseDetails+    CreateS3DataAccessFromS3BucketResponseDetails (CreateS3DataAccessFromS3BucketResponseDetails'),+    newCreateS3DataAccessFromS3BucketResponseDetails,++    -- ** DataSetEntry+    DataSetEntry (DataSetEntry'),+    newDataSetEntry,++    -- ** DatabaseLFTagPolicy+    DatabaseLFTagPolicy (DatabaseLFTagPolicy'),+    newDatabaseLFTagPolicy,++    -- ** DatabaseLFTagPolicyAndPermissions+    DatabaseLFTagPolicyAndPermissions (DatabaseLFTagPolicyAndPermissions'),+    newDatabaseLFTagPolicyAndPermissions,++    -- ** Details+    Details (Details'),+    newDetails,++    -- ** Event+    Event (Event'),+    newEvent,++    -- ** EventActionEntry+    EventActionEntry (EventActionEntry'),+    newEventActionEntry,++    -- ** ExportAssetToSignedUrlRequestDetails+    ExportAssetToSignedUrlRequestDetails (ExportAssetToSignedUrlRequestDetails'),+    newExportAssetToSignedUrlRequestDetails,++    -- ** ExportAssetToSignedUrlResponseDetails+    ExportAssetToSignedUrlResponseDetails (ExportAssetToSignedUrlResponseDetails'),+    newExportAssetToSignedUrlResponseDetails,++    -- ** ExportAssetsToS3RequestDetails+    ExportAssetsToS3RequestDetails (ExportAssetsToS3RequestDetails'),+    newExportAssetsToS3RequestDetails,++    -- ** ExportAssetsToS3ResponseDetails+    ExportAssetsToS3ResponseDetails (ExportAssetsToS3ResponseDetails'),+    newExportAssetsToS3ResponseDetails,++    -- ** ExportRevisionsToS3RequestDetails+    ExportRevisionsToS3RequestDetails (ExportRevisionsToS3RequestDetails'),+    newExportRevisionsToS3RequestDetails,++    -- ** ExportRevisionsToS3ResponseDetails+    ExportRevisionsToS3ResponseDetails (ExportRevisionsToS3ResponseDetails'),+    newExportRevisionsToS3ResponseDetails,++    -- ** ExportServerSideEncryption+    ExportServerSideEncryption (ExportServerSideEncryption'),+    newExportServerSideEncryption,++    -- ** ImportAssetFromApiGatewayApiRequestDetails+    ImportAssetFromApiGatewayApiRequestDetails (ImportAssetFromApiGatewayApiRequestDetails'),+    newImportAssetFromApiGatewayApiRequestDetails,++    -- ** ImportAssetFromApiGatewayApiResponseDetails+    ImportAssetFromApiGatewayApiResponseDetails (ImportAssetFromApiGatewayApiResponseDetails'),+    newImportAssetFromApiGatewayApiResponseDetails,++    -- ** ImportAssetFromSignedUrlJobErrorDetails+    ImportAssetFromSignedUrlJobErrorDetails (ImportAssetFromSignedUrlJobErrorDetails'),+    newImportAssetFromSignedUrlJobErrorDetails,++    -- ** ImportAssetFromSignedUrlRequestDetails+    ImportAssetFromSignedUrlRequestDetails (ImportAssetFromSignedUrlRequestDetails'),+    newImportAssetFromSignedUrlRequestDetails,++    -- ** ImportAssetFromSignedUrlResponseDetails+    ImportAssetFromSignedUrlResponseDetails (ImportAssetFromSignedUrlResponseDetails'),+    newImportAssetFromSignedUrlResponseDetails,++    -- ** ImportAssetsFromLakeFormationTagPolicyRequestDetails+    ImportAssetsFromLakeFormationTagPolicyRequestDetails (ImportAssetsFromLakeFormationTagPolicyRequestDetails'),+    newImportAssetsFromLakeFormationTagPolicyRequestDetails,++    -- ** ImportAssetsFromLakeFormationTagPolicyResponseDetails+    ImportAssetsFromLakeFormationTagPolicyResponseDetails (ImportAssetsFromLakeFormationTagPolicyResponseDetails'),+    newImportAssetsFromLakeFormationTagPolicyResponseDetails,++    -- ** ImportAssetsFromRedshiftDataSharesRequestDetails+    ImportAssetsFromRedshiftDataSharesRequestDetails (ImportAssetsFromRedshiftDataSharesRequestDetails'),+    newImportAssetsFromRedshiftDataSharesRequestDetails,++    -- ** ImportAssetsFromRedshiftDataSharesResponseDetails+    ImportAssetsFromRedshiftDataSharesResponseDetails (ImportAssetsFromRedshiftDataSharesResponseDetails'),+    newImportAssetsFromRedshiftDataSharesResponseDetails,++    -- ** ImportAssetsFromS3RequestDetails+    ImportAssetsFromS3RequestDetails (ImportAssetsFromS3RequestDetails'),+    newImportAssetsFromS3RequestDetails,++    -- ** ImportAssetsFromS3ResponseDetails+    ImportAssetsFromS3ResponseDetails (ImportAssetsFromS3ResponseDetails'),+    newImportAssetsFromS3ResponseDetails,++    -- ** JobEntry+    JobEntry (JobEntry'),+    newJobEntry,++    -- ** JobError+    JobError (JobError'),+    newJobError,++    -- ** LFResourceDetails+    LFResourceDetails (LFResourceDetails'),+    newLFResourceDetails,++    -- ** LFTag+    LFTag (LFTag'),+    newLFTag,++    -- ** LFTagPolicyDetails+    LFTagPolicyDetails (LFTagPolicyDetails'),+    newLFTagPolicyDetails,++    -- ** LakeFormationDataPermissionAsset+    LakeFormationDataPermissionAsset (LakeFormationDataPermissionAsset'),+    newLakeFormationDataPermissionAsset,++    -- ** LakeFormationDataPermissionDetails+    LakeFormationDataPermissionDetails (LakeFormationDataPermissionDetails'),+    newLakeFormationDataPermissionDetails,++    -- ** OriginDetails+    OriginDetails (OriginDetails'),+    newOriginDetails,++    -- ** RedshiftDataShareAsset+    RedshiftDataShareAsset (RedshiftDataShareAsset'),+    newRedshiftDataShareAsset,++    -- ** RedshiftDataShareAssetSourceEntry+    RedshiftDataShareAssetSourceEntry (RedshiftDataShareAssetSourceEntry'),+    newRedshiftDataShareAssetSourceEntry,++    -- ** RequestDetails+    RequestDetails (RequestDetails'),+    newRequestDetails,++    -- ** ResponseDetails+    ResponseDetails (ResponseDetails'),+    newResponseDetails,++    -- ** RevisionDestinationEntry+    RevisionDestinationEntry (RevisionDestinationEntry'),+    newRevisionDestinationEntry,++    -- ** RevisionEntry+    RevisionEntry (RevisionEntry'),+    newRevisionEntry,++    -- ** RevisionPublished+    RevisionPublished (RevisionPublished'),+    newRevisionPublished,++    -- ** S3DataAccessAsset+    S3DataAccessAsset (S3DataAccessAsset'),+    newS3DataAccessAsset,++    -- ** S3DataAccessAssetSourceEntry+    S3DataAccessAssetSourceEntry (S3DataAccessAssetSourceEntry'),+    newS3DataAccessAssetSourceEntry,++    -- ** S3SnapshotAsset+    S3SnapshotAsset (S3SnapshotAsset'),+    newS3SnapshotAsset,++    -- ** TableLFTagPolicy+    TableLFTagPolicy (TableLFTagPolicy'),+    newTableLFTagPolicy,++    -- ** TableLFTagPolicyAndPermissions+    TableLFTagPolicyAndPermissions (TableLFTagPolicyAndPermissions'),+    newTableLFTagPolicyAndPermissions,+  )+where++import Amazonka.DataExchange.CancelJob+import Amazonka.DataExchange.CreateDataSet+import Amazonka.DataExchange.CreateEventAction+import Amazonka.DataExchange.CreateJob+import Amazonka.DataExchange.CreateRevision+import Amazonka.DataExchange.DeleteAsset+import Amazonka.DataExchange.DeleteDataSet+import Amazonka.DataExchange.DeleteEventAction+import Amazonka.DataExchange.DeleteRevision+import Amazonka.DataExchange.GetAsset+import Amazonka.DataExchange.GetDataSet+import Amazonka.DataExchange.GetEventAction+import Amazonka.DataExchange.GetJob+import Amazonka.DataExchange.GetRevision+import Amazonka.DataExchange.Lens+import Amazonka.DataExchange.ListDataSetRevisions+import Amazonka.DataExchange.ListDataSets+import Amazonka.DataExchange.ListEventActions+import Amazonka.DataExchange.ListJobs+import Amazonka.DataExchange.ListRevisionAssets+import Amazonka.DataExchange.ListTagsForResource+import Amazonka.DataExchange.RevokeRevision+import Amazonka.DataExchange.SendApiAsset+import Amazonka.DataExchange.StartJob+import Amazonka.DataExchange.TagResource+import Amazonka.DataExchange.Types+import Amazonka.DataExchange.UntagResource+import Amazonka.DataExchange.UpdateAsset+import Amazonka.DataExchange.UpdateDataSet+import Amazonka.DataExchange.UpdateEventAction+import Amazonka.DataExchange.UpdateRevision+import Amazonka.DataExchange.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 'DataExchange'.++-- $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/DataExchange/CancelJob.hs view
@@ -0,0 +1,119 @@+{-# 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.DataExchange.CancelJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation cancels a job. Jobs can be cancelled only when they are+-- in the WAITING state.+module Amazonka.DataExchange.CancelJob+  ( -- * Creating a Request+    CancelJob (..),+    newCancelJob,++    -- * Request Lenses+    cancelJob_jobId,++    -- * Destructuring the Response+    CancelJobResponse (..),+    newCancelJobResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCancelJob' smart constructor.+data CancelJob = CancelJob'+  { -- | The unique identifier for a job.+    jobId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobId', 'cancelJob_jobId' - The unique identifier for a job.+newCancelJob ::+  -- | 'jobId'+  Prelude.Text ->+  CancelJob+newCancelJob pJobId_ = CancelJob' {jobId = pJobId_}++-- | The unique identifier for a job.+cancelJob_jobId :: Lens.Lens' CancelJob Prelude.Text+cancelJob_jobId = Lens.lens (\CancelJob' {jobId} -> jobId) (\s@CancelJob' {} a -> s {jobId = a} :: CancelJob)++instance Core.AWSRequest CancelJob where+  type AWSResponse CancelJob = CancelJobResponse+  request overrides =+    Request.delete (overrides defaultService)+  response = Response.receiveNull CancelJobResponse'++instance Prelude.Hashable CancelJob where+  hashWithSalt _salt CancelJob' {..} =+    _salt `Prelude.hashWithSalt` jobId++instance Prelude.NFData CancelJob where+  rnf CancelJob' {..} = Prelude.rnf jobId++instance Data.ToHeaders CancelJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath CancelJob where+  toPath CancelJob' {..} =+    Prelude.mconcat ["/v1/jobs/", Data.toBS jobId]++instance Data.ToQuery CancelJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCancelJobResponse' smart constructor.+data CancelJobResponse = CancelJobResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newCancelJobResponse ::+  CancelJobResponse+newCancelJobResponse = CancelJobResponse'++instance Prelude.NFData CancelJobResponse where+  rnf _ = ()
+ gen/Amazonka/DataExchange/CreateDataSet.hs view
@@ -0,0 +1,361 @@+{-# 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.DataExchange.CreateDataSet+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation creates a data set.+module Amazonka.DataExchange.CreateDataSet+  ( -- * Creating a Request+    CreateDataSet (..),+    newCreateDataSet,++    -- * Request Lenses+    createDataSet_tags,+    createDataSet_assetType,+    createDataSet_description,+    createDataSet_name,++    -- * Destructuring the Response+    CreateDataSetResponse (..),+    newCreateDataSetResponse,++    -- * Response Lenses+    createDataSetResponse_arn,+    createDataSetResponse_assetType,+    createDataSetResponse_createdAt,+    createDataSetResponse_description,+    createDataSetResponse_id,+    createDataSetResponse_name,+    createDataSetResponse_origin,+    createDataSetResponse_originDetails,+    createDataSetResponse_sourceId,+    createDataSetResponse_tags,+    createDataSetResponse_updatedAt,+    createDataSetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDataSet' smart constructor.+data CreateDataSet = CreateDataSet'+  { -- | A data set tag is an optional label that you can assign to a data set+    -- when you create it. Each tag consists of a key and an optional value,+    -- both of which you define. When you use tagging, you can also use+    -- tag-based access control in IAM policies to control access to these data+    -- sets and revisions.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The type of asset that is added to a data set.+    assetType :: AssetType,+    -- | A description for the data set. This value can be up to 16,348+    -- characters long.+    description :: Prelude.Text,+    -- | The name of the data set.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDataSet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDataSet_tags' - A data set tag is an optional label that you can assign to a data set+-- when you create it. Each tag consists of a key and an optional value,+-- both of which you define. When you use tagging, you can also use+-- tag-based access control in IAM policies to control access to these data+-- sets and revisions.+--+-- 'assetType', 'createDataSet_assetType' - The type of asset that is added to a data set.+--+-- 'description', 'createDataSet_description' - A description for the data set. This value can be up to 16,348+-- characters long.+--+-- 'name', 'createDataSet_name' - The name of the data set.+newCreateDataSet ::+  -- | 'assetType'+  AssetType ->+  -- | 'description'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  CreateDataSet+newCreateDataSet pAssetType_ pDescription_ pName_ =+  CreateDataSet'+    { tags = Prelude.Nothing,+      assetType = pAssetType_,+      description = pDescription_,+      name = pName_+    }++-- | A data set tag is an optional label that you can assign to a data set+-- when you create it. Each tag consists of a key and an optional value,+-- both of which you define. When you use tagging, you can also use+-- tag-based access control in IAM policies to control access to these data+-- sets and revisions.+createDataSet_tags :: Lens.Lens' CreateDataSet (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createDataSet_tags = Lens.lens (\CreateDataSet' {tags} -> tags) (\s@CreateDataSet' {} a -> s {tags = a} :: CreateDataSet) Prelude.. Lens.mapping Lens.coerced++-- | The type of asset that is added to a data set.+createDataSet_assetType :: Lens.Lens' CreateDataSet AssetType+createDataSet_assetType = Lens.lens (\CreateDataSet' {assetType} -> assetType) (\s@CreateDataSet' {} a -> s {assetType = a} :: CreateDataSet)++-- | A description for the data set. This value can be up to 16,348+-- characters long.+createDataSet_description :: Lens.Lens' CreateDataSet Prelude.Text+createDataSet_description = Lens.lens (\CreateDataSet' {description} -> description) (\s@CreateDataSet' {} a -> s {description = a} :: CreateDataSet)++-- | The name of the data set.+createDataSet_name :: Lens.Lens' CreateDataSet Prelude.Text+createDataSet_name = Lens.lens (\CreateDataSet' {name} -> name) (\s@CreateDataSet' {} a -> s {name = a} :: CreateDataSet)++instance Core.AWSRequest CreateDataSet where+  type+    AWSResponse CreateDataSet =+      CreateDataSetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDataSetResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "AssetType")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "Origin")+            Prelude.<*> (x Data..?> "OriginDetails")+            Prelude.<*> (x Data..?> "SourceId")+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDataSet where+  hashWithSalt _salt CreateDataSet' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` assetType+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateDataSet where+  rnf CreateDataSet' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf assetType+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateDataSet where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDataSet where+  toJSON CreateDataSet' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("AssetType" Data..= assetType),+            Prelude.Just ("Description" Data..= description),+            Prelude.Just ("Name" Data..= name)+          ]+      )++instance Data.ToPath CreateDataSet where+  toPath = Prelude.const "/v1/data-sets"++instance Data.ToQuery CreateDataSet where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDataSetResponse' smart constructor.+data CreateDataSetResponse = CreateDataSetResponse'+  { -- | The ARN for the data set.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The type of asset that is added to a data set.+    assetType :: Prelude.Maybe AssetType,+    -- | The date and time that the data set was created, in ISO 8601 format.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The description for the data set.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the data set.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the data set.+    name :: Prelude.Maybe Prelude.Text,+    -- | A property that defines the data set as OWNED by the account (for+    -- providers) or ENTITLED to the account (for subscribers).+    origin :: Prelude.Maybe Origin,+    -- | If the origin of this data set is ENTITLED, includes the details for the+    -- product on AWS Marketplace.+    originDetails :: Prelude.Maybe OriginDetails,+    -- | The data set ID of the owned data set corresponding to the entitled data+    -- set being viewed. This parameter is returned when a data set owner is+    -- viewing the entitled copy of its owned data set.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | The tags for the data set.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The date and time that the data set was last updated, in ISO 8601+    -- format.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDataSetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDataSetResponse_arn' - The ARN for the data set.+--+-- 'assetType', 'createDataSetResponse_assetType' - The type of asset that is added to a data set.+--+-- 'createdAt', 'createDataSetResponse_createdAt' - The date and time that the data set was created, in ISO 8601 format.+--+-- 'description', 'createDataSetResponse_description' - The description for the data set.+--+-- 'id', 'createDataSetResponse_id' - The unique identifier for the data set.+--+-- 'name', 'createDataSetResponse_name' - The name of the data set.+--+-- 'origin', 'createDataSetResponse_origin' - A property that defines the data set as OWNED by the account (for+-- providers) or ENTITLED to the account (for subscribers).+--+-- 'originDetails', 'createDataSetResponse_originDetails' - If the origin of this data set is ENTITLED, includes the details for the+-- product on AWS Marketplace.+--+-- 'sourceId', 'createDataSetResponse_sourceId' - The data set ID of the owned data set corresponding to the entitled data+-- set being viewed. This parameter is returned when a data set owner is+-- viewing the entitled copy of its owned data set.+--+-- 'tags', 'createDataSetResponse_tags' - The tags for the data set.+--+-- 'updatedAt', 'createDataSetResponse_updatedAt' - The date and time that the data set was last updated, in ISO 8601+-- format.+--+-- 'httpStatus', 'createDataSetResponse_httpStatus' - The response's http status code.+newCreateDataSetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDataSetResponse+newCreateDataSetResponse pHttpStatus_ =+  CreateDataSetResponse'+    { arn = Prelude.Nothing,+      assetType = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      origin = Prelude.Nothing,+      originDetails = Prelude.Nothing,+      sourceId = Prelude.Nothing,+      tags = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN for the data set.+createDataSetResponse_arn :: Lens.Lens' CreateDataSetResponse (Prelude.Maybe Prelude.Text)+createDataSetResponse_arn = Lens.lens (\CreateDataSetResponse' {arn} -> arn) (\s@CreateDataSetResponse' {} a -> s {arn = a} :: CreateDataSetResponse)++-- | The type of asset that is added to a data set.+createDataSetResponse_assetType :: Lens.Lens' CreateDataSetResponse (Prelude.Maybe AssetType)+createDataSetResponse_assetType = Lens.lens (\CreateDataSetResponse' {assetType} -> assetType) (\s@CreateDataSetResponse' {} a -> s {assetType = a} :: CreateDataSetResponse)++-- | The date and time that the data set was created, in ISO 8601 format.+createDataSetResponse_createdAt :: Lens.Lens' CreateDataSetResponse (Prelude.Maybe Prelude.UTCTime)+createDataSetResponse_createdAt = Lens.lens (\CreateDataSetResponse' {createdAt} -> createdAt) (\s@CreateDataSetResponse' {} a -> s {createdAt = a} :: CreateDataSetResponse) Prelude.. Lens.mapping Data._Time++-- | The description for the data set.+createDataSetResponse_description :: Lens.Lens' CreateDataSetResponse (Prelude.Maybe Prelude.Text)+createDataSetResponse_description = Lens.lens (\CreateDataSetResponse' {description} -> description) (\s@CreateDataSetResponse' {} a -> s {description = a} :: CreateDataSetResponse)++-- | The unique identifier for the data set.+createDataSetResponse_id :: Lens.Lens' CreateDataSetResponse (Prelude.Maybe Prelude.Text)+createDataSetResponse_id = Lens.lens (\CreateDataSetResponse' {id} -> id) (\s@CreateDataSetResponse' {} a -> s {id = a} :: CreateDataSetResponse)++-- | The name of the data set.+createDataSetResponse_name :: Lens.Lens' CreateDataSetResponse (Prelude.Maybe Prelude.Text)+createDataSetResponse_name = Lens.lens (\CreateDataSetResponse' {name} -> name) (\s@CreateDataSetResponse' {} a -> s {name = a} :: CreateDataSetResponse)++-- | A property that defines the data set as OWNED by the account (for+-- providers) or ENTITLED to the account (for subscribers).+createDataSetResponse_origin :: Lens.Lens' CreateDataSetResponse (Prelude.Maybe Origin)+createDataSetResponse_origin = Lens.lens (\CreateDataSetResponse' {origin} -> origin) (\s@CreateDataSetResponse' {} a -> s {origin = a} :: CreateDataSetResponse)++-- | If the origin of this data set is ENTITLED, includes the details for the+-- product on AWS Marketplace.+createDataSetResponse_originDetails :: Lens.Lens' CreateDataSetResponse (Prelude.Maybe OriginDetails)+createDataSetResponse_originDetails = Lens.lens (\CreateDataSetResponse' {originDetails} -> originDetails) (\s@CreateDataSetResponse' {} a -> s {originDetails = a} :: CreateDataSetResponse)++-- | The data set ID of the owned data set corresponding to the entitled data+-- set being viewed. This parameter is returned when a data set owner is+-- viewing the entitled copy of its owned data set.+createDataSetResponse_sourceId :: Lens.Lens' CreateDataSetResponse (Prelude.Maybe Prelude.Text)+createDataSetResponse_sourceId = Lens.lens (\CreateDataSetResponse' {sourceId} -> sourceId) (\s@CreateDataSetResponse' {} a -> s {sourceId = a} :: CreateDataSetResponse)++-- | The tags for the data set.+createDataSetResponse_tags :: Lens.Lens' CreateDataSetResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createDataSetResponse_tags = Lens.lens (\CreateDataSetResponse' {tags} -> tags) (\s@CreateDataSetResponse' {} a -> s {tags = a} :: CreateDataSetResponse) Prelude.. Lens.mapping Lens.coerced++-- | The date and time that the data set was last updated, in ISO 8601+-- format.+createDataSetResponse_updatedAt :: Lens.Lens' CreateDataSetResponse (Prelude.Maybe Prelude.UTCTime)+createDataSetResponse_updatedAt = Lens.lens (\CreateDataSetResponse' {updatedAt} -> updatedAt) (\s@CreateDataSetResponse' {} a -> s {updatedAt = a} :: CreateDataSetResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+createDataSetResponse_httpStatus :: Lens.Lens' CreateDataSetResponse Prelude.Int+createDataSetResponse_httpStatus = Lens.lens (\CreateDataSetResponse' {httpStatus} -> httpStatus) (\s@CreateDataSetResponse' {} a -> s {httpStatus = a} :: CreateDataSetResponse)++instance Prelude.NFData CreateDataSetResponse where+  rnf CreateDataSetResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf assetType+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf origin+      `Prelude.seq` Prelude.rnf originDetails+      `Prelude.seq` Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/CreateEventAction.hs view
@@ -0,0 +1,246 @@+{-# 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.DataExchange.CreateEventAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation creates an event action.+module Amazonka.DataExchange.CreateEventAction+  ( -- * Creating a Request+    CreateEventAction (..),+    newCreateEventAction,++    -- * Request Lenses+    createEventAction_action,+    createEventAction_event,++    -- * Destructuring the Response+    CreateEventActionResponse (..),+    newCreateEventActionResponse,++    -- * Response Lenses+    createEventActionResponse_action,+    createEventActionResponse_arn,+    createEventActionResponse_createdAt,+    createEventActionResponse_event,+    createEventActionResponse_id,+    createEventActionResponse_updatedAt,+    createEventActionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateEventAction' smart constructor.+data CreateEventAction = CreateEventAction'+  { -- | What occurs after a certain event.+    action :: Action,+    -- | What occurs to start an action.+    event :: Event+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEventAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'action', 'createEventAction_action' - What occurs after a certain event.+--+-- 'event', 'createEventAction_event' - What occurs to start an action.+newCreateEventAction ::+  -- | 'action'+  Action ->+  -- | 'event'+  Event ->+  CreateEventAction+newCreateEventAction pAction_ pEvent_ =+  CreateEventAction'+    { action = pAction_,+      event = pEvent_+    }++-- | What occurs after a certain event.+createEventAction_action :: Lens.Lens' CreateEventAction Action+createEventAction_action = Lens.lens (\CreateEventAction' {action} -> action) (\s@CreateEventAction' {} a -> s {action = a} :: CreateEventAction)++-- | What occurs to start an action.+createEventAction_event :: Lens.Lens' CreateEventAction Event+createEventAction_event = Lens.lens (\CreateEventAction' {event} -> event) (\s@CreateEventAction' {} a -> s {event = a} :: CreateEventAction)++instance Core.AWSRequest CreateEventAction where+  type+    AWSResponse CreateEventAction =+      CreateEventActionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateEventActionResponse'+            Prelude.<$> (x Data..?> "Action")+            Prelude.<*> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "Event")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateEventAction where+  hashWithSalt _salt CreateEventAction' {..} =+    _salt+      `Prelude.hashWithSalt` action+      `Prelude.hashWithSalt` event++instance Prelude.NFData CreateEventAction where+  rnf CreateEventAction' {..} =+    Prelude.rnf action `Prelude.seq` Prelude.rnf event++instance Data.ToHeaders CreateEventAction where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateEventAction where+  toJSON CreateEventAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Action" Data..= action),+            Prelude.Just ("Event" Data..= event)+          ]+      )++instance Data.ToPath CreateEventAction where+  toPath = Prelude.const "/v1/event-actions"++instance Data.ToQuery CreateEventAction where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateEventActionResponse' smart constructor.+data CreateEventActionResponse = CreateEventActionResponse'+  { -- | What occurs after a certain event.+    action :: Prelude.Maybe Action,+    -- | The ARN for the event action.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the event action was created, in ISO 8601 format.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | What occurs to start an action.+    event :: Prelude.Maybe Event,+    -- | The unique identifier for the event action.+    id :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the event action was last updated, in ISO 8601+    -- format.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEventActionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'action', 'createEventActionResponse_action' - What occurs after a certain event.+--+-- 'arn', 'createEventActionResponse_arn' - The ARN for the event action.+--+-- 'createdAt', 'createEventActionResponse_createdAt' - The date and time that the event action was created, in ISO 8601 format.+--+-- 'event', 'createEventActionResponse_event' - What occurs to start an action.+--+-- 'id', 'createEventActionResponse_id' - The unique identifier for the event action.+--+-- 'updatedAt', 'createEventActionResponse_updatedAt' - The date and time that the event action was last updated, in ISO 8601+-- format.+--+-- 'httpStatus', 'createEventActionResponse_httpStatus' - The response's http status code.+newCreateEventActionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateEventActionResponse+newCreateEventActionResponse pHttpStatus_ =+  CreateEventActionResponse'+    { action =+        Prelude.Nothing,+      arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      event = Prelude.Nothing,+      id = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | What occurs after a certain event.+createEventActionResponse_action :: Lens.Lens' CreateEventActionResponse (Prelude.Maybe Action)+createEventActionResponse_action = Lens.lens (\CreateEventActionResponse' {action} -> action) (\s@CreateEventActionResponse' {} a -> s {action = a} :: CreateEventActionResponse)++-- | The ARN for the event action.+createEventActionResponse_arn :: Lens.Lens' CreateEventActionResponse (Prelude.Maybe Prelude.Text)+createEventActionResponse_arn = Lens.lens (\CreateEventActionResponse' {arn} -> arn) (\s@CreateEventActionResponse' {} a -> s {arn = a} :: CreateEventActionResponse)++-- | The date and time that the event action was created, in ISO 8601 format.+createEventActionResponse_createdAt :: Lens.Lens' CreateEventActionResponse (Prelude.Maybe Prelude.UTCTime)+createEventActionResponse_createdAt = Lens.lens (\CreateEventActionResponse' {createdAt} -> createdAt) (\s@CreateEventActionResponse' {} a -> s {createdAt = a} :: CreateEventActionResponse) Prelude.. Lens.mapping Data._Time++-- | What occurs to start an action.+createEventActionResponse_event :: Lens.Lens' CreateEventActionResponse (Prelude.Maybe Event)+createEventActionResponse_event = Lens.lens (\CreateEventActionResponse' {event} -> event) (\s@CreateEventActionResponse' {} a -> s {event = a} :: CreateEventActionResponse)++-- | The unique identifier for the event action.+createEventActionResponse_id :: Lens.Lens' CreateEventActionResponse (Prelude.Maybe Prelude.Text)+createEventActionResponse_id = Lens.lens (\CreateEventActionResponse' {id} -> id) (\s@CreateEventActionResponse' {} a -> s {id = a} :: CreateEventActionResponse)++-- | The date and time that the event action was last updated, in ISO 8601+-- format.+createEventActionResponse_updatedAt :: Lens.Lens' CreateEventActionResponse (Prelude.Maybe Prelude.UTCTime)+createEventActionResponse_updatedAt = Lens.lens (\CreateEventActionResponse' {updatedAt} -> updatedAt) (\s@CreateEventActionResponse' {} a -> s {updatedAt = a} :: CreateEventActionResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+createEventActionResponse_httpStatus :: Lens.Lens' CreateEventActionResponse Prelude.Int+createEventActionResponse_httpStatus = Lens.lens (\CreateEventActionResponse' {httpStatus} -> httpStatus) (\s@CreateEventActionResponse' {} a -> s {httpStatus = a} :: CreateEventActionResponse)++instance Prelude.NFData CreateEventActionResponse where+  rnf CreateEventActionResponse' {..} =+    Prelude.rnf action+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf event+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/CreateJob.hs view
@@ -0,0 +1,261 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.CreateJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation creates a job.+module Amazonka.DataExchange.CreateJob+  ( -- * Creating a Request+    CreateJob (..),+    newCreateJob,++    -- * Request Lenses+    createJob_details,+    createJob_type,++    -- * Destructuring the Response+    CreateJobResponse (..),+    newCreateJobResponse,++    -- * Response Lenses+    createJobResponse_arn,+    createJobResponse_createdAt,+    createJobResponse_details,+    createJobResponse_errors,+    createJobResponse_id,+    createJobResponse_state,+    createJobResponse_type,+    createJobResponse_updatedAt,+    createJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateJob' smart constructor.+data CreateJob = CreateJob'+  { -- | The details for the CreateJob request.+    details :: RequestDetails,+    -- | The type of job to be created.+    type' :: Type+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'details', 'createJob_details' - The details for the CreateJob request.+--+-- 'type'', 'createJob_type' - The type of job to be created.+newCreateJob ::+  -- | 'details'+  RequestDetails ->+  -- | 'type''+  Type ->+  CreateJob+newCreateJob pDetails_ pType_ =+  CreateJob' {details = pDetails_, type' = pType_}++-- | The details for the CreateJob request.+createJob_details :: Lens.Lens' CreateJob RequestDetails+createJob_details = Lens.lens (\CreateJob' {details} -> details) (\s@CreateJob' {} a -> s {details = a} :: CreateJob)++-- | The type of job to be created.+createJob_type :: Lens.Lens' CreateJob Type+createJob_type = Lens.lens (\CreateJob' {type'} -> type') (\s@CreateJob' {} a -> s {type' = a} :: CreateJob)++instance Core.AWSRequest CreateJob where+  type AWSResponse CreateJob = CreateJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateJobResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "Details")+            Prelude.<*> (x Data..?> "Errors" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "State")+            Prelude.<*> (x Data..?> "Type")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateJob where+  hashWithSalt _salt CreateJob' {..} =+    _salt+      `Prelude.hashWithSalt` details+      `Prelude.hashWithSalt` type'++instance Prelude.NFData CreateJob where+  rnf CreateJob' {..} =+    Prelude.rnf details `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders CreateJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateJob where+  toJSON CreateJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Details" Data..= details),+            Prelude.Just ("Type" Data..= type')+          ]+      )++instance Data.ToPath CreateJob where+  toPath = Prelude.const "/v1/jobs"++instance Data.ToQuery CreateJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateJobResponse' smart constructor.+data CreateJobResponse = CreateJobResponse'+  { -- | The ARN for the job.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the job was created, in ISO 8601 format.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | Details about the job.+    details :: Prelude.Maybe ResponseDetails,+    -- | The errors associated with jobs.+    errors :: Prelude.Maybe [JobError],+    -- | The unique identifier for the job.+    id :: Prelude.Maybe Prelude.Text,+    -- | The state of the job.+    state :: Prelude.Maybe State,+    -- | The job type.+    type' :: Prelude.Maybe Type,+    -- | The date and time that the job was last updated, in ISO 8601 format.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createJobResponse_arn' - The ARN for the job.+--+-- 'createdAt', 'createJobResponse_createdAt' - The date and time that the job was created, in ISO 8601 format.+--+-- 'details', 'createJobResponse_details' - Details about the job.+--+-- 'errors', 'createJobResponse_errors' - The errors associated with jobs.+--+-- 'id', 'createJobResponse_id' - The unique identifier for the job.+--+-- 'state', 'createJobResponse_state' - The state of the job.+--+-- 'type'', 'createJobResponse_type' - The job type.+--+-- 'updatedAt', 'createJobResponse_updatedAt' - The date and time that the job was last updated, in ISO 8601 format.+--+-- 'httpStatus', 'createJobResponse_httpStatus' - The response's http status code.+newCreateJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateJobResponse+newCreateJobResponse pHttpStatus_ =+  CreateJobResponse'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      details = Prelude.Nothing,+      errors = Prelude.Nothing,+      id = Prelude.Nothing,+      state = Prelude.Nothing,+      type' = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN for the job.+createJobResponse_arn :: Lens.Lens' CreateJobResponse (Prelude.Maybe Prelude.Text)+createJobResponse_arn = Lens.lens (\CreateJobResponse' {arn} -> arn) (\s@CreateJobResponse' {} a -> s {arn = a} :: CreateJobResponse)++-- | The date and time that the job was created, in ISO 8601 format.+createJobResponse_createdAt :: Lens.Lens' CreateJobResponse (Prelude.Maybe Prelude.UTCTime)+createJobResponse_createdAt = Lens.lens (\CreateJobResponse' {createdAt} -> createdAt) (\s@CreateJobResponse' {} a -> s {createdAt = a} :: CreateJobResponse) Prelude.. Lens.mapping Data._Time++-- | Details about the job.+createJobResponse_details :: Lens.Lens' CreateJobResponse (Prelude.Maybe ResponseDetails)+createJobResponse_details = Lens.lens (\CreateJobResponse' {details} -> details) (\s@CreateJobResponse' {} a -> s {details = a} :: CreateJobResponse)++-- | The errors associated with jobs.+createJobResponse_errors :: Lens.Lens' CreateJobResponse (Prelude.Maybe [JobError])+createJobResponse_errors = Lens.lens (\CreateJobResponse' {errors} -> errors) (\s@CreateJobResponse' {} a -> s {errors = a} :: CreateJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifier for the job.+createJobResponse_id :: Lens.Lens' CreateJobResponse (Prelude.Maybe Prelude.Text)+createJobResponse_id = Lens.lens (\CreateJobResponse' {id} -> id) (\s@CreateJobResponse' {} a -> s {id = a} :: CreateJobResponse)++-- | The state of the job.+createJobResponse_state :: Lens.Lens' CreateJobResponse (Prelude.Maybe State)+createJobResponse_state = Lens.lens (\CreateJobResponse' {state} -> state) (\s@CreateJobResponse' {} a -> s {state = a} :: CreateJobResponse)++-- | The job type.+createJobResponse_type :: Lens.Lens' CreateJobResponse (Prelude.Maybe Type)+createJobResponse_type = Lens.lens (\CreateJobResponse' {type'} -> type') (\s@CreateJobResponse' {} a -> s {type' = a} :: CreateJobResponse)++-- | The date and time that the job was last updated, in ISO 8601 format.+createJobResponse_updatedAt :: Lens.Lens' CreateJobResponse (Prelude.Maybe Prelude.UTCTime)+createJobResponse_updatedAt = Lens.lens (\CreateJobResponse' {updatedAt} -> updatedAt) (\s@CreateJobResponse' {} a -> s {updatedAt = a} :: CreateJobResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+createJobResponse_httpStatus :: Lens.Lens' CreateJobResponse Prelude.Int+createJobResponse_httpStatus = Lens.lens (\CreateJobResponse' {httpStatus} -> httpStatus) (\s@CreateJobResponse' {} a -> s {httpStatus = a} :: CreateJobResponse)++instance Prelude.NFData CreateJobResponse where+  rnf CreateJobResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf details+      `Prelude.seq` Prelude.rnf errors+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/CreateRevision.hs view
@@ -0,0 +1,378 @@+{-# 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.DataExchange.CreateRevision+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation creates a revision for a data set.+module Amazonka.DataExchange.CreateRevision+  ( -- * Creating a Request+    CreateRevision (..),+    newCreateRevision,++    -- * Request Lenses+    createRevision_comment,+    createRevision_tags,+    createRevision_dataSetId,++    -- * Destructuring the Response+    CreateRevisionResponse (..),+    newCreateRevisionResponse,++    -- * Response Lenses+    createRevisionResponse_arn,+    createRevisionResponse_comment,+    createRevisionResponse_createdAt,+    createRevisionResponse_dataSetId,+    createRevisionResponse_finalized,+    createRevisionResponse_id,+    createRevisionResponse_revocationComment,+    createRevisionResponse_revoked,+    createRevisionResponse_revokedAt,+    createRevisionResponse_sourceId,+    createRevisionResponse_tags,+    createRevisionResponse_updatedAt,+    createRevisionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateRevision' smart constructor.+data CreateRevision = CreateRevision'+  { -- | An optional comment about the revision.+    comment :: Prelude.Maybe Prelude.Text,+    -- | A revision tag is an optional label that you can assign to a revision+    -- when you create it. Each tag consists of a key and an optional value,+    -- both of which you define. When you use tagging, you can also use+    -- tag-based access control in IAM policies to control access to these data+    -- sets and revisions.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The unique identifier for a data set.+    dataSetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRevision' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'comment', 'createRevision_comment' - An optional comment about the revision.+--+-- 'tags', 'createRevision_tags' - A revision tag is an optional label that you can assign to a revision+-- when you create it. Each tag consists of a key and an optional value,+-- both of which you define. When you use tagging, you can also use+-- tag-based access control in IAM policies to control access to these data+-- sets and revisions.+--+-- 'dataSetId', 'createRevision_dataSetId' - The unique identifier for a data set.+newCreateRevision ::+  -- | 'dataSetId'+  Prelude.Text ->+  CreateRevision+newCreateRevision pDataSetId_ =+  CreateRevision'+    { comment = Prelude.Nothing,+      tags = Prelude.Nothing,+      dataSetId = pDataSetId_+    }++-- | An optional comment about the revision.+createRevision_comment :: Lens.Lens' CreateRevision (Prelude.Maybe Prelude.Text)+createRevision_comment = Lens.lens (\CreateRevision' {comment} -> comment) (\s@CreateRevision' {} a -> s {comment = a} :: CreateRevision)++-- | A revision tag is an optional label that you can assign to a revision+-- when you create it. Each tag consists of a key and an optional value,+-- both of which you define. When you use tagging, you can also use+-- tag-based access control in IAM policies to control access to these data+-- sets and revisions.+createRevision_tags :: Lens.Lens' CreateRevision (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createRevision_tags = Lens.lens (\CreateRevision' {tags} -> tags) (\s@CreateRevision' {} a -> s {tags = a} :: CreateRevision) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifier for a data set.+createRevision_dataSetId :: Lens.Lens' CreateRevision Prelude.Text+createRevision_dataSetId = Lens.lens (\CreateRevision' {dataSetId} -> dataSetId) (\s@CreateRevision' {} a -> s {dataSetId = a} :: CreateRevision)++instance Core.AWSRequest CreateRevision where+  type+    AWSResponse CreateRevision =+      CreateRevisionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateRevisionResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "Comment")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "DataSetId")+            Prelude.<*> (x Data..?> "Finalized")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "RevocationComment")+            Prelude.<*> (x Data..?> "Revoked")+            Prelude.<*> (x Data..?> "RevokedAt")+            Prelude.<*> (x Data..?> "SourceId")+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateRevision where+  hashWithSalt _salt CreateRevision' {..} =+    _salt+      `Prelude.hashWithSalt` comment+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` dataSetId++instance Prelude.NFData CreateRevision where+  rnf CreateRevision' {..} =+    Prelude.rnf comment+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf dataSetId++instance Data.ToHeaders CreateRevision where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateRevision where+  toJSON CreateRevision' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Comment" Data..=) Prelude.<$> comment,+            ("Tags" Data..=) Prelude.<$> tags+          ]+      )++instance Data.ToPath CreateRevision where+  toPath CreateRevision' {..} =+    Prelude.mconcat+      ["/v1/data-sets/", Data.toBS dataSetId, "/revisions"]++instance Data.ToQuery CreateRevision where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateRevisionResponse' smart constructor.+data CreateRevisionResponse = CreateRevisionResponse'+  { -- | The ARN for the revision.+    arn :: Prelude.Maybe Prelude.Text,+    -- | An optional comment about the revision.+    comment :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the revision was created, in ISO 8601 format.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The unique identifier for the data set associated with the data set+    -- revision.+    dataSetId :: Prelude.Maybe Prelude.Text,+    -- | To publish a revision to a data set in a product, the revision must+    -- first be finalized. Finalizing a revision tells AWS Data Exchange that+    -- your changes to the assets in the revision are complete. After it\'s in+    -- this read-only state, you can publish the revision to your products.+    -- Finalized revisions can be published through the AWS Data Exchange+    -- console or the AWS Marketplace Catalog API, using the StartChangeSet AWS+    -- Marketplace Catalog API action. When using the API, revisions are+    -- uniquely identified by their ARN.+    finalized :: Prelude.Maybe Prelude.Bool,+    -- | The unique identifier for the revision.+    id :: Prelude.Maybe Prelude.Text,+    -- | A required comment to inform subscribers of the reason their access to+    -- the revision was revoked.+    revocationComment :: Prelude.Maybe Prelude.Text,+    -- | A status indicating that subscribers\' access to the revision was+    -- revoked.+    revoked :: Prelude.Maybe Prelude.Bool,+    -- | The date and time that the revision was revoked, in ISO 8601 format.+    revokedAt :: Prelude.Maybe Data.ISO8601,+    -- | The revision ID of the owned revision corresponding to the entitled+    -- revision being viewed. This parameter is returned when a revision owner+    -- is viewing the entitled copy of its owned revision.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | The tags for the revision.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The date and time that the revision was last updated, in ISO 8601+    -- format.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRevisionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createRevisionResponse_arn' - The ARN for the revision.+--+-- 'comment', 'createRevisionResponse_comment' - An optional comment about the revision.+--+-- 'createdAt', 'createRevisionResponse_createdAt' - The date and time that the revision was created, in ISO 8601 format.+--+-- 'dataSetId', 'createRevisionResponse_dataSetId' - The unique identifier for the data set associated with the data set+-- revision.+--+-- 'finalized', 'createRevisionResponse_finalized' - To publish a revision to a data set in a product, the revision must+-- first be finalized. Finalizing a revision tells AWS Data Exchange that+-- your changes to the assets in the revision are complete. After it\'s in+-- this read-only state, you can publish the revision to your products.+-- Finalized revisions can be published through the AWS Data Exchange+-- console or the AWS Marketplace Catalog API, using the StartChangeSet AWS+-- Marketplace Catalog API action. When using the API, revisions are+-- uniquely identified by their ARN.+--+-- 'id', 'createRevisionResponse_id' - The unique identifier for the revision.+--+-- 'revocationComment', 'createRevisionResponse_revocationComment' - A required comment to inform subscribers of the reason their access to+-- the revision was revoked.+--+-- 'revoked', 'createRevisionResponse_revoked' - A status indicating that subscribers\' access to the revision was+-- revoked.+--+-- 'revokedAt', 'createRevisionResponse_revokedAt' - The date and time that the revision was revoked, in ISO 8601 format.+--+-- 'sourceId', 'createRevisionResponse_sourceId' - The revision ID of the owned revision corresponding to the entitled+-- revision being viewed. This parameter is returned when a revision owner+-- is viewing the entitled copy of its owned revision.+--+-- 'tags', 'createRevisionResponse_tags' - The tags for the revision.+--+-- 'updatedAt', 'createRevisionResponse_updatedAt' - The date and time that the revision was last updated, in ISO 8601+-- format.+--+-- 'httpStatus', 'createRevisionResponse_httpStatus' - The response's http status code.+newCreateRevisionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateRevisionResponse+newCreateRevisionResponse pHttpStatus_ =+  CreateRevisionResponse'+    { arn = Prelude.Nothing,+      comment = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      dataSetId = Prelude.Nothing,+      finalized = Prelude.Nothing,+      id = Prelude.Nothing,+      revocationComment = Prelude.Nothing,+      revoked = Prelude.Nothing,+      revokedAt = Prelude.Nothing,+      sourceId = Prelude.Nothing,+      tags = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN for the revision.+createRevisionResponse_arn :: Lens.Lens' CreateRevisionResponse (Prelude.Maybe Prelude.Text)+createRevisionResponse_arn = Lens.lens (\CreateRevisionResponse' {arn} -> arn) (\s@CreateRevisionResponse' {} a -> s {arn = a} :: CreateRevisionResponse)++-- | An optional comment about the revision.+createRevisionResponse_comment :: Lens.Lens' CreateRevisionResponse (Prelude.Maybe Prelude.Text)+createRevisionResponse_comment = Lens.lens (\CreateRevisionResponse' {comment} -> comment) (\s@CreateRevisionResponse' {} a -> s {comment = a} :: CreateRevisionResponse)++-- | The date and time that the revision was created, in ISO 8601 format.+createRevisionResponse_createdAt :: Lens.Lens' CreateRevisionResponse (Prelude.Maybe Prelude.UTCTime)+createRevisionResponse_createdAt = Lens.lens (\CreateRevisionResponse' {createdAt} -> createdAt) (\s@CreateRevisionResponse' {} a -> s {createdAt = a} :: CreateRevisionResponse) Prelude.. Lens.mapping Data._Time++-- | The unique identifier for the data set associated with the data set+-- revision.+createRevisionResponse_dataSetId :: Lens.Lens' CreateRevisionResponse (Prelude.Maybe Prelude.Text)+createRevisionResponse_dataSetId = Lens.lens (\CreateRevisionResponse' {dataSetId} -> dataSetId) (\s@CreateRevisionResponse' {} a -> s {dataSetId = a} :: CreateRevisionResponse)++-- | To publish a revision to a data set in a product, the revision must+-- first be finalized. Finalizing a revision tells AWS Data Exchange that+-- your changes to the assets in the revision are complete. After it\'s in+-- this read-only state, you can publish the revision to your products.+-- Finalized revisions can be published through the AWS Data Exchange+-- console or the AWS Marketplace Catalog API, using the StartChangeSet AWS+-- Marketplace Catalog API action. When using the API, revisions are+-- uniquely identified by their ARN.+createRevisionResponse_finalized :: Lens.Lens' CreateRevisionResponse (Prelude.Maybe Prelude.Bool)+createRevisionResponse_finalized = Lens.lens (\CreateRevisionResponse' {finalized} -> finalized) (\s@CreateRevisionResponse' {} a -> s {finalized = a} :: CreateRevisionResponse)++-- | The unique identifier for the revision.+createRevisionResponse_id :: Lens.Lens' CreateRevisionResponse (Prelude.Maybe Prelude.Text)+createRevisionResponse_id = Lens.lens (\CreateRevisionResponse' {id} -> id) (\s@CreateRevisionResponse' {} a -> s {id = a} :: CreateRevisionResponse)++-- | A required comment to inform subscribers of the reason their access to+-- the revision was revoked.+createRevisionResponse_revocationComment :: Lens.Lens' CreateRevisionResponse (Prelude.Maybe Prelude.Text)+createRevisionResponse_revocationComment = Lens.lens (\CreateRevisionResponse' {revocationComment} -> revocationComment) (\s@CreateRevisionResponse' {} a -> s {revocationComment = a} :: CreateRevisionResponse)++-- | A status indicating that subscribers\' access to the revision was+-- revoked.+createRevisionResponse_revoked :: Lens.Lens' CreateRevisionResponse (Prelude.Maybe Prelude.Bool)+createRevisionResponse_revoked = Lens.lens (\CreateRevisionResponse' {revoked} -> revoked) (\s@CreateRevisionResponse' {} a -> s {revoked = a} :: CreateRevisionResponse)++-- | The date and time that the revision was revoked, in ISO 8601 format.+createRevisionResponse_revokedAt :: Lens.Lens' CreateRevisionResponse (Prelude.Maybe Prelude.UTCTime)+createRevisionResponse_revokedAt = Lens.lens (\CreateRevisionResponse' {revokedAt} -> revokedAt) (\s@CreateRevisionResponse' {} a -> s {revokedAt = a} :: CreateRevisionResponse) Prelude.. Lens.mapping Data._Time++-- | The revision ID of the owned revision corresponding to the entitled+-- revision being viewed. This parameter is returned when a revision owner+-- is viewing the entitled copy of its owned revision.+createRevisionResponse_sourceId :: Lens.Lens' CreateRevisionResponse (Prelude.Maybe Prelude.Text)+createRevisionResponse_sourceId = Lens.lens (\CreateRevisionResponse' {sourceId} -> sourceId) (\s@CreateRevisionResponse' {} a -> s {sourceId = a} :: CreateRevisionResponse)++-- | The tags for the revision.+createRevisionResponse_tags :: Lens.Lens' CreateRevisionResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createRevisionResponse_tags = Lens.lens (\CreateRevisionResponse' {tags} -> tags) (\s@CreateRevisionResponse' {} a -> s {tags = a} :: CreateRevisionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The date and time that the revision was last updated, in ISO 8601+-- format.+createRevisionResponse_updatedAt :: Lens.Lens' CreateRevisionResponse (Prelude.Maybe Prelude.UTCTime)+createRevisionResponse_updatedAt = Lens.lens (\CreateRevisionResponse' {updatedAt} -> updatedAt) (\s@CreateRevisionResponse' {} a -> s {updatedAt = a} :: CreateRevisionResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+createRevisionResponse_httpStatus :: Lens.Lens' CreateRevisionResponse Prelude.Int+createRevisionResponse_httpStatus = Lens.lens (\CreateRevisionResponse' {httpStatus} -> httpStatus) (\s@CreateRevisionResponse' {} a -> s {httpStatus = a} :: CreateRevisionResponse)++instance Prelude.NFData CreateRevisionResponse where+  rnf CreateRevisionResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf comment+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf finalized+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf revocationComment+      `Prelude.seq` Prelude.rnf revoked+      `Prelude.seq` Prelude.rnf revokedAt+      `Prelude.seq` Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/DeleteAsset.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.DeleteAsset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation deletes an asset.+module Amazonka.DataExchange.DeleteAsset+  ( -- * Creating a Request+    DeleteAsset (..),+    newDeleteAsset,++    -- * Request Lenses+    deleteAsset_assetId,+    deleteAsset_dataSetId,+    deleteAsset_revisionId,++    -- * Destructuring the Response+    DeleteAssetResponse (..),+    newDeleteAssetResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteAsset' smart constructor.+data DeleteAsset = DeleteAsset'+  { -- | The unique identifier for an asset.+    assetId :: Prelude.Text,+    -- | The unique identifier for a data set.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for a revision.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAsset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assetId', 'deleteAsset_assetId' - The unique identifier for an asset.+--+-- 'dataSetId', 'deleteAsset_dataSetId' - The unique identifier for a data set.+--+-- 'revisionId', 'deleteAsset_revisionId' - The unique identifier for a revision.+newDeleteAsset ::+  -- | 'assetId'+  Prelude.Text ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  DeleteAsset+newDeleteAsset pAssetId_ pDataSetId_ pRevisionId_ =+  DeleteAsset'+    { assetId = pAssetId_,+      dataSetId = pDataSetId_,+      revisionId = pRevisionId_+    }++-- | The unique identifier for an asset.+deleteAsset_assetId :: Lens.Lens' DeleteAsset Prelude.Text+deleteAsset_assetId = Lens.lens (\DeleteAsset' {assetId} -> assetId) (\s@DeleteAsset' {} a -> s {assetId = a} :: DeleteAsset)++-- | The unique identifier for a data set.+deleteAsset_dataSetId :: Lens.Lens' DeleteAsset Prelude.Text+deleteAsset_dataSetId = Lens.lens (\DeleteAsset' {dataSetId} -> dataSetId) (\s@DeleteAsset' {} a -> s {dataSetId = a} :: DeleteAsset)++-- | The unique identifier for a revision.+deleteAsset_revisionId :: Lens.Lens' DeleteAsset Prelude.Text+deleteAsset_revisionId = Lens.lens (\DeleteAsset' {revisionId} -> revisionId) (\s@DeleteAsset' {} a -> s {revisionId = a} :: DeleteAsset)++instance Core.AWSRequest DeleteAsset where+  type AWSResponse DeleteAsset = DeleteAssetResponse+  request overrides =+    Request.delete (overrides defaultService)+  response = Response.receiveNull DeleteAssetResponse'++instance Prelude.Hashable DeleteAsset where+  hashWithSalt _salt DeleteAsset' {..} =+    _salt+      `Prelude.hashWithSalt` assetId+      `Prelude.hashWithSalt` dataSetId+      `Prelude.hashWithSalt` revisionId++instance Prelude.NFData DeleteAsset where+  rnf DeleteAsset' {..} =+    Prelude.rnf assetId+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId++instance Data.ToHeaders DeleteAsset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteAsset where+  toPath DeleteAsset' {..} =+    Prelude.mconcat+      [ "/v1/data-sets/",+        Data.toBS dataSetId,+        "/revisions/",+        Data.toBS revisionId,+        "/assets/",+        Data.toBS assetId+      ]++instance Data.ToQuery DeleteAsset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAssetResponse' smart constructor.+data DeleteAssetResponse = DeleteAssetResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAssetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteAssetResponse ::+  DeleteAssetResponse+newDeleteAssetResponse = DeleteAssetResponse'++instance Prelude.NFData DeleteAssetResponse where+  rnf _ = ()
+ gen/Amazonka/DataExchange/DeleteDataSet.hs view
@@ -0,0 +1,123 @@+{-# 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.DataExchange.DeleteDataSet+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation deletes a data set.+module Amazonka.DataExchange.DeleteDataSet+  ( -- * Creating a Request+    DeleteDataSet (..),+    newDeleteDataSet,++    -- * Request Lenses+    deleteDataSet_dataSetId,++    -- * Destructuring the Response+    DeleteDataSetResponse (..),+    newDeleteDataSetResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteDataSet' smart constructor.+data DeleteDataSet = DeleteDataSet'+  { -- | The unique identifier for a data set.+    dataSetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDataSet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSetId', 'deleteDataSet_dataSetId' - The unique identifier for a data set.+newDeleteDataSet ::+  -- | 'dataSetId'+  Prelude.Text ->+  DeleteDataSet+newDeleteDataSet pDataSetId_ =+  DeleteDataSet' {dataSetId = pDataSetId_}++-- | The unique identifier for a data set.+deleteDataSet_dataSetId :: Lens.Lens' DeleteDataSet Prelude.Text+deleteDataSet_dataSetId = Lens.lens (\DeleteDataSet' {dataSetId} -> dataSetId) (\s@DeleteDataSet' {} a -> s {dataSetId = a} :: DeleteDataSet)++instance Core.AWSRequest DeleteDataSet where+  type+    AWSResponse DeleteDataSet =+      DeleteDataSetResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull DeleteDataSetResponse'++instance Prelude.Hashable DeleteDataSet where+  hashWithSalt _salt DeleteDataSet' {..} =+    _salt `Prelude.hashWithSalt` dataSetId++instance Prelude.NFData DeleteDataSet where+  rnf DeleteDataSet' {..} = Prelude.rnf dataSetId++instance Data.ToHeaders DeleteDataSet where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteDataSet where+  toPath DeleteDataSet' {..} =+    Prelude.mconcat+      ["/v1/data-sets/", Data.toBS dataSetId]++instance Data.ToQuery DeleteDataSet where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDataSetResponse' smart constructor.+data DeleteDataSetResponse = DeleteDataSetResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDataSetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteDataSetResponse ::+  DeleteDataSetResponse+newDeleteDataSetResponse = DeleteDataSetResponse'++instance Prelude.NFData DeleteDataSetResponse where+  rnf _ = ()
+ gen/Amazonka/DataExchange/DeleteEventAction.hs view
@@ -0,0 +1,125 @@+{-# 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.DataExchange.DeleteEventAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation deletes the event action.+module Amazonka.DataExchange.DeleteEventAction+  ( -- * Creating a Request+    DeleteEventAction (..),+    newDeleteEventAction,++    -- * Request Lenses+    deleteEventAction_eventActionId,++    -- * Destructuring the Response+    DeleteEventActionResponse (..),+    newDeleteEventActionResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteEventAction' smart constructor.+data DeleteEventAction = DeleteEventAction'+  { -- | The unique identifier for the event action.+    eventActionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEventAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventActionId', 'deleteEventAction_eventActionId' - The unique identifier for the event action.+newDeleteEventAction ::+  -- | 'eventActionId'+  Prelude.Text ->+  DeleteEventAction+newDeleteEventAction pEventActionId_ =+  DeleteEventAction' {eventActionId = pEventActionId_}++-- | The unique identifier for the event action.+deleteEventAction_eventActionId :: Lens.Lens' DeleteEventAction Prelude.Text+deleteEventAction_eventActionId = Lens.lens (\DeleteEventAction' {eventActionId} -> eventActionId) (\s@DeleteEventAction' {} a -> s {eventActionId = a} :: DeleteEventAction)++instance Core.AWSRequest DeleteEventAction where+  type+    AWSResponse DeleteEventAction =+      DeleteEventActionResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull DeleteEventActionResponse'++instance Prelude.Hashable DeleteEventAction where+  hashWithSalt _salt DeleteEventAction' {..} =+    _salt `Prelude.hashWithSalt` eventActionId++instance Prelude.NFData DeleteEventAction where+  rnf DeleteEventAction' {..} =+    Prelude.rnf eventActionId++instance Data.ToHeaders DeleteEventAction where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteEventAction where+  toPath DeleteEventAction' {..} =+    Prelude.mconcat+      ["/v1/event-actions/", Data.toBS eventActionId]++instance Data.ToQuery DeleteEventAction where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteEventActionResponse' smart constructor.+data DeleteEventActionResponse = DeleteEventActionResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEventActionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteEventActionResponse ::+  DeleteEventActionResponse+newDeleteEventActionResponse =+  DeleteEventActionResponse'++instance Prelude.NFData DeleteEventActionResponse where+  rnf _ = ()
+ gen/Amazonka/DataExchange/DeleteRevision.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.DeleteRevision+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation deletes a revision.+module Amazonka.DataExchange.DeleteRevision+  ( -- * Creating a Request+    DeleteRevision (..),+    newDeleteRevision,++    -- * Request Lenses+    deleteRevision_dataSetId,+    deleteRevision_revisionId,++    -- * Destructuring the Response+    DeleteRevisionResponse (..),+    newDeleteRevisionResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteRevision' smart constructor.+data DeleteRevision = DeleteRevision'+  { -- | The unique identifier for a data set.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for a revision.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRevision' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSetId', 'deleteRevision_dataSetId' - The unique identifier for a data set.+--+-- 'revisionId', 'deleteRevision_revisionId' - The unique identifier for a revision.+newDeleteRevision ::+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  DeleteRevision+newDeleteRevision pDataSetId_ pRevisionId_ =+  DeleteRevision'+    { dataSetId = pDataSetId_,+      revisionId = pRevisionId_+    }++-- | The unique identifier for a data set.+deleteRevision_dataSetId :: Lens.Lens' DeleteRevision Prelude.Text+deleteRevision_dataSetId = Lens.lens (\DeleteRevision' {dataSetId} -> dataSetId) (\s@DeleteRevision' {} a -> s {dataSetId = a} :: DeleteRevision)++-- | The unique identifier for a revision.+deleteRevision_revisionId :: Lens.Lens' DeleteRevision Prelude.Text+deleteRevision_revisionId = Lens.lens (\DeleteRevision' {revisionId} -> revisionId) (\s@DeleteRevision' {} a -> s {revisionId = a} :: DeleteRevision)++instance Core.AWSRequest DeleteRevision where+  type+    AWSResponse DeleteRevision =+      DeleteRevisionResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull DeleteRevisionResponse'++instance Prelude.Hashable DeleteRevision where+  hashWithSalt _salt DeleteRevision' {..} =+    _salt+      `Prelude.hashWithSalt` dataSetId+      `Prelude.hashWithSalt` revisionId++instance Prelude.NFData DeleteRevision where+  rnf DeleteRevision' {..} =+    Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId++instance Data.ToHeaders DeleteRevision where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteRevision where+  toPath DeleteRevision' {..} =+    Prelude.mconcat+      [ "/v1/data-sets/",+        Data.toBS dataSetId,+        "/revisions/",+        Data.toBS revisionId+      ]++instance Data.ToQuery DeleteRevision where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteRevisionResponse' smart constructor.+data DeleteRevisionResponse = DeleteRevisionResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRevisionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteRevisionResponse ::+  DeleteRevisionResponse+newDeleteRevisionResponse = DeleteRevisionResponse'++instance Prelude.NFData DeleteRevisionResponse where+  rnf _ = ()
+ gen/Amazonka/DataExchange/GetAsset.hs view
@@ -0,0 +1,329 @@+{-# 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.DataExchange.GetAsset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation returns information about an asset.+module Amazonka.DataExchange.GetAsset+  ( -- * Creating a Request+    GetAsset (..),+    newGetAsset,++    -- * Request Lenses+    getAsset_assetId,+    getAsset_dataSetId,+    getAsset_revisionId,++    -- * Destructuring the Response+    GetAssetResponse (..),+    newGetAssetResponse,++    -- * Response Lenses+    getAssetResponse_arn,+    getAssetResponse_assetDetails,+    getAssetResponse_assetType,+    getAssetResponse_createdAt,+    getAssetResponse_dataSetId,+    getAssetResponse_id,+    getAssetResponse_name,+    getAssetResponse_revisionId,+    getAssetResponse_sourceId,+    getAssetResponse_updatedAt,+    getAssetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetAsset' smart constructor.+data GetAsset = GetAsset'+  { -- | The unique identifier for an asset.+    assetId :: Prelude.Text,+    -- | The unique identifier for a data set.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for a revision.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAsset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assetId', 'getAsset_assetId' - The unique identifier for an asset.+--+-- 'dataSetId', 'getAsset_dataSetId' - The unique identifier for a data set.+--+-- 'revisionId', 'getAsset_revisionId' - The unique identifier for a revision.+newGetAsset ::+  -- | 'assetId'+  Prelude.Text ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  GetAsset+newGetAsset pAssetId_ pDataSetId_ pRevisionId_ =+  GetAsset'+    { assetId = pAssetId_,+      dataSetId = pDataSetId_,+      revisionId = pRevisionId_+    }++-- | The unique identifier for an asset.+getAsset_assetId :: Lens.Lens' GetAsset Prelude.Text+getAsset_assetId = Lens.lens (\GetAsset' {assetId} -> assetId) (\s@GetAsset' {} a -> s {assetId = a} :: GetAsset)++-- | The unique identifier for a data set.+getAsset_dataSetId :: Lens.Lens' GetAsset Prelude.Text+getAsset_dataSetId = Lens.lens (\GetAsset' {dataSetId} -> dataSetId) (\s@GetAsset' {} a -> s {dataSetId = a} :: GetAsset)++-- | The unique identifier for a revision.+getAsset_revisionId :: Lens.Lens' GetAsset Prelude.Text+getAsset_revisionId = Lens.lens (\GetAsset' {revisionId} -> revisionId) (\s@GetAsset' {} a -> s {revisionId = a} :: GetAsset)++instance Core.AWSRequest GetAsset where+  type AWSResponse GetAsset = GetAssetResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetAssetResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "AssetDetails")+            Prelude.<*> (x Data..?> "AssetType")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "DataSetId")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "RevisionId")+            Prelude.<*> (x Data..?> "SourceId")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetAsset where+  hashWithSalt _salt GetAsset' {..} =+    _salt+      `Prelude.hashWithSalt` assetId+      `Prelude.hashWithSalt` dataSetId+      `Prelude.hashWithSalt` revisionId++instance Prelude.NFData GetAsset where+  rnf GetAsset' {..} =+    Prelude.rnf assetId+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId++instance Data.ToHeaders GetAsset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetAsset where+  toPath GetAsset' {..} =+    Prelude.mconcat+      [ "/v1/data-sets/",+        Data.toBS dataSetId,+        "/revisions/",+        Data.toBS revisionId,+        "/assets/",+        Data.toBS assetId+      ]++instance Data.ToQuery GetAsset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAssetResponse' smart constructor.+data GetAssetResponse = GetAssetResponse'+  { -- | The ARN for the asset.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Details about the asset.+    assetDetails :: Prelude.Maybe AssetDetails,+    -- | The type of asset that is added to a data set.+    assetType :: Prelude.Maybe AssetType,+    -- | The date and time that the asset was created, in ISO 8601 format.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The unique identifier for the data set associated with this asset.+    dataSetId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the asset.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the asset. When importing from Amazon S3, the Amazon S3+    -- object key is used as the asset name. When exporting to Amazon S3, the+    -- asset name is used as default target Amazon S3 object key. When+    -- importing from Amazon API Gateway API, the API name is used as the asset+    -- name. When importing from Amazon Redshift, the datashare name is used as+    -- the asset name. When importing from AWS Lake Formation, the static+    -- values of \"Database(s) included in the LF-tag policy\" or \"Table(s)+    -- included in the LF-tag policy\" are used as the asset name.+    name :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the revision associated with this asset.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | The asset ID of the owned asset corresponding to the entitled asset+    -- being viewed. This parameter is returned when an asset owner is viewing+    -- the entitled copy of its owned asset.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the asset was last updated, in ISO 8601 format.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAssetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getAssetResponse_arn' - The ARN for the asset.+--+-- 'assetDetails', 'getAssetResponse_assetDetails' - Details about the asset.+--+-- 'assetType', 'getAssetResponse_assetType' - The type of asset that is added to a data set.+--+-- 'createdAt', 'getAssetResponse_createdAt' - The date and time that the asset was created, in ISO 8601 format.+--+-- 'dataSetId', 'getAssetResponse_dataSetId' - The unique identifier for the data set associated with this asset.+--+-- 'id', 'getAssetResponse_id' - The unique identifier for the asset.+--+-- 'name', 'getAssetResponse_name' - The name of the asset. When importing from Amazon S3, the Amazon S3+-- object key is used as the asset name. When exporting to Amazon S3, the+-- asset name is used as default target Amazon S3 object key. When+-- importing from Amazon API Gateway API, the API name is used as the asset+-- name. When importing from Amazon Redshift, the datashare name is used as+-- the asset name. When importing from AWS Lake Formation, the static+-- values of \"Database(s) included in the LF-tag policy\" or \"Table(s)+-- included in the LF-tag policy\" are used as the asset name.+--+-- 'revisionId', 'getAssetResponse_revisionId' - The unique identifier for the revision associated with this asset.+--+-- 'sourceId', 'getAssetResponse_sourceId' - The asset ID of the owned asset corresponding to the entitled asset+-- being viewed. This parameter is returned when an asset owner is viewing+-- the entitled copy of its owned asset.+--+-- 'updatedAt', 'getAssetResponse_updatedAt' - The date and time that the asset was last updated, in ISO 8601 format.+--+-- 'httpStatus', 'getAssetResponse_httpStatus' - The response's http status code.+newGetAssetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetAssetResponse+newGetAssetResponse pHttpStatus_ =+  GetAssetResponse'+    { arn = Prelude.Nothing,+      assetDetails = Prelude.Nothing,+      assetType = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      dataSetId = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      revisionId = Prelude.Nothing,+      sourceId = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN for the asset.+getAssetResponse_arn :: Lens.Lens' GetAssetResponse (Prelude.Maybe Prelude.Text)+getAssetResponse_arn = Lens.lens (\GetAssetResponse' {arn} -> arn) (\s@GetAssetResponse' {} a -> s {arn = a} :: GetAssetResponse)++-- | Details about the asset.+getAssetResponse_assetDetails :: Lens.Lens' GetAssetResponse (Prelude.Maybe AssetDetails)+getAssetResponse_assetDetails = Lens.lens (\GetAssetResponse' {assetDetails} -> assetDetails) (\s@GetAssetResponse' {} a -> s {assetDetails = a} :: GetAssetResponse)++-- | The type of asset that is added to a data set.+getAssetResponse_assetType :: Lens.Lens' GetAssetResponse (Prelude.Maybe AssetType)+getAssetResponse_assetType = Lens.lens (\GetAssetResponse' {assetType} -> assetType) (\s@GetAssetResponse' {} a -> s {assetType = a} :: GetAssetResponse)++-- | The date and time that the asset was created, in ISO 8601 format.+getAssetResponse_createdAt :: Lens.Lens' GetAssetResponse (Prelude.Maybe Prelude.UTCTime)+getAssetResponse_createdAt = Lens.lens (\GetAssetResponse' {createdAt} -> createdAt) (\s@GetAssetResponse' {} a -> s {createdAt = a} :: GetAssetResponse) Prelude.. Lens.mapping Data._Time++-- | The unique identifier for the data set associated with this asset.+getAssetResponse_dataSetId :: Lens.Lens' GetAssetResponse (Prelude.Maybe Prelude.Text)+getAssetResponse_dataSetId = Lens.lens (\GetAssetResponse' {dataSetId} -> dataSetId) (\s@GetAssetResponse' {} a -> s {dataSetId = a} :: GetAssetResponse)++-- | The unique identifier for the asset.+getAssetResponse_id :: Lens.Lens' GetAssetResponse (Prelude.Maybe Prelude.Text)+getAssetResponse_id = Lens.lens (\GetAssetResponse' {id} -> id) (\s@GetAssetResponse' {} a -> s {id = a} :: GetAssetResponse)++-- | The name of the asset. When importing from Amazon S3, the Amazon S3+-- object key is used as the asset name. When exporting to Amazon S3, the+-- asset name is used as default target Amazon S3 object key. When+-- importing from Amazon API Gateway API, the API name is used as the asset+-- name. When importing from Amazon Redshift, the datashare name is used as+-- the asset name. When importing from AWS Lake Formation, the static+-- values of \"Database(s) included in the LF-tag policy\" or \"Table(s)+-- included in the LF-tag policy\" are used as the asset name.+getAssetResponse_name :: Lens.Lens' GetAssetResponse (Prelude.Maybe Prelude.Text)+getAssetResponse_name = Lens.lens (\GetAssetResponse' {name} -> name) (\s@GetAssetResponse' {} a -> s {name = a} :: GetAssetResponse)++-- | The unique identifier for the revision associated with this asset.+getAssetResponse_revisionId :: Lens.Lens' GetAssetResponse (Prelude.Maybe Prelude.Text)+getAssetResponse_revisionId = Lens.lens (\GetAssetResponse' {revisionId} -> revisionId) (\s@GetAssetResponse' {} a -> s {revisionId = a} :: GetAssetResponse)++-- | The asset ID of the owned asset corresponding to the entitled asset+-- being viewed. This parameter is returned when an asset owner is viewing+-- the entitled copy of its owned asset.+getAssetResponse_sourceId :: Lens.Lens' GetAssetResponse (Prelude.Maybe Prelude.Text)+getAssetResponse_sourceId = Lens.lens (\GetAssetResponse' {sourceId} -> sourceId) (\s@GetAssetResponse' {} a -> s {sourceId = a} :: GetAssetResponse)++-- | The date and time that the asset was last updated, in ISO 8601 format.+getAssetResponse_updatedAt :: Lens.Lens' GetAssetResponse (Prelude.Maybe Prelude.UTCTime)+getAssetResponse_updatedAt = Lens.lens (\GetAssetResponse' {updatedAt} -> updatedAt) (\s@GetAssetResponse' {} a -> s {updatedAt = a} :: GetAssetResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+getAssetResponse_httpStatus :: Lens.Lens' GetAssetResponse Prelude.Int+getAssetResponse_httpStatus = Lens.lens (\GetAssetResponse' {httpStatus} -> httpStatus) (\s@GetAssetResponse' {} a -> s {httpStatus = a} :: GetAssetResponse)++instance Prelude.NFData GetAssetResponse where+  rnf GetAssetResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf assetDetails+      `Prelude.seq` Prelude.rnf assetType+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/GetDataSet.hs view
@@ -0,0 +1,291 @@+{-# 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.DataExchange.GetDataSet+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation returns information about a data set.+module Amazonka.DataExchange.GetDataSet+  ( -- * Creating a Request+    GetDataSet (..),+    newGetDataSet,++    -- * Request Lenses+    getDataSet_dataSetId,++    -- * Destructuring the Response+    GetDataSetResponse (..),+    newGetDataSetResponse,++    -- * Response Lenses+    getDataSetResponse_arn,+    getDataSetResponse_assetType,+    getDataSetResponse_createdAt,+    getDataSetResponse_description,+    getDataSetResponse_id,+    getDataSetResponse_name,+    getDataSetResponse_origin,+    getDataSetResponse_originDetails,+    getDataSetResponse_sourceId,+    getDataSetResponse_tags,+    getDataSetResponse_updatedAt,+    getDataSetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetDataSet' smart constructor.+data GetDataSet = GetDataSet'+  { -- | The unique identifier for a data set.+    dataSetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDataSet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSetId', 'getDataSet_dataSetId' - The unique identifier for a data set.+newGetDataSet ::+  -- | 'dataSetId'+  Prelude.Text ->+  GetDataSet+newGetDataSet pDataSetId_ =+  GetDataSet' {dataSetId = pDataSetId_}++-- | The unique identifier for a data set.+getDataSet_dataSetId :: Lens.Lens' GetDataSet Prelude.Text+getDataSet_dataSetId = Lens.lens (\GetDataSet' {dataSetId} -> dataSetId) (\s@GetDataSet' {} a -> s {dataSetId = a} :: GetDataSet)++instance Core.AWSRequest GetDataSet where+  type AWSResponse GetDataSet = GetDataSetResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDataSetResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "AssetType")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "Origin")+            Prelude.<*> (x Data..?> "OriginDetails")+            Prelude.<*> (x Data..?> "SourceId")+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetDataSet where+  hashWithSalt _salt GetDataSet' {..} =+    _salt `Prelude.hashWithSalt` dataSetId++instance Prelude.NFData GetDataSet where+  rnf GetDataSet' {..} = Prelude.rnf dataSetId++instance Data.ToHeaders GetDataSet where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetDataSet where+  toPath GetDataSet' {..} =+    Prelude.mconcat+      ["/v1/data-sets/", Data.toBS dataSetId]++instance Data.ToQuery GetDataSet where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDataSetResponse' smart constructor.+data GetDataSetResponse = GetDataSetResponse'+  { -- | The ARN for the data set.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The type of asset that is added to a data set.+    assetType :: Prelude.Maybe AssetType,+    -- | The date and time that the data set was created, in ISO 8601 format.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The description for the data set.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the data set.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the data set.+    name :: Prelude.Maybe Prelude.Text,+    -- | A property that defines the data set as OWNED by the account (for+    -- providers) or ENTITLED to the account (for subscribers).+    origin :: Prelude.Maybe Origin,+    -- | If the origin of this data set is ENTITLED, includes the details for the+    -- product on AWS Marketplace.+    originDetails :: Prelude.Maybe OriginDetails,+    -- | The data set ID of the owned data set corresponding to the entitled data+    -- set being viewed. This parameter is returned when a data set owner is+    -- viewing the entitled copy of its owned data set.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | The tags for the data set.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The date and time that the data set was last updated, in ISO 8601+    -- format.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDataSetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getDataSetResponse_arn' - The ARN for the data set.+--+-- 'assetType', 'getDataSetResponse_assetType' - The type of asset that is added to a data set.+--+-- 'createdAt', 'getDataSetResponse_createdAt' - The date and time that the data set was created, in ISO 8601 format.+--+-- 'description', 'getDataSetResponse_description' - The description for the data set.+--+-- 'id', 'getDataSetResponse_id' - The unique identifier for the data set.+--+-- 'name', 'getDataSetResponse_name' - The name of the data set.+--+-- 'origin', 'getDataSetResponse_origin' - A property that defines the data set as OWNED by the account (for+-- providers) or ENTITLED to the account (for subscribers).+--+-- 'originDetails', 'getDataSetResponse_originDetails' - If the origin of this data set is ENTITLED, includes the details for the+-- product on AWS Marketplace.+--+-- 'sourceId', 'getDataSetResponse_sourceId' - The data set ID of the owned data set corresponding to the entitled data+-- set being viewed. This parameter is returned when a data set owner is+-- viewing the entitled copy of its owned data set.+--+-- 'tags', 'getDataSetResponse_tags' - The tags for the data set.+--+-- 'updatedAt', 'getDataSetResponse_updatedAt' - The date and time that the data set was last updated, in ISO 8601+-- format.+--+-- 'httpStatus', 'getDataSetResponse_httpStatus' - The response's http status code.+newGetDataSetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDataSetResponse+newGetDataSetResponse pHttpStatus_ =+  GetDataSetResponse'+    { arn = Prelude.Nothing,+      assetType = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      origin = Prelude.Nothing,+      originDetails = Prelude.Nothing,+      sourceId = Prelude.Nothing,+      tags = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN for the data set.+getDataSetResponse_arn :: Lens.Lens' GetDataSetResponse (Prelude.Maybe Prelude.Text)+getDataSetResponse_arn = Lens.lens (\GetDataSetResponse' {arn} -> arn) (\s@GetDataSetResponse' {} a -> s {arn = a} :: GetDataSetResponse)++-- | The type of asset that is added to a data set.+getDataSetResponse_assetType :: Lens.Lens' GetDataSetResponse (Prelude.Maybe AssetType)+getDataSetResponse_assetType = Lens.lens (\GetDataSetResponse' {assetType} -> assetType) (\s@GetDataSetResponse' {} a -> s {assetType = a} :: GetDataSetResponse)++-- | The date and time that the data set was created, in ISO 8601 format.+getDataSetResponse_createdAt :: Lens.Lens' GetDataSetResponse (Prelude.Maybe Prelude.UTCTime)+getDataSetResponse_createdAt = Lens.lens (\GetDataSetResponse' {createdAt} -> createdAt) (\s@GetDataSetResponse' {} a -> s {createdAt = a} :: GetDataSetResponse) Prelude.. Lens.mapping Data._Time++-- | The description for the data set.+getDataSetResponse_description :: Lens.Lens' GetDataSetResponse (Prelude.Maybe Prelude.Text)+getDataSetResponse_description = Lens.lens (\GetDataSetResponse' {description} -> description) (\s@GetDataSetResponse' {} a -> s {description = a} :: GetDataSetResponse)++-- | The unique identifier for the data set.+getDataSetResponse_id :: Lens.Lens' GetDataSetResponse (Prelude.Maybe Prelude.Text)+getDataSetResponse_id = Lens.lens (\GetDataSetResponse' {id} -> id) (\s@GetDataSetResponse' {} a -> s {id = a} :: GetDataSetResponse)++-- | The name of the data set.+getDataSetResponse_name :: Lens.Lens' GetDataSetResponse (Prelude.Maybe Prelude.Text)+getDataSetResponse_name = Lens.lens (\GetDataSetResponse' {name} -> name) (\s@GetDataSetResponse' {} a -> s {name = a} :: GetDataSetResponse)++-- | A property that defines the data set as OWNED by the account (for+-- providers) or ENTITLED to the account (for subscribers).+getDataSetResponse_origin :: Lens.Lens' GetDataSetResponse (Prelude.Maybe Origin)+getDataSetResponse_origin = Lens.lens (\GetDataSetResponse' {origin} -> origin) (\s@GetDataSetResponse' {} a -> s {origin = a} :: GetDataSetResponse)++-- | If the origin of this data set is ENTITLED, includes the details for the+-- product on AWS Marketplace.+getDataSetResponse_originDetails :: Lens.Lens' GetDataSetResponse (Prelude.Maybe OriginDetails)+getDataSetResponse_originDetails = Lens.lens (\GetDataSetResponse' {originDetails} -> originDetails) (\s@GetDataSetResponse' {} a -> s {originDetails = a} :: GetDataSetResponse)++-- | The data set ID of the owned data set corresponding to the entitled data+-- set being viewed. This parameter is returned when a data set owner is+-- viewing the entitled copy of its owned data set.+getDataSetResponse_sourceId :: Lens.Lens' GetDataSetResponse (Prelude.Maybe Prelude.Text)+getDataSetResponse_sourceId = Lens.lens (\GetDataSetResponse' {sourceId} -> sourceId) (\s@GetDataSetResponse' {} a -> s {sourceId = a} :: GetDataSetResponse)++-- | The tags for the data set.+getDataSetResponse_tags :: Lens.Lens' GetDataSetResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getDataSetResponse_tags = Lens.lens (\GetDataSetResponse' {tags} -> tags) (\s@GetDataSetResponse' {} a -> s {tags = a} :: GetDataSetResponse) Prelude.. Lens.mapping Lens.coerced++-- | The date and time that the data set was last updated, in ISO 8601+-- format.+getDataSetResponse_updatedAt :: Lens.Lens' GetDataSetResponse (Prelude.Maybe Prelude.UTCTime)+getDataSetResponse_updatedAt = Lens.lens (\GetDataSetResponse' {updatedAt} -> updatedAt) (\s@GetDataSetResponse' {} a -> s {updatedAt = a} :: GetDataSetResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+getDataSetResponse_httpStatus :: Lens.Lens' GetDataSetResponse Prelude.Int+getDataSetResponse_httpStatus = Lens.lens (\GetDataSetResponse' {httpStatus} -> httpStatus) (\s@GetDataSetResponse' {} a -> s {httpStatus = a} :: GetDataSetResponse)++instance Prelude.NFData GetDataSetResponse where+  rnf GetDataSetResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf assetType+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf origin+      `Prelude.seq` Prelude.rnf originDetails+      `Prelude.seq` Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/GetEventAction.hs view
@@ -0,0 +1,221 @@+{-# 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.DataExchange.GetEventAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation retrieves information about an event action.+module Amazonka.DataExchange.GetEventAction+  ( -- * Creating a Request+    GetEventAction (..),+    newGetEventAction,++    -- * Request Lenses+    getEventAction_eventActionId,++    -- * Destructuring the Response+    GetEventActionResponse (..),+    newGetEventActionResponse,++    -- * Response Lenses+    getEventActionResponse_action,+    getEventActionResponse_arn,+    getEventActionResponse_createdAt,+    getEventActionResponse_event,+    getEventActionResponse_id,+    getEventActionResponse_updatedAt,+    getEventActionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetEventAction' smart constructor.+data GetEventAction = GetEventAction'+  { -- | The unique identifier for the event action.+    eventActionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEventAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventActionId', 'getEventAction_eventActionId' - The unique identifier for the event action.+newGetEventAction ::+  -- | 'eventActionId'+  Prelude.Text ->+  GetEventAction+newGetEventAction pEventActionId_ =+  GetEventAction' {eventActionId = pEventActionId_}++-- | The unique identifier for the event action.+getEventAction_eventActionId :: Lens.Lens' GetEventAction Prelude.Text+getEventAction_eventActionId = Lens.lens (\GetEventAction' {eventActionId} -> eventActionId) (\s@GetEventAction' {} a -> s {eventActionId = a} :: GetEventAction)++instance Core.AWSRequest GetEventAction where+  type+    AWSResponse GetEventAction =+      GetEventActionResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetEventActionResponse'+            Prelude.<$> (x Data..?> "Action")+            Prelude.<*> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "Event")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetEventAction where+  hashWithSalt _salt GetEventAction' {..} =+    _salt `Prelude.hashWithSalt` eventActionId++instance Prelude.NFData GetEventAction where+  rnf GetEventAction' {..} = Prelude.rnf eventActionId++instance Data.ToHeaders GetEventAction where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetEventAction where+  toPath GetEventAction' {..} =+    Prelude.mconcat+      ["/v1/event-actions/", Data.toBS eventActionId]++instance Data.ToQuery GetEventAction where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetEventActionResponse' smart constructor.+data GetEventActionResponse = GetEventActionResponse'+  { -- | What occurs after a certain event.+    action :: Prelude.Maybe Action,+    -- | The ARN for the event action.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the event action was created, in ISO 8601 format.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | What occurs to start an action.+    event :: Prelude.Maybe Event,+    -- | The unique identifier for the event action.+    id :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the event action was last updated, in ISO 8601+    -- format.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEventActionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'action', 'getEventActionResponse_action' - What occurs after a certain event.+--+-- 'arn', 'getEventActionResponse_arn' - The ARN for the event action.+--+-- 'createdAt', 'getEventActionResponse_createdAt' - The date and time that the event action was created, in ISO 8601 format.+--+-- 'event', 'getEventActionResponse_event' - What occurs to start an action.+--+-- 'id', 'getEventActionResponse_id' - The unique identifier for the event action.+--+-- 'updatedAt', 'getEventActionResponse_updatedAt' - The date and time that the event action was last updated, in ISO 8601+-- format.+--+-- 'httpStatus', 'getEventActionResponse_httpStatus' - The response's http status code.+newGetEventActionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetEventActionResponse+newGetEventActionResponse pHttpStatus_ =+  GetEventActionResponse'+    { action = Prelude.Nothing,+      arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      event = Prelude.Nothing,+      id = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | What occurs after a certain event.+getEventActionResponse_action :: Lens.Lens' GetEventActionResponse (Prelude.Maybe Action)+getEventActionResponse_action = Lens.lens (\GetEventActionResponse' {action} -> action) (\s@GetEventActionResponse' {} a -> s {action = a} :: GetEventActionResponse)++-- | The ARN for the event action.+getEventActionResponse_arn :: Lens.Lens' GetEventActionResponse (Prelude.Maybe Prelude.Text)+getEventActionResponse_arn = Lens.lens (\GetEventActionResponse' {arn} -> arn) (\s@GetEventActionResponse' {} a -> s {arn = a} :: GetEventActionResponse)++-- | The date and time that the event action was created, in ISO 8601 format.+getEventActionResponse_createdAt :: Lens.Lens' GetEventActionResponse (Prelude.Maybe Prelude.UTCTime)+getEventActionResponse_createdAt = Lens.lens (\GetEventActionResponse' {createdAt} -> createdAt) (\s@GetEventActionResponse' {} a -> s {createdAt = a} :: GetEventActionResponse) Prelude.. Lens.mapping Data._Time++-- | What occurs to start an action.+getEventActionResponse_event :: Lens.Lens' GetEventActionResponse (Prelude.Maybe Event)+getEventActionResponse_event = Lens.lens (\GetEventActionResponse' {event} -> event) (\s@GetEventActionResponse' {} a -> s {event = a} :: GetEventActionResponse)++-- | The unique identifier for the event action.+getEventActionResponse_id :: Lens.Lens' GetEventActionResponse (Prelude.Maybe Prelude.Text)+getEventActionResponse_id = Lens.lens (\GetEventActionResponse' {id} -> id) (\s@GetEventActionResponse' {} a -> s {id = a} :: GetEventActionResponse)++-- | The date and time that the event action was last updated, in ISO 8601+-- format.+getEventActionResponse_updatedAt :: Lens.Lens' GetEventActionResponse (Prelude.Maybe Prelude.UTCTime)+getEventActionResponse_updatedAt = Lens.lens (\GetEventActionResponse' {updatedAt} -> updatedAt) (\s@GetEventActionResponse' {} a -> s {updatedAt = a} :: GetEventActionResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+getEventActionResponse_httpStatus :: Lens.Lens' GetEventActionResponse Prelude.Int+getEventActionResponse_httpStatus = Lens.lens (\GetEventActionResponse' {httpStatus} -> httpStatus) (\s@GetEventActionResponse' {} a -> s {httpStatus = a} :: GetEventActionResponse)++instance Prelude.NFData GetEventActionResponse where+  rnf GetEventActionResponse' {..} =+    Prelude.rnf action+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf event+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/GetJob.hs view
@@ -0,0 +1,238 @@+{-# 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.DataExchange.GetJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation returns information about a job.+module Amazonka.DataExchange.GetJob+  ( -- * Creating a Request+    GetJob (..),+    newGetJob,++    -- * Request Lenses+    getJob_jobId,++    -- * Destructuring the Response+    GetJobResponse (..),+    newGetJobResponse,++    -- * Response Lenses+    getJobResponse_arn,+    getJobResponse_createdAt,+    getJobResponse_details,+    getJobResponse_errors,+    getJobResponse_id,+    getJobResponse_state,+    getJobResponse_type,+    getJobResponse_updatedAt,+    getJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetJob' smart constructor.+data GetJob = GetJob'+  { -- | The unique identifier for a job.+    jobId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobId', 'getJob_jobId' - The unique identifier for a job.+newGetJob ::+  -- | 'jobId'+  Prelude.Text ->+  GetJob+newGetJob pJobId_ = GetJob' {jobId = pJobId_}++-- | The unique identifier for a job.+getJob_jobId :: Lens.Lens' GetJob Prelude.Text+getJob_jobId = Lens.lens (\GetJob' {jobId} -> jobId) (\s@GetJob' {} a -> s {jobId = a} :: GetJob)++instance Core.AWSRequest GetJob where+  type AWSResponse GetJob = GetJobResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetJobResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "Details")+            Prelude.<*> (x Data..?> "Errors" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "State")+            Prelude.<*> (x Data..?> "Type")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetJob where+  hashWithSalt _salt GetJob' {..} =+    _salt `Prelude.hashWithSalt` jobId++instance Prelude.NFData GetJob where+  rnf GetJob' {..} = Prelude.rnf jobId++instance Data.ToHeaders GetJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetJob where+  toPath GetJob' {..} =+    Prelude.mconcat ["/v1/jobs/", Data.toBS jobId]++instance Data.ToQuery GetJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetJobResponse' smart constructor.+data GetJobResponse = GetJobResponse'+  { -- | The ARN for the job.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the job was created, in ISO 8601 format.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | Details about the job.+    details :: Prelude.Maybe ResponseDetails,+    -- | The errors associated with jobs.+    errors :: Prelude.Maybe [JobError],+    -- | The unique identifier for the job.+    id :: Prelude.Maybe Prelude.Text,+    -- | The state of the job.+    state :: Prelude.Maybe State,+    -- | The job type.+    type' :: Prelude.Maybe Type,+    -- | The date and time that the job was last updated, in ISO 8601 format.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getJobResponse_arn' - The ARN for the job.+--+-- 'createdAt', 'getJobResponse_createdAt' - The date and time that the job was created, in ISO 8601 format.+--+-- 'details', 'getJobResponse_details' - Details about the job.+--+-- 'errors', 'getJobResponse_errors' - The errors associated with jobs.+--+-- 'id', 'getJobResponse_id' - The unique identifier for the job.+--+-- 'state', 'getJobResponse_state' - The state of the job.+--+-- 'type'', 'getJobResponse_type' - The job type.+--+-- 'updatedAt', 'getJobResponse_updatedAt' - The date and time that the job was last updated, in ISO 8601 format.+--+-- 'httpStatus', 'getJobResponse_httpStatus' - The response's http status code.+newGetJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetJobResponse+newGetJobResponse pHttpStatus_ =+  GetJobResponse'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      details = Prelude.Nothing,+      errors = Prelude.Nothing,+      id = Prelude.Nothing,+      state = Prelude.Nothing,+      type' = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN for the job.+getJobResponse_arn :: Lens.Lens' GetJobResponse (Prelude.Maybe Prelude.Text)+getJobResponse_arn = Lens.lens (\GetJobResponse' {arn} -> arn) (\s@GetJobResponse' {} a -> s {arn = a} :: GetJobResponse)++-- | The date and time that the job was created, in ISO 8601 format.+getJobResponse_createdAt :: Lens.Lens' GetJobResponse (Prelude.Maybe Prelude.UTCTime)+getJobResponse_createdAt = Lens.lens (\GetJobResponse' {createdAt} -> createdAt) (\s@GetJobResponse' {} a -> s {createdAt = a} :: GetJobResponse) Prelude.. Lens.mapping Data._Time++-- | Details about the job.+getJobResponse_details :: Lens.Lens' GetJobResponse (Prelude.Maybe ResponseDetails)+getJobResponse_details = Lens.lens (\GetJobResponse' {details} -> details) (\s@GetJobResponse' {} a -> s {details = a} :: GetJobResponse)++-- | The errors associated with jobs.+getJobResponse_errors :: Lens.Lens' GetJobResponse (Prelude.Maybe [JobError])+getJobResponse_errors = Lens.lens (\GetJobResponse' {errors} -> errors) (\s@GetJobResponse' {} a -> s {errors = a} :: GetJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifier for the job.+getJobResponse_id :: Lens.Lens' GetJobResponse (Prelude.Maybe Prelude.Text)+getJobResponse_id = Lens.lens (\GetJobResponse' {id} -> id) (\s@GetJobResponse' {} a -> s {id = a} :: GetJobResponse)++-- | The state of the job.+getJobResponse_state :: Lens.Lens' GetJobResponse (Prelude.Maybe State)+getJobResponse_state = Lens.lens (\GetJobResponse' {state} -> state) (\s@GetJobResponse' {} a -> s {state = a} :: GetJobResponse)++-- | The job type.+getJobResponse_type :: Lens.Lens' GetJobResponse (Prelude.Maybe Type)+getJobResponse_type = Lens.lens (\GetJobResponse' {type'} -> type') (\s@GetJobResponse' {} a -> s {type' = a} :: GetJobResponse)++-- | The date and time that the job was last updated, in ISO 8601 format.+getJobResponse_updatedAt :: Lens.Lens' GetJobResponse (Prelude.Maybe Prelude.UTCTime)+getJobResponse_updatedAt = Lens.lens (\GetJobResponse' {updatedAt} -> updatedAt) (\s@GetJobResponse' {} a -> s {updatedAt = a} :: GetJobResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+getJobResponse_httpStatus :: Lens.Lens' GetJobResponse Prelude.Int+getJobResponse_httpStatus = Lens.lens (\GetJobResponse' {httpStatus} -> httpStatus) (\s@GetJobResponse' {} a -> s {httpStatus = a} :: GetJobResponse)++instance Prelude.NFData GetJobResponse where+  rnf GetJobResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf details+      `Prelude.seq` Prelude.rnf errors+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/GetRevision.hs view
@@ -0,0 +1,349 @@+{-# 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.DataExchange.GetRevision+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation returns information about a revision.+module Amazonka.DataExchange.GetRevision+  ( -- * Creating a Request+    GetRevision (..),+    newGetRevision,++    -- * Request Lenses+    getRevision_dataSetId,+    getRevision_revisionId,++    -- * Destructuring the Response+    GetRevisionResponse (..),+    newGetRevisionResponse,++    -- * Response Lenses+    getRevisionResponse_arn,+    getRevisionResponse_comment,+    getRevisionResponse_createdAt,+    getRevisionResponse_dataSetId,+    getRevisionResponse_finalized,+    getRevisionResponse_id,+    getRevisionResponse_revocationComment,+    getRevisionResponse_revoked,+    getRevisionResponse_revokedAt,+    getRevisionResponse_sourceId,+    getRevisionResponse_tags,+    getRevisionResponse_updatedAt,+    getRevisionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetRevision' smart constructor.+data GetRevision = GetRevision'+  { -- | The unique identifier for a data set.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for a revision.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRevision' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSetId', 'getRevision_dataSetId' - The unique identifier for a data set.+--+-- 'revisionId', 'getRevision_revisionId' - The unique identifier for a revision.+newGetRevision ::+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  GetRevision+newGetRevision pDataSetId_ pRevisionId_ =+  GetRevision'+    { dataSetId = pDataSetId_,+      revisionId = pRevisionId_+    }++-- | The unique identifier for a data set.+getRevision_dataSetId :: Lens.Lens' GetRevision Prelude.Text+getRevision_dataSetId = Lens.lens (\GetRevision' {dataSetId} -> dataSetId) (\s@GetRevision' {} a -> s {dataSetId = a} :: GetRevision)++-- | The unique identifier for a revision.+getRevision_revisionId :: Lens.Lens' GetRevision Prelude.Text+getRevision_revisionId = Lens.lens (\GetRevision' {revisionId} -> revisionId) (\s@GetRevision' {} a -> s {revisionId = a} :: GetRevision)++instance Core.AWSRequest GetRevision where+  type AWSResponse GetRevision = GetRevisionResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetRevisionResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "Comment")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "DataSetId")+            Prelude.<*> (x Data..?> "Finalized")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "RevocationComment")+            Prelude.<*> (x Data..?> "Revoked")+            Prelude.<*> (x Data..?> "RevokedAt")+            Prelude.<*> (x Data..?> "SourceId")+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetRevision where+  hashWithSalt _salt GetRevision' {..} =+    _salt+      `Prelude.hashWithSalt` dataSetId+      `Prelude.hashWithSalt` revisionId++instance Prelude.NFData GetRevision where+  rnf GetRevision' {..} =+    Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId++instance Data.ToHeaders GetRevision where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetRevision where+  toPath GetRevision' {..} =+    Prelude.mconcat+      [ "/v1/data-sets/",+        Data.toBS dataSetId,+        "/revisions/",+        Data.toBS revisionId+      ]++instance Data.ToQuery GetRevision where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetRevisionResponse' smart constructor.+data GetRevisionResponse = GetRevisionResponse'+  { -- | The ARN for the revision.+    arn :: Prelude.Maybe Prelude.Text,+    -- | An optional comment about the revision.+    comment :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the revision was created, in ISO 8601 format.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The unique identifier for the data set associated with the data set+    -- revision.+    dataSetId :: Prelude.Maybe Prelude.Text,+    -- | To publish a revision to a data set in a product, the revision must+    -- first be finalized. Finalizing a revision tells AWS Data Exchange that+    -- your changes to the assets in the revision are complete. After it\'s in+    -- this read-only state, you can publish the revision to your products.+    -- Finalized revisions can be published through the AWS Data Exchange+    -- console or the AWS Marketplace Catalog API, using the StartChangeSet AWS+    -- Marketplace Catalog API action. When using the API, revisions are+    -- uniquely identified by their ARN.+    finalized :: Prelude.Maybe Prelude.Bool,+    -- | The unique identifier for the revision.+    id :: Prelude.Maybe Prelude.Text,+    -- | A required comment to inform subscribers of the reason their access to+    -- the revision was revoked.+    revocationComment :: Prelude.Maybe Prelude.Text,+    -- | A status indicating that subscribers\' access to the revision was+    -- revoked.+    revoked :: Prelude.Maybe Prelude.Bool,+    -- | The date and time that the revision was revoked, in ISO 8601 format.+    revokedAt :: Prelude.Maybe Data.ISO8601,+    -- | The revision ID of the owned revision corresponding to the entitled+    -- revision being viewed. This parameter is returned when a revision owner+    -- is viewing the entitled copy of its owned revision.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | The tags for the revision.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The date and time that the revision was last updated, in ISO 8601+    -- format.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRevisionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getRevisionResponse_arn' - The ARN for the revision.+--+-- 'comment', 'getRevisionResponse_comment' - An optional comment about the revision.+--+-- 'createdAt', 'getRevisionResponse_createdAt' - The date and time that the revision was created, in ISO 8601 format.+--+-- 'dataSetId', 'getRevisionResponse_dataSetId' - The unique identifier for the data set associated with the data set+-- revision.+--+-- 'finalized', 'getRevisionResponse_finalized' - To publish a revision to a data set in a product, the revision must+-- first be finalized. Finalizing a revision tells AWS Data Exchange that+-- your changes to the assets in the revision are complete. After it\'s in+-- this read-only state, you can publish the revision to your products.+-- Finalized revisions can be published through the AWS Data Exchange+-- console or the AWS Marketplace Catalog API, using the StartChangeSet AWS+-- Marketplace Catalog API action. When using the API, revisions are+-- uniquely identified by their ARN.+--+-- 'id', 'getRevisionResponse_id' - The unique identifier for the revision.+--+-- 'revocationComment', 'getRevisionResponse_revocationComment' - A required comment to inform subscribers of the reason their access to+-- the revision was revoked.+--+-- 'revoked', 'getRevisionResponse_revoked' - A status indicating that subscribers\' access to the revision was+-- revoked.+--+-- 'revokedAt', 'getRevisionResponse_revokedAt' - The date and time that the revision was revoked, in ISO 8601 format.+--+-- 'sourceId', 'getRevisionResponse_sourceId' - The revision ID of the owned revision corresponding to the entitled+-- revision being viewed. This parameter is returned when a revision owner+-- is viewing the entitled copy of its owned revision.+--+-- 'tags', 'getRevisionResponse_tags' - The tags for the revision.+--+-- 'updatedAt', 'getRevisionResponse_updatedAt' - The date and time that the revision was last updated, in ISO 8601+-- format.+--+-- 'httpStatus', 'getRevisionResponse_httpStatus' - The response's http status code.+newGetRevisionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetRevisionResponse+newGetRevisionResponse pHttpStatus_ =+  GetRevisionResponse'+    { arn = Prelude.Nothing,+      comment = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      dataSetId = Prelude.Nothing,+      finalized = Prelude.Nothing,+      id = Prelude.Nothing,+      revocationComment = Prelude.Nothing,+      revoked = Prelude.Nothing,+      revokedAt = Prelude.Nothing,+      sourceId = Prelude.Nothing,+      tags = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN for the revision.+getRevisionResponse_arn :: Lens.Lens' GetRevisionResponse (Prelude.Maybe Prelude.Text)+getRevisionResponse_arn = Lens.lens (\GetRevisionResponse' {arn} -> arn) (\s@GetRevisionResponse' {} a -> s {arn = a} :: GetRevisionResponse)++-- | An optional comment about the revision.+getRevisionResponse_comment :: Lens.Lens' GetRevisionResponse (Prelude.Maybe Prelude.Text)+getRevisionResponse_comment = Lens.lens (\GetRevisionResponse' {comment} -> comment) (\s@GetRevisionResponse' {} a -> s {comment = a} :: GetRevisionResponse)++-- | The date and time that the revision was created, in ISO 8601 format.+getRevisionResponse_createdAt :: Lens.Lens' GetRevisionResponse (Prelude.Maybe Prelude.UTCTime)+getRevisionResponse_createdAt = Lens.lens (\GetRevisionResponse' {createdAt} -> createdAt) (\s@GetRevisionResponse' {} a -> s {createdAt = a} :: GetRevisionResponse) Prelude.. Lens.mapping Data._Time++-- | The unique identifier for the data set associated with the data set+-- revision.+getRevisionResponse_dataSetId :: Lens.Lens' GetRevisionResponse (Prelude.Maybe Prelude.Text)+getRevisionResponse_dataSetId = Lens.lens (\GetRevisionResponse' {dataSetId} -> dataSetId) (\s@GetRevisionResponse' {} a -> s {dataSetId = a} :: GetRevisionResponse)++-- | To publish a revision to a data set in a product, the revision must+-- first be finalized. Finalizing a revision tells AWS Data Exchange that+-- your changes to the assets in the revision are complete. After it\'s in+-- this read-only state, you can publish the revision to your products.+-- Finalized revisions can be published through the AWS Data Exchange+-- console or the AWS Marketplace Catalog API, using the StartChangeSet AWS+-- Marketplace Catalog API action. When using the API, revisions are+-- uniquely identified by their ARN.+getRevisionResponse_finalized :: Lens.Lens' GetRevisionResponse (Prelude.Maybe Prelude.Bool)+getRevisionResponse_finalized = Lens.lens (\GetRevisionResponse' {finalized} -> finalized) (\s@GetRevisionResponse' {} a -> s {finalized = a} :: GetRevisionResponse)++-- | The unique identifier for the revision.+getRevisionResponse_id :: Lens.Lens' GetRevisionResponse (Prelude.Maybe Prelude.Text)+getRevisionResponse_id = Lens.lens (\GetRevisionResponse' {id} -> id) (\s@GetRevisionResponse' {} a -> s {id = a} :: GetRevisionResponse)++-- | A required comment to inform subscribers of the reason their access to+-- the revision was revoked.+getRevisionResponse_revocationComment :: Lens.Lens' GetRevisionResponse (Prelude.Maybe Prelude.Text)+getRevisionResponse_revocationComment = Lens.lens (\GetRevisionResponse' {revocationComment} -> revocationComment) (\s@GetRevisionResponse' {} a -> s {revocationComment = a} :: GetRevisionResponse)++-- | A status indicating that subscribers\' access to the revision was+-- revoked.+getRevisionResponse_revoked :: Lens.Lens' GetRevisionResponse (Prelude.Maybe Prelude.Bool)+getRevisionResponse_revoked = Lens.lens (\GetRevisionResponse' {revoked} -> revoked) (\s@GetRevisionResponse' {} a -> s {revoked = a} :: GetRevisionResponse)++-- | The date and time that the revision was revoked, in ISO 8601 format.+getRevisionResponse_revokedAt :: Lens.Lens' GetRevisionResponse (Prelude.Maybe Prelude.UTCTime)+getRevisionResponse_revokedAt = Lens.lens (\GetRevisionResponse' {revokedAt} -> revokedAt) (\s@GetRevisionResponse' {} a -> s {revokedAt = a} :: GetRevisionResponse) Prelude.. Lens.mapping Data._Time++-- | The revision ID of the owned revision corresponding to the entitled+-- revision being viewed. This parameter is returned when a revision owner+-- is viewing the entitled copy of its owned revision.+getRevisionResponse_sourceId :: Lens.Lens' GetRevisionResponse (Prelude.Maybe Prelude.Text)+getRevisionResponse_sourceId = Lens.lens (\GetRevisionResponse' {sourceId} -> sourceId) (\s@GetRevisionResponse' {} a -> s {sourceId = a} :: GetRevisionResponse)++-- | The tags for the revision.+getRevisionResponse_tags :: Lens.Lens' GetRevisionResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getRevisionResponse_tags = Lens.lens (\GetRevisionResponse' {tags} -> tags) (\s@GetRevisionResponse' {} a -> s {tags = a} :: GetRevisionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The date and time that the revision was last updated, in ISO 8601+-- format.+getRevisionResponse_updatedAt :: Lens.Lens' GetRevisionResponse (Prelude.Maybe Prelude.UTCTime)+getRevisionResponse_updatedAt = Lens.lens (\GetRevisionResponse' {updatedAt} -> updatedAt) (\s@GetRevisionResponse' {} a -> s {updatedAt = a} :: GetRevisionResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+getRevisionResponse_httpStatus :: Lens.Lens' GetRevisionResponse Prelude.Int+getRevisionResponse_httpStatus = Lens.lens (\GetRevisionResponse' {httpStatus} -> httpStatus) (\s@GetRevisionResponse' {} a -> s {httpStatus = a} :: GetRevisionResponse)++instance Prelude.NFData GetRevisionResponse where+  rnf GetRevisionResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf comment+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf finalized+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf revocationComment+      `Prelude.seq` Prelude.rnf revoked+      `Prelude.seq` Prelude.rnf revokedAt+      `Prelude.seq` Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/Lens.hs view
@@ -0,0 +1,727 @@+{-# 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.DataExchange.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.DataExchange.Lens+  ( -- * Operations++    -- ** CancelJob+    cancelJob_jobId,++    -- ** CreateDataSet+    createDataSet_tags,+    createDataSet_assetType,+    createDataSet_description,+    createDataSet_name,+    createDataSetResponse_arn,+    createDataSetResponse_assetType,+    createDataSetResponse_createdAt,+    createDataSetResponse_description,+    createDataSetResponse_id,+    createDataSetResponse_name,+    createDataSetResponse_origin,+    createDataSetResponse_originDetails,+    createDataSetResponse_sourceId,+    createDataSetResponse_tags,+    createDataSetResponse_updatedAt,+    createDataSetResponse_httpStatus,++    -- ** CreateEventAction+    createEventAction_action,+    createEventAction_event,+    createEventActionResponse_action,+    createEventActionResponse_arn,+    createEventActionResponse_createdAt,+    createEventActionResponse_event,+    createEventActionResponse_id,+    createEventActionResponse_updatedAt,+    createEventActionResponse_httpStatus,++    -- ** CreateJob+    createJob_details,+    createJob_type,+    createJobResponse_arn,+    createJobResponse_createdAt,+    createJobResponse_details,+    createJobResponse_errors,+    createJobResponse_id,+    createJobResponse_state,+    createJobResponse_type,+    createJobResponse_updatedAt,+    createJobResponse_httpStatus,++    -- ** CreateRevision+    createRevision_comment,+    createRevision_tags,+    createRevision_dataSetId,+    createRevisionResponse_arn,+    createRevisionResponse_comment,+    createRevisionResponse_createdAt,+    createRevisionResponse_dataSetId,+    createRevisionResponse_finalized,+    createRevisionResponse_id,+    createRevisionResponse_revocationComment,+    createRevisionResponse_revoked,+    createRevisionResponse_revokedAt,+    createRevisionResponse_sourceId,+    createRevisionResponse_tags,+    createRevisionResponse_updatedAt,+    createRevisionResponse_httpStatus,++    -- ** DeleteAsset+    deleteAsset_assetId,+    deleteAsset_dataSetId,+    deleteAsset_revisionId,++    -- ** DeleteDataSet+    deleteDataSet_dataSetId,++    -- ** DeleteEventAction+    deleteEventAction_eventActionId,++    -- ** DeleteRevision+    deleteRevision_dataSetId,+    deleteRevision_revisionId,++    -- ** GetAsset+    getAsset_assetId,+    getAsset_dataSetId,+    getAsset_revisionId,+    getAssetResponse_arn,+    getAssetResponse_assetDetails,+    getAssetResponse_assetType,+    getAssetResponse_createdAt,+    getAssetResponse_dataSetId,+    getAssetResponse_id,+    getAssetResponse_name,+    getAssetResponse_revisionId,+    getAssetResponse_sourceId,+    getAssetResponse_updatedAt,+    getAssetResponse_httpStatus,++    -- ** GetDataSet+    getDataSet_dataSetId,+    getDataSetResponse_arn,+    getDataSetResponse_assetType,+    getDataSetResponse_createdAt,+    getDataSetResponse_description,+    getDataSetResponse_id,+    getDataSetResponse_name,+    getDataSetResponse_origin,+    getDataSetResponse_originDetails,+    getDataSetResponse_sourceId,+    getDataSetResponse_tags,+    getDataSetResponse_updatedAt,+    getDataSetResponse_httpStatus,++    -- ** GetEventAction+    getEventAction_eventActionId,+    getEventActionResponse_action,+    getEventActionResponse_arn,+    getEventActionResponse_createdAt,+    getEventActionResponse_event,+    getEventActionResponse_id,+    getEventActionResponse_updatedAt,+    getEventActionResponse_httpStatus,++    -- ** GetJob+    getJob_jobId,+    getJobResponse_arn,+    getJobResponse_createdAt,+    getJobResponse_details,+    getJobResponse_errors,+    getJobResponse_id,+    getJobResponse_state,+    getJobResponse_type,+    getJobResponse_updatedAt,+    getJobResponse_httpStatus,++    -- ** GetRevision+    getRevision_dataSetId,+    getRevision_revisionId,+    getRevisionResponse_arn,+    getRevisionResponse_comment,+    getRevisionResponse_createdAt,+    getRevisionResponse_dataSetId,+    getRevisionResponse_finalized,+    getRevisionResponse_id,+    getRevisionResponse_revocationComment,+    getRevisionResponse_revoked,+    getRevisionResponse_revokedAt,+    getRevisionResponse_sourceId,+    getRevisionResponse_tags,+    getRevisionResponse_updatedAt,+    getRevisionResponse_httpStatus,++    -- ** ListDataSetRevisions+    listDataSetRevisions_maxResults,+    listDataSetRevisions_nextToken,+    listDataSetRevisions_dataSetId,+    listDataSetRevisionsResponse_nextToken,+    listDataSetRevisionsResponse_revisions,+    listDataSetRevisionsResponse_httpStatus,++    -- ** ListDataSets+    listDataSets_maxResults,+    listDataSets_nextToken,+    listDataSets_origin,+    listDataSetsResponse_dataSets,+    listDataSetsResponse_nextToken,+    listDataSetsResponse_httpStatus,++    -- ** ListEventActions+    listEventActions_eventSourceId,+    listEventActions_maxResults,+    listEventActions_nextToken,+    listEventActionsResponse_eventActions,+    listEventActionsResponse_nextToken,+    listEventActionsResponse_httpStatus,++    -- ** ListJobs+    listJobs_dataSetId,+    listJobs_maxResults,+    listJobs_nextToken,+    listJobs_revisionId,+    listJobsResponse_jobs,+    listJobsResponse_nextToken,+    listJobsResponse_httpStatus,++    -- ** ListRevisionAssets+    listRevisionAssets_maxResults,+    listRevisionAssets_nextToken,+    listRevisionAssets_dataSetId,+    listRevisionAssets_revisionId,+    listRevisionAssetsResponse_assets,+    listRevisionAssetsResponse_nextToken,+    listRevisionAssetsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** RevokeRevision+    revokeRevision_dataSetId,+    revokeRevision_revisionId,+    revokeRevision_revocationComment,+    revokeRevisionResponse_arn,+    revokeRevisionResponse_comment,+    revokeRevisionResponse_createdAt,+    revokeRevisionResponse_dataSetId,+    revokeRevisionResponse_finalized,+    revokeRevisionResponse_id,+    revokeRevisionResponse_revocationComment,+    revokeRevisionResponse_revoked,+    revokeRevisionResponse_revokedAt,+    revokeRevisionResponse_sourceId,+    revokeRevisionResponse_updatedAt,+    revokeRevisionResponse_httpStatus,++    -- ** SendApiAsset+    sendApiAsset_body,+    sendApiAsset_method,+    sendApiAsset_path,+    sendApiAsset_queryStringParameters,+    sendApiAsset_requestHeaders,+    sendApiAsset_assetId,+    sendApiAsset_dataSetId,+    sendApiAsset_revisionId,+    sendApiAssetResponse_body,+    sendApiAssetResponse_responseHeaders,+    sendApiAssetResponse_httpStatus,++    -- ** StartJob+    startJob_jobId,+    startJobResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- ** UpdateAsset+    updateAsset_assetId,+    updateAsset_dataSetId,+    updateAsset_name,+    updateAsset_revisionId,+    updateAssetResponse_arn,+    updateAssetResponse_assetDetails,+    updateAssetResponse_assetType,+    updateAssetResponse_createdAt,+    updateAssetResponse_dataSetId,+    updateAssetResponse_id,+    updateAssetResponse_name,+    updateAssetResponse_revisionId,+    updateAssetResponse_sourceId,+    updateAssetResponse_updatedAt,+    updateAssetResponse_httpStatus,++    -- ** UpdateDataSet+    updateDataSet_description,+    updateDataSet_name,+    updateDataSet_dataSetId,+    updateDataSetResponse_arn,+    updateDataSetResponse_assetType,+    updateDataSetResponse_createdAt,+    updateDataSetResponse_description,+    updateDataSetResponse_id,+    updateDataSetResponse_name,+    updateDataSetResponse_origin,+    updateDataSetResponse_originDetails,+    updateDataSetResponse_sourceId,+    updateDataSetResponse_updatedAt,+    updateDataSetResponse_httpStatus,++    -- ** UpdateEventAction+    updateEventAction_action,+    updateEventAction_eventActionId,+    updateEventActionResponse_action,+    updateEventActionResponse_arn,+    updateEventActionResponse_createdAt,+    updateEventActionResponse_event,+    updateEventActionResponse_id,+    updateEventActionResponse_updatedAt,+    updateEventActionResponse_httpStatus,++    -- ** UpdateRevision+    updateRevision_comment,+    updateRevision_finalized,+    updateRevision_dataSetId,+    updateRevision_revisionId,+    updateRevisionResponse_arn,+    updateRevisionResponse_comment,+    updateRevisionResponse_createdAt,+    updateRevisionResponse_dataSetId,+    updateRevisionResponse_finalized,+    updateRevisionResponse_id,+    updateRevisionResponse_revocationComment,+    updateRevisionResponse_revoked,+    updateRevisionResponse_revokedAt,+    updateRevisionResponse_sourceId,+    updateRevisionResponse_updatedAt,+    updateRevisionResponse_httpStatus,++    -- * Types++    -- ** Action+    action_exportRevisionToS3,++    -- ** ApiGatewayApiAsset+    apiGatewayApiAsset_apiDescription,+    apiGatewayApiAsset_apiEndpoint,+    apiGatewayApiAsset_apiId,+    apiGatewayApiAsset_apiKey,+    apiGatewayApiAsset_apiName,+    apiGatewayApiAsset_apiSpecificationDownloadUrl,+    apiGatewayApiAsset_apiSpecificationDownloadUrlExpiresAt,+    apiGatewayApiAsset_protocolType,+    apiGatewayApiAsset_stage,++    -- ** AssetDestinationEntry+    assetDestinationEntry_key,+    assetDestinationEntry_assetId,+    assetDestinationEntry_bucket,++    -- ** AssetDetails+    assetDetails_apiGatewayApiAsset,+    assetDetails_lakeFormationDataPermissionAsset,+    assetDetails_redshiftDataShareAsset,+    assetDetails_s3DataAccessAsset,+    assetDetails_s3SnapshotAsset,++    -- ** AssetEntry+    assetEntry_sourceId,+    assetEntry_arn,+    assetEntry_assetDetails,+    assetEntry_assetType,+    assetEntry_createdAt,+    assetEntry_dataSetId,+    assetEntry_id,+    assetEntry_name,+    assetEntry_revisionId,+    assetEntry_updatedAt,++    -- ** AssetSourceEntry+    assetSourceEntry_bucket,+    assetSourceEntry_key,++    -- ** AutoExportRevisionDestinationEntry+    autoExportRevisionDestinationEntry_keyPattern,+    autoExportRevisionDestinationEntry_bucket,++    -- ** AutoExportRevisionToS3RequestDetails+    autoExportRevisionToS3RequestDetails_encryption,+    autoExportRevisionToS3RequestDetails_revisionDestination,++    -- ** CreateS3DataAccessFromS3BucketRequestDetails+    createS3DataAccessFromS3BucketRequestDetails_assetSource,+    createS3DataAccessFromS3BucketRequestDetails_dataSetId,+    createS3DataAccessFromS3BucketRequestDetails_revisionId,++    -- ** CreateS3DataAccessFromS3BucketResponseDetails+    createS3DataAccessFromS3BucketResponseDetails_assetSource,+    createS3DataAccessFromS3BucketResponseDetails_dataSetId,+    createS3DataAccessFromS3BucketResponseDetails_revisionId,++    -- ** DataSetEntry+    dataSetEntry_originDetails,+    dataSetEntry_sourceId,+    dataSetEntry_arn,+    dataSetEntry_assetType,+    dataSetEntry_createdAt,+    dataSetEntry_description,+    dataSetEntry_id,+    dataSetEntry_name,+    dataSetEntry_origin,+    dataSetEntry_updatedAt,++    -- ** DatabaseLFTagPolicy+    databaseLFTagPolicy_expression,++    -- ** DatabaseLFTagPolicyAndPermissions+    databaseLFTagPolicyAndPermissions_expression,+    databaseLFTagPolicyAndPermissions_permissions,++    -- ** Details+    details_importAssetFromSignedUrlJobErrorDetails,+    details_importAssetsFromS3JobErrorDetails,++    -- ** Event+    event_revisionPublished,++    -- ** EventActionEntry+    eventActionEntry_action,+    eventActionEntry_arn,+    eventActionEntry_createdAt,+    eventActionEntry_event,+    eventActionEntry_id,+    eventActionEntry_updatedAt,++    -- ** ExportAssetToSignedUrlRequestDetails+    exportAssetToSignedUrlRequestDetails_assetId,+    exportAssetToSignedUrlRequestDetails_dataSetId,+    exportAssetToSignedUrlRequestDetails_revisionId,++    -- ** ExportAssetToSignedUrlResponseDetails+    exportAssetToSignedUrlResponseDetails_signedUrl,+    exportAssetToSignedUrlResponseDetails_signedUrlExpiresAt,+    exportAssetToSignedUrlResponseDetails_assetId,+    exportAssetToSignedUrlResponseDetails_dataSetId,+    exportAssetToSignedUrlResponseDetails_revisionId,++    -- ** ExportAssetsToS3RequestDetails+    exportAssetsToS3RequestDetails_encryption,+    exportAssetsToS3RequestDetails_assetDestinations,+    exportAssetsToS3RequestDetails_dataSetId,+    exportAssetsToS3RequestDetails_revisionId,++    -- ** ExportAssetsToS3ResponseDetails+    exportAssetsToS3ResponseDetails_encryption,+    exportAssetsToS3ResponseDetails_assetDestinations,+    exportAssetsToS3ResponseDetails_dataSetId,+    exportAssetsToS3ResponseDetails_revisionId,++    -- ** ExportRevisionsToS3RequestDetails+    exportRevisionsToS3RequestDetails_encryption,+    exportRevisionsToS3RequestDetails_dataSetId,+    exportRevisionsToS3RequestDetails_revisionDestinations,++    -- ** ExportRevisionsToS3ResponseDetails+    exportRevisionsToS3ResponseDetails_encryption,+    exportRevisionsToS3ResponseDetails_eventActionArn,+    exportRevisionsToS3ResponseDetails_dataSetId,+    exportRevisionsToS3ResponseDetails_revisionDestinations,++    -- ** ExportServerSideEncryption+    exportServerSideEncryption_kmsKeyArn,+    exportServerSideEncryption_type,++    -- ** ImportAssetFromApiGatewayApiRequestDetails+    importAssetFromApiGatewayApiRequestDetails_apiDescription,+    importAssetFromApiGatewayApiRequestDetails_apiKey,+    importAssetFromApiGatewayApiRequestDetails_apiId,+    importAssetFromApiGatewayApiRequestDetails_apiName,+    importAssetFromApiGatewayApiRequestDetails_apiSpecificationMd5Hash,+    importAssetFromApiGatewayApiRequestDetails_dataSetId,+    importAssetFromApiGatewayApiRequestDetails_protocolType,+    importAssetFromApiGatewayApiRequestDetails_revisionId,+    importAssetFromApiGatewayApiRequestDetails_stage,++    -- ** ImportAssetFromApiGatewayApiResponseDetails+    importAssetFromApiGatewayApiResponseDetails_apiDescription,+    importAssetFromApiGatewayApiResponseDetails_apiKey,+    importAssetFromApiGatewayApiResponseDetails_apiId,+    importAssetFromApiGatewayApiResponseDetails_apiName,+    importAssetFromApiGatewayApiResponseDetails_apiSpecificationMd5Hash,+    importAssetFromApiGatewayApiResponseDetails_apiSpecificationUploadUrl,+    importAssetFromApiGatewayApiResponseDetails_apiSpecificationUploadUrlExpiresAt,+    importAssetFromApiGatewayApiResponseDetails_dataSetId,+    importAssetFromApiGatewayApiResponseDetails_protocolType,+    importAssetFromApiGatewayApiResponseDetails_revisionId,+    importAssetFromApiGatewayApiResponseDetails_stage,++    -- ** ImportAssetFromSignedUrlJobErrorDetails+    importAssetFromSignedUrlJobErrorDetails_assetName,++    -- ** ImportAssetFromSignedUrlRequestDetails+    importAssetFromSignedUrlRequestDetails_assetName,+    importAssetFromSignedUrlRequestDetails_dataSetId,+    importAssetFromSignedUrlRequestDetails_md5Hash,+    importAssetFromSignedUrlRequestDetails_revisionId,++    -- ** ImportAssetFromSignedUrlResponseDetails+    importAssetFromSignedUrlResponseDetails_md5Hash,+    importAssetFromSignedUrlResponseDetails_signedUrl,+    importAssetFromSignedUrlResponseDetails_signedUrlExpiresAt,+    importAssetFromSignedUrlResponseDetails_assetName,+    importAssetFromSignedUrlResponseDetails_dataSetId,+    importAssetFromSignedUrlResponseDetails_revisionId,++    -- ** ImportAssetsFromLakeFormationTagPolicyRequestDetails+    importAssetsFromLakeFormationTagPolicyRequestDetails_database,+    importAssetsFromLakeFormationTagPolicyRequestDetails_table,+    importAssetsFromLakeFormationTagPolicyRequestDetails_catalogId,+    importAssetsFromLakeFormationTagPolicyRequestDetails_roleArn,+    importAssetsFromLakeFormationTagPolicyRequestDetails_dataSetId,+    importAssetsFromLakeFormationTagPolicyRequestDetails_revisionId,++    -- ** ImportAssetsFromLakeFormationTagPolicyResponseDetails+    importAssetsFromLakeFormationTagPolicyResponseDetails_database,+    importAssetsFromLakeFormationTagPolicyResponseDetails_table,+    importAssetsFromLakeFormationTagPolicyResponseDetails_catalogId,+    importAssetsFromLakeFormationTagPolicyResponseDetails_roleArn,+    importAssetsFromLakeFormationTagPolicyResponseDetails_dataSetId,+    importAssetsFromLakeFormationTagPolicyResponseDetails_revisionId,++    -- ** ImportAssetsFromRedshiftDataSharesRequestDetails+    importAssetsFromRedshiftDataSharesRequestDetails_assetSources,+    importAssetsFromRedshiftDataSharesRequestDetails_dataSetId,+    importAssetsFromRedshiftDataSharesRequestDetails_revisionId,++    -- ** ImportAssetsFromRedshiftDataSharesResponseDetails+    importAssetsFromRedshiftDataSharesResponseDetails_assetSources,+    importAssetsFromRedshiftDataSharesResponseDetails_dataSetId,+    importAssetsFromRedshiftDataSharesResponseDetails_revisionId,++    -- ** ImportAssetsFromS3RequestDetails+    importAssetsFromS3RequestDetails_assetSources,+    importAssetsFromS3RequestDetails_dataSetId,+    importAssetsFromS3RequestDetails_revisionId,++    -- ** ImportAssetsFromS3ResponseDetails+    importAssetsFromS3ResponseDetails_assetSources,+    importAssetsFromS3ResponseDetails_dataSetId,+    importAssetsFromS3ResponseDetails_revisionId,++    -- ** JobEntry+    jobEntry_errors,+    jobEntry_arn,+    jobEntry_createdAt,+    jobEntry_details,+    jobEntry_id,+    jobEntry_state,+    jobEntry_type,+    jobEntry_updatedAt,++    -- ** JobError+    jobError_details,+    jobError_limitName,+    jobError_limitValue,+    jobError_resourceId,+    jobError_resourceType,+    jobError_code,+    jobError_message,++    -- ** LFResourceDetails+    lFResourceDetails_database,+    lFResourceDetails_table,++    -- ** LFTag+    lFTag_tagKey,+    lFTag_tagValues,++    -- ** LFTagPolicyDetails+    lFTagPolicyDetails_catalogId,+    lFTagPolicyDetails_resourceType,+    lFTagPolicyDetails_resourceDetails,++    -- ** LakeFormationDataPermissionAsset+    lakeFormationDataPermissionAsset_roleArn,+    lakeFormationDataPermissionAsset_lakeFormationDataPermissionDetails,+    lakeFormationDataPermissionAsset_lakeFormationDataPermissionType,+    lakeFormationDataPermissionAsset_permissions,++    -- ** LakeFormationDataPermissionDetails+    lakeFormationDataPermissionDetails_lFTagPolicy,++    -- ** OriginDetails+    originDetails_productId,++    -- ** RedshiftDataShareAsset+    redshiftDataShareAsset_arn,++    -- ** RedshiftDataShareAssetSourceEntry+    redshiftDataShareAssetSourceEntry_dataShareArn,++    -- ** RequestDetails+    requestDetails_createS3DataAccessFromS3Bucket,+    requestDetails_exportAssetToSignedUrl,+    requestDetails_exportAssetsToS3,+    requestDetails_exportRevisionsToS3,+    requestDetails_importAssetFromApiGatewayApi,+    requestDetails_importAssetFromSignedUrl,+    requestDetails_importAssetsFromLakeFormationTagPolicy,+    requestDetails_importAssetsFromRedshiftDataShares,+    requestDetails_importAssetsFromS3,++    -- ** ResponseDetails+    responseDetails_createS3DataAccessFromS3Bucket,+    responseDetails_exportAssetToSignedUrl,+    responseDetails_exportAssetsToS3,+    responseDetails_exportRevisionsToS3,+    responseDetails_importAssetFromApiGatewayApi,+    responseDetails_importAssetFromSignedUrl,+    responseDetails_importAssetsFromLakeFormationTagPolicy,+    responseDetails_importAssetsFromRedshiftDataShares,+    responseDetails_importAssetsFromS3,++    -- ** RevisionDestinationEntry+    revisionDestinationEntry_keyPattern,+    revisionDestinationEntry_bucket,+    revisionDestinationEntry_revisionId,++    -- ** RevisionEntry+    revisionEntry_comment,+    revisionEntry_finalized,+    revisionEntry_revocationComment,+    revisionEntry_revoked,+    revisionEntry_revokedAt,+    revisionEntry_sourceId,+    revisionEntry_arn,+    revisionEntry_createdAt,+    revisionEntry_dataSetId,+    revisionEntry_id,+    revisionEntry_updatedAt,++    -- ** RevisionPublished+    revisionPublished_dataSetId,++    -- ** S3DataAccessAsset+    s3DataAccessAsset_keyPrefixes,+    s3DataAccessAsset_keys,+    s3DataAccessAsset_s3AccessPointAlias,+    s3DataAccessAsset_s3AccessPointArn,+    s3DataAccessAsset_bucket,++    -- ** S3DataAccessAssetSourceEntry+    s3DataAccessAssetSourceEntry_keyPrefixes,+    s3DataAccessAssetSourceEntry_keys,+    s3DataAccessAssetSourceEntry_bucket,++    -- ** S3SnapshotAsset+    s3SnapshotAsset_size,++    -- ** TableLFTagPolicy+    tableLFTagPolicy_expression,++    -- ** TableLFTagPolicyAndPermissions+    tableLFTagPolicyAndPermissions_expression,+    tableLFTagPolicyAndPermissions_permissions,+  )+where++import Amazonka.DataExchange.CancelJob+import Amazonka.DataExchange.CreateDataSet+import Amazonka.DataExchange.CreateEventAction+import Amazonka.DataExchange.CreateJob+import Amazonka.DataExchange.CreateRevision+import Amazonka.DataExchange.DeleteAsset+import Amazonka.DataExchange.DeleteDataSet+import Amazonka.DataExchange.DeleteEventAction+import Amazonka.DataExchange.DeleteRevision+import Amazonka.DataExchange.GetAsset+import Amazonka.DataExchange.GetDataSet+import Amazonka.DataExchange.GetEventAction+import Amazonka.DataExchange.GetJob+import Amazonka.DataExchange.GetRevision+import Amazonka.DataExchange.ListDataSetRevisions+import Amazonka.DataExchange.ListDataSets+import Amazonka.DataExchange.ListEventActions+import Amazonka.DataExchange.ListJobs+import Amazonka.DataExchange.ListRevisionAssets+import Amazonka.DataExchange.ListTagsForResource+import Amazonka.DataExchange.RevokeRevision+import Amazonka.DataExchange.SendApiAsset+import Amazonka.DataExchange.StartJob+import Amazonka.DataExchange.TagResource+import Amazonka.DataExchange.Types.Action+import Amazonka.DataExchange.Types.ApiGatewayApiAsset+import Amazonka.DataExchange.Types.AssetDestinationEntry+import Amazonka.DataExchange.Types.AssetDetails+import Amazonka.DataExchange.Types.AssetEntry+import Amazonka.DataExchange.Types.AssetSourceEntry+import Amazonka.DataExchange.Types.AutoExportRevisionDestinationEntry+import Amazonka.DataExchange.Types.AutoExportRevisionToS3RequestDetails+import Amazonka.DataExchange.Types.CreateS3DataAccessFromS3BucketRequestDetails+import Amazonka.DataExchange.Types.CreateS3DataAccessFromS3BucketResponseDetails+import Amazonka.DataExchange.Types.DataSetEntry+import Amazonka.DataExchange.Types.DatabaseLFTagPolicy+import Amazonka.DataExchange.Types.DatabaseLFTagPolicyAndPermissions+import Amazonka.DataExchange.Types.Details+import Amazonka.DataExchange.Types.Event+import Amazonka.DataExchange.Types.EventActionEntry+import Amazonka.DataExchange.Types.ExportAssetToSignedUrlRequestDetails+import Amazonka.DataExchange.Types.ExportAssetToSignedUrlResponseDetails+import Amazonka.DataExchange.Types.ExportAssetsToS3RequestDetails+import Amazonka.DataExchange.Types.ExportAssetsToS3ResponseDetails+import Amazonka.DataExchange.Types.ExportRevisionsToS3RequestDetails+import Amazonka.DataExchange.Types.ExportRevisionsToS3ResponseDetails+import Amazonka.DataExchange.Types.ExportServerSideEncryption+import Amazonka.DataExchange.Types.ImportAssetFromApiGatewayApiRequestDetails+import Amazonka.DataExchange.Types.ImportAssetFromApiGatewayApiResponseDetails+import Amazonka.DataExchange.Types.ImportAssetFromSignedUrlJobErrorDetails+import Amazonka.DataExchange.Types.ImportAssetFromSignedUrlRequestDetails+import Amazonka.DataExchange.Types.ImportAssetFromSignedUrlResponseDetails+import Amazonka.DataExchange.Types.ImportAssetsFromLakeFormationTagPolicyRequestDetails+import Amazonka.DataExchange.Types.ImportAssetsFromLakeFormationTagPolicyResponseDetails+import Amazonka.DataExchange.Types.ImportAssetsFromRedshiftDataSharesRequestDetails+import Amazonka.DataExchange.Types.ImportAssetsFromRedshiftDataSharesResponseDetails+import Amazonka.DataExchange.Types.ImportAssetsFromS3RequestDetails+import Amazonka.DataExchange.Types.ImportAssetsFromS3ResponseDetails+import Amazonka.DataExchange.Types.JobEntry+import Amazonka.DataExchange.Types.JobError+import Amazonka.DataExchange.Types.LFResourceDetails+import Amazonka.DataExchange.Types.LFTag+import Amazonka.DataExchange.Types.LFTagPolicyDetails+import Amazonka.DataExchange.Types.LakeFormationDataPermissionAsset+import Amazonka.DataExchange.Types.LakeFormationDataPermissionDetails+import Amazonka.DataExchange.Types.OriginDetails+import Amazonka.DataExchange.Types.RedshiftDataShareAsset+import Amazonka.DataExchange.Types.RedshiftDataShareAssetSourceEntry+import Amazonka.DataExchange.Types.RequestDetails+import Amazonka.DataExchange.Types.ResponseDetails+import Amazonka.DataExchange.Types.RevisionDestinationEntry+import Amazonka.DataExchange.Types.RevisionEntry+import Amazonka.DataExchange.Types.RevisionPublished+import Amazonka.DataExchange.Types.S3DataAccessAsset+import Amazonka.DataExchange.Types.S3DataAccessAssetSourceEntry+import Amazonka.DataExchange.Types.S3SnapshotAsset+import Amazonka.DataExchange.Types.TableLFTagPolicy+import Amazonka.DataExchange.Types.TableLFTagPolicyAndPermissions+import Amazonka.DataExchange.UntagResource+import Amazonka.DataExchange.UpdateAsset+import Amazonka.DataExchange.UpdateDataSet+import Amazonka.DataExchange.UpdateEventAction+import Amazonka.DataExchange.UpdateRevision
+ gen/Amazonka/DataExchange/ListDataSetRevisions.hs view
@@ -0,0 +1,234 @@+{-# 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.DataExchange.ListDataSetRevisions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation lists a data set\'s revisions sorted by CreatedAt in+-- descending order.+--+-- This operation returns paginated results.+module Amazonka.DataExchange.ListDataSetRevisions+  ( -- * Creating a Request+    ListDataSetRevisions (..),+    newListDataSetRevisions,++    -- * Request Lenses+    listDataSetRevisions_maxResults,+    listDataSetRevisions_nextToken,+    listDataSetRevisions_dataSetId,++    -- * Destructuring the Response+    ListDataSetRevisionsResponse (..),+    newListDataSetRevisionsResponse,++    -- * Response Lenses+    listDataSetRevisionsResponse_nextToken,+    listDataSetRevisionsResponse_revisions,+    listDataSetRevisionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDataSetRevisions' smart constructor.+data ListDataSetRevisions = ListDataSetRevisions'+  { -- | The maximum number of results returned by a single call.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token value retrieved from a previous call to access the next page+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for a data set.+    dataSetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDataSetRevisions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listDataSetRevisions_maxResults' - The maximum number of results returned by a single call.+--+-- 'nextToken', 'listDataSetRevisions_nextToken' - The token value retrieved from a previous call to access the next page+-- of results.+--+-- 'dataSetId', 'listDataSetRevisions_dataSetId' - The unique identifier for a data set.+newListDataSetRevisions ::+  -- | 'dataSetId'+  Prelude.Text ->+  ListDataSetRevisions+newListDataSetRevisions pDataSetId_ =+  ListDataSetRevisions'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      dataSetId = pDataSetId_+    }++-- | The maximum number of results returned by a single call.+listDataSetRevisions_maxResults :: Lens.Lens' ListDataSetRevisions (Prelude.Maybe Prelude.Natural)+listDataSetRevisions_maxResults = Lens.lens (\ListDataSetRevisions' {maxResults} -> maxResults) (\s@ListDataSetRevisions' {} a -> s {maxResults = a} :: ListDataSetRevisions)++-- | The token value retrieved from a previous call to access the next page+-- of results.+listDataSetRevisions_nextToken :: Lens.Lens' ListDataSetRevisions (Prelude.Maybe Prelude.Text)+listDataSetRevisions_nextToken = Lens.lens (\ListDataSetRevisions' {nextToken} -> nextToken) (\s@ListDataSetRevisions' {} a -> s {nextToken = a} :: ListDataSetRevisions)++-- | The unique identifier for a data set.+listDataSetRevisions_dataSetId :: Lens.Lens' ListDataSetRevisions Prelude.Text+listDataSetRevisions_dataSetId = Lens.lens (\ListDataSetRevisions' {dataSetId} -> dataSetId) (\s@ListDataSetRevisions' {} a -> s {dataSetId = a} :: ListDataSetRevisions)++instance Core.AWSPager ListDataSetRevisions where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listDataSetRevisionsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listDataSetRevisionsResponse_revisions+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listDataSetRevisions_nextToken+          Lens..~ rs+          Lens.^? listDataSetRevisionsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListDataSetRevisions where+  type+    AWSResponse ListDataSetRevisions =+      ListDataSetRevisionsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDataSetRevisionsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "Revisions" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDataSetRevisions where+  hashWithSalt _salt ListDataSetRevisions' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` dataSetId++instance Prelude.NFData ListDataSetRevisions where+  rnf ListDataSetRevisions' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf dataSetId++instance Data.ToHeaders ListDataSetRevisions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListDataSetRevisions where+  toPath ListDataSetRevisions' {..} =+    Prelude.mconcat+      ["/v1/data-sets/", Data.toBS dataSetId, "/revisions"]++instance Data.ToQuery ListDataSetRevisions where+  toQuery ListDataSetRevisions' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListDataSetRevisionsResponse' smart constructor.+data ListDataSetRevisionsResponse = ListDataSetRevisionsResponse'+  { -- | The token value retrieved from a previous call to access the next page+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The asset objects listed by the request.+    revisions :: Prelude.Maybe [RevisionEntry],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDataSetRevisionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listDataSetRevisionsResponse_nextToken' - The token value retrieved from a previous call to access the next page+-- of results.+--+-- 'revisions', 'listDataSetRevisionsResponse_revisions' - The asset objects listed by the request.+--+-- 'httpStatus', 'listDataSetRevisionsResponse_httpStatus' - The response's http status code.+newListDataSetRevisionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDataSetRevisionsResponse+newListDataSetRevisionsResponse pHttpStatus_ =+  ListDataSetRevisionsResponse'+    { nextToken =+        Prelude.Nothing,+      revisions = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token value retrieved from a previous call to access the next page+-- of results.+listDataSetRevisionsResponse_nextToken :: Lens.Lens' ListDataSetRevisionsResponse (Prelude.Maybe Prelude.Text)+listDataSetRevisionsResponse_nextToken = Lens.lens (\ListDataSetRevisionsResponse' {nextToken} -> nextToken) (\s@ListDataSetRevisionsResponse' {} a -> s {nextToken = a} :: ListDataSetRevisionsResponse)++-- | The asset objects listed by the request.+listDataSetRevisionsResponse_revisions :: Lens.Lens' ListDataSetRevisionsResponse (Prelude.Maybe [RevisionEntry])+listDataSetRevisionsResponse_revisions = Lens.lens (\ListDataSetRevisionsResponse' {revisions} -> revisions) (\s@ListDataSetRevisionsResponse' {} a -> s {revisions = a} :: ListDataSetRevisionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listDataSetRevisionsResponse_httpStatus :: Lens.Lens' ListDataSetRevisionsResponse Prelude.Int+listDataSetRevisionsResponse_httpStatus = Lens.lens (\ListDataSetRevisionsResponse' {httpStatus} -> httpStatus) (\s@ListDataSetRevisionsResponse' {} a -> s {httpStatus = a} :: ListDataSetRevisionsResponse)++instance Prelude.NFData ListDataSetRevisionsResponse where+  rnf ListDataSetRevisionsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf revisions+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/ListDataSets.hs view
@@ -0,0 +1,233 @@+{-# 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.DataExchange.ListDataSets+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation lists your data sets. When listing by origin OWNED,+-- results are sorted by CreatedAt in descending order. When listing by+-- origin ENTITLED, there is no order and the maxResults parameter is+-- ignored.+--+-- This operation returns paginated results.+module Amazonka.DataExchange.ListDataSets+  ( -- * Creating a Request+    ListDataSets (..),+    newListDataSets,++    -- * Request Lenses+    listDataSets_maxResults,+    listDataSets_nextToken,+    listDataSets_origin,++    -- * Destructuring the Response+    ListDataSetsResponse (..),+    newListDataSetsResponse,++    -- * Response Lenses+    listDataSetsResponse_dataSets,+    listDataSetsResponse_nextToken,+    listDataSetsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDataSets' smart constructor.+data ListDataSets = ListDataSets'+  { -- | The maximum number of results returned by a single call.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token value retrieved from a previous call to access the next page+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A property that defines the data set as OWNED by the account (for+    -- providers) or ENTITLED to the account (for subscribers).+    origin :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDataSets' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listDataSets_maxResults' - The maximum number of results returned by a single call.+--+-- 'nextToken', 'listDataSets_nextToken' - The token value retrieved from a previous call to access the next page+-- of results.+--+-- 'origin', 'listDataSets_origin' - A property that defines the data set as OWNED by the account (for+-- providers) or ENTITLED to the account (for subscribers).+newListDataSets ::+  ListDataSets+newListDataSets =+  ListDataSets'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      origin = Prelude.Nothing+    }++-- | The maximum number of results returned by a single call.+listDataSets_maxResults :: Lens.Lens' ListDataSets (Prelude.Maybe Prelude.Natural)+listDataSets_maxResults = Lens.lens (\ListDataSets' {maxResults} -> maxResults) (\s@ListDataSets' {} a -> s {maxResults = a} :: ListDataSets)++-- | The token value retrieved from a previous call to access the next page+-- of results.+listDataSets_nextToken :: Lens.Lens' ListDataSets (Prelude.Maybe Prelude.Text)+listDataSets_nextToken = Lens.lens (\ListDataSets' {nextToken} -> nextToken) (\s@ListDataSets' {} a -> s {nextToken = a} :: ListDataSets)++-- | A property that defines the data set as OWNED by the account (for+-- providers) or ENTITLED to the account (for subscribers).+listDataSets_origin :: Lens.Lens' ListDataSets (Prelude.Maybe Prelude.Text)+listDataSets_origin = Lens.lens (\ListDataSets' {origin} -> origin) (\s@ListDataSets' {} a -> s {origin = a} :: ListDataSets)++instance Core.AWSPager ListDataSets where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listDataSetsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listDataSetsResponse_dataSets+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listDataSets_nextToken+          Lens..~ rs+          Lens.^? listDataSetsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListDataSets where+  type AWSResponse ListDataSets = ListDataSetsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDataSetsResponse'+            Prelude.<$> (x Data..?> "DataSets" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDataSets where+  hashWithSalt _salt ListDataSets' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` origin++instance Prelude.NFData ListDataSets where+  rnf ListDataSets' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf origin++instance Data.ToHeaders ListDataSets where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListDataSets where+  toPath = Prelude.const "/v1/data-sets"++instance Data.ToQuery ListDataSets where+  toQuery ListDataSets' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "origin" Data.=: origin+      ]++-- | /See:/ 'newListDataSetsResponse' smart constructor.+data ListDataSetsResponse = ListDataSetsResponse'+  { -- | The data set objects listed by the request.+    dataSets :: Prelude.Maybe [DataSetEntry],+    -- | The token value retrieved from a previous call to access the next page+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDataSetsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSets', 'listDataSetsResponse_dataSets' - The data set objects listed by the request.+--+-- 'nextToken', 'listDataSetsResponse_nextToken' - The token value retrieved from a previous call to access the next page+-- of results.+--+-- 'httpStatus', 'listDataSetsResponse_httpStatus' - The response's http status code.+newListDataSetsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDataSetsResponse+newListDataSetsResponse pHttpStatus_ =+  ListDataSetsResponse'+    { dataSets = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The data set objects listed by the request.+listDataSetsResponse_dataSets :: Lens.Lens' ListDataSetsResponse (Prelude.Maybe [DataSetEntry])+listDataSetsResponse_dataSets = Lens.lens (\ListDataSetsResponse' {dataSets} -> dataSets) (\s@ListDataSetsResponse' {} a -> s {dataSets = a} :: ListDataSetsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token value retrieved from a previous call to access the next page+-- of results.+listDataSetsResponse_nextToken :: Lens.Lens' ListDataSetsResponse (Prelude.Maybe Prelude.Text)+listDataSetsResponse_nextToken = Lens.lens (\ListDataSetsResponse' {nextToken} -> nextToken) (\s@ListDataSetsResponse' {} a -> s {nextToken = a} :: ListDataSetsResponse)++-- | The response's http status code.+listDataSetsResponse_httpStatus :: Lens.Lens' ListDataSetsResponse Prelude.Int+listDataSetsResponse_httpStatus = Lens.lens (\ListDataSetsResponse' {httpStatus} -> httpStatus) (\s@ListDataSetsResponse' {} a -> s {httpStatus = a} :: ListDataSetsResponse)++instance Prelude.NFData ListDataSetsResponse where+  rnf ListDataSetsResponse' {..} =+    Prelude.rnf dataSets+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/ListEventActions.hs view
@@ -0,0 +1,230 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.ListEventActions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation lists your event actions.+--+-- This operation returns paginated results.+module Amazonka.DataExchange.ListEventActions+  ( -- * Creating a Request+    ListEventActions (..),+    newListEventActions,++    -- * Request Lenses+    listEventActions_eventSourceId,+    listEventActions_maxResults,+    listEventActions_nextToken,++    -- * Destructuring the Response+    ListEventActionsResponse (..),+    newListEventActionsResponse,++    -- * Response Lenses+    listEventActionsResponse_eventActions,+    listEventActionsResponse_nextToken,+    listEventActionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListEventActions' smart constructor.+data ListEventActions = ListEventActions'+  { -- | The unique identifier for the event source.+    eventSourceId :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of results returned by a single call.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token value retrieved from a previous call to access the next page+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEventActions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventSourceId', 'listEventActions_eventSourceId' - The unique identifier for the event source.+--+-- 'maxResults', 'listEventActions_maxResults' - The maximum number of results returned by a single call.+--+-- 'nextToken', 'listEventActions_nextToken' - The token value retrieved from a previous call to access the next page+-- of results.+newListEventActions ::+  ListEventActions+newListEventActions =+  ListEventActions'+    { eventSourceId = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The unique identifier for the event source.+listEventActions_eventSourceId :: Lens.Lens' ListEventActions (Prelude.Maybe Prelude.Text)+listEventActions_eventSourceId = Lens.lens (\ListEventActions' {eventSourceId} -> eventSourceId) (\s@ListEventActions' {} a -> s {eventSourceId = a} :: ListEventActions)++-- | The maximum number of results returned by a single call.+listEventActions_maxResults :: Lens.Lens' ListEventActions (Prelude.Maybe Prelude.Natural)+listEventActions_maxResults = Lens.lens (\ListEventActions' {maxResults} -> maxResults) (\s@ListEventActions' {} a -> s {maxResults = a} :: ListEventActions)++-- | The token value retrieved from a previous call to access the next page+-- of results.+listEventActions_nextToken :: Lens.Lens' ListEventActions (Prelude.Maybe Prelude.Text)+listEventActions_nextToken = Lens.lens (\ListEventActions' {nextToken} -> nextToken) (\s@ListEventActions' {} a -> s {nextToken = a} :: ListEventActions)++instance Core.AWSPager ListEventActions where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listEventActionsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listEventActionsResponse_eventActions+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listEventActions_nextToken+          Lens..~ rs+          Lens.^? listEventActionsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListEventActions where+  type+    AWSResponse ListEventActions =+      ListEventActionsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListEventActionsResponse'+            Prelude.<$> (x Data..?> "EventActions" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListEventActions where+  hashWithSalt _salt ListEventActions' {..} =+    _salt+      `Prelude.hashWithSalt` eventSourceId+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListEventActions where+  rnf ListEventActions' {..} =+    Prelude.rnf eventSourceId+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListEventActions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListEventActions where+  toPath = Prelude.const "/v1/event-actions"++instance Data.ToQuery ListEventActions where+  toQuery ListEventActions' {..} =+    Prelude.mconcat+      [ "eventSourceId" Data.=: eventSourceId,+        "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListEventActionsResponse' smart constructor.+data ListEventActionsResponse = ListEventActionsResponse'+  { -- | The event action objects listed by the request.+    eventActions :: Prelude.Maybe [EventActionEntry],+    -- | The token value retrieved from a previous call to access the next page+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEventActionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventActions', 'listEventActionsResponse_eventActions' - The event action objects listed by the request.+--+-- 'nextToken', 'listEventActionsResponse_nextToken' - The token value retrieved from a previous call to access the next page+-- of results.+--+-- 'httpStatus', 'listEventActionsResponse_httpStatus' - The response's http status code.+newListEventActionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListEventActionsResponse+newListEventActionsResponse pHttpStatus_ =+  ListEventActionsResponse'+    { eventActions =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The event action objects listed by the request.+listEventActionsResponse_eventActions :: Lens.Lens' ListEventActionsResponse (Prelude.Maybe [EventActionEntry])+listEventActionsResponse_eventActions = Lens.lens (\ListEventActionsResponse' {eventActions} -> eventActions) (\s@ListEventActionsResponse' {} a -> s {eventActions = a} :: ListEventActionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token value retrieved from a previous call to access the next page+-- of results.+listEventActionsResponse_nextToken :: Lens.Lens' ListEventActionsResponse (Prelude.Maybe Prelude.Text)+listEventActionsResponse_nextToken = Lens.lens (\ListEventActionsResponse' {nextToken} -> nextToken) (\s@ListEventActionsResponse' {} a -> s {nextToken = a} :: ListEventActionsResponse)++-- | The response's http status code.+listEventActionsResponse_httpStatus :: Lens.Lens' ListEventActionsResponse Prelude.Int+listEventActionsResponse_httpStatus = Lens.lens (\ListEventActionsResponse' {httpStatus} -> httpStatus) (\s@ListEventActionsResponse' {} a -> s {httpStatus = a} :: ListEventActionsResponse)++instance Prelude.NFData ListEventActionsResponse where+  rnf ListEventActionsResponse' {..} =+    Prelude.rnf eventActions+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/ListJobs.hs view
@@ -0,0 +1,240 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.ListJobs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation lists your jobs sorted by CreatedAt in descending order.+--+-- This operation returns paginated results.+module Amazonka.DataExchange.ListJobs+  ( -- * Creating a Request+    ListJobs (..),+    newListJobs,++    -- * Request Lenses+    listJobs_dataSetId,+    listJobs_maxResults,+    listJobs_nextToken,+    listJobs_revisionId,++    -- * Destructuring the Response+    ListJobsResponse (..),+    newListJobsResponse,++    -- * Response Lenses+    listJobsResponse_jobs,+    listJobsResponse_nextToken,+    listJobsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListJobs' smart constructor.+data ListJobs = ListJobs'+  { -- | The unique identifier for a data set.+    dataSetId :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of results returned by a single call.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token value retrieved from a previous call to access the next page+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for a revision.+    revisionId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSetId', 'listJobs_dataSetId' - The unique identifier for a data set.+--+-- 'maxResults', 'listJobs_maxResults' - The maximum number of results returned by a single call.+--+-- 'nextToken', 'listJobs_nextToken' - The token value retrieved from a previous call to access the next page+-- of results.+--+-- 'revisionId', 'listJobs_revisionId' - The unique identifier for a revision.+newListJobs ::+  ListJobs+newListJobs =+  ListJobs'+    { dataSetId = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      revisionId = Prelude.Nothing+    }++-- | The unique identifier for a data set.+listJobs_dataSetId :: Lens.Lens' ListJobs (Prelude.Maybe Prelude.Text)+listJobs_dataSetId = Lens.lens (\ListJobs' {dataSetId} -> dataSetId) (\s@ListJobs' {} a -> s {dataSetId = a} :: ListJobs)++-- | The maximum number of results returned by a single call.+listJobs_maxResults :: Lens.Lens' ListJobs (Prelude.Maybe Prelude.Natural)+listJobs_maxResults = Lens.lens (\ListJobs' {maxResults} -> maxResults) (\s@ListJobs' {} a -> s {maxResults = a} :: ListJobs)++-- | The token value retrieved from a previous call to access the next page+-- of results.+listJobs_nextToken :: Lens.Lens' ListJobs (Prelude.Maybe Prelude.Text)+listJobs_nextToken = Lens.lens (\ListJobs' {nextToken} -> nextToken) (\s@ListJobs' {} a -> s {nextToken = a} :: ListJobs)++-- | The unique identifier for a revision.+listJobs_revisionId :: Lens.Lens' ListJobs (Prelude.Maybe Prelude.Text)+listJobs_revisionId = Lens.lens (\ListJobs' {revisionId} -> revisionId) (\s@ListJobs' {} a -> s {revisionId = a} :: ListJobs)++instance Core.AWSPager ListJobs where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listJobsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listJobsResponse_jobs+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listJobs_nextToken+          Lens..~ rs+          Lens.^? listJobsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListJobs where+  type AWSResponse ListJobs = ListJobsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListJobsResponse'+            Prelude.<$> (x Data..?> "Jobs" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListJobs where+  hashWithSalt _salt ListJobs' {..} =+    _salt+      `Prelude.hashWithSalt` dataSetId+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` revisionId++instance Prelude.NFData ListJobs where+  rnf ListJobs' {..} =+    Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf revisionId++instance Data.ToHeaders ListJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListJobs where+  toPath = Prelude.const "/v1/jobs"++instance Data.ToQuery ListJobs where+  toQuery ListJobs' {..} =+    Prelude.mconcat+      [ "dataSetId" Data.=: dataSetId,+        "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "revisionId" Data.=: revisionId+      ]++-- | /See:/ 'newListJobsResponse' smart constructor.+data ListJobsResponse = ListJobsResponse'+  { -- | The jobs listed by the request.+    jobs :: Prelude.Maybe [JobEntry],+    -- | The token value retrieved from a previous call to access the next page+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobs', 'listJobsResponse_jobs' - The jobs listed by the request.+--+-- 'nextToken', 'listJobsResponse_nextToken' - The token value retrieved from a previous call to access the next page+-- of results.+--+-- 'httpStatus', 'listJobsResponse_httpStatus' - The response's http status code.+newListJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListJobsResponse+newListJobsResponse pHttpStatus_ =+  ListJobsResponse'+    { jobs = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The jobs listed by the request.+listJobsResponse_jobs :: Lens.Lens' ListJobsResponse (Prelude.Maybe [JobEntry])+listJobsResponse_jobs = Lens.lens (\ListJobsResponse' {jobs} -> jobs) (\s@ListJobsResponse' {} a -> s {jobs = a} :: ListJobsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token value retrieved from a previous call to access the next page+-- of results.+listJobsResponse_nextToken :: Lens.Lens' ListJobsResponse (Prelude.Maybe Prelude.Text)+listJobsResponse_nextToken = Lens.lens (\ListJobsResponse' {nextToken} -> nextToken) (\s@ListJobsResponse' {} a -> s {nextToken = a} :: ListJobsResponse)++-- | The response's http status code.+listJobsResponse_httpStatus :: Lens.Lens' ListJobsResponse Prelude.Int+listJobsResponse_httpStatus = Lens.lens (\ListJobsResponse' {httpStatus} -> httpStatus) (\s@ListJobsResponse' {} a -> s {httpStatus = a} :: ListJobsResponse)++instance Prelude.NFData ListJobsResponse where+  rnf ListJobsResponse' {..} =+    Prelude.rnf jobs+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/ListRevisionAssets.hs view
@@ -0,0 +1,253 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.ListRevisionAssets+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation lists a revision\'s assets sorted alphabetically in+-- descending order.+--+-- This operation returns paginated results.+module Amazonka.DataExchange.ListRevisionAssets+  ( -- * Creating a Request+    ListRevisionAssets (..),+    newListRevisionAssets,++    -- * Request Lenses+    listRevisionAssets_maxResults,+    listRevisionAssets_nextToken,+    listRevisionAssets_dataSetId,+    listRevisionAssets_revisionId,++    -- * Destructuring the Response+    ListRevisionAssetsResponse (..),+    newListRevisionAssetsResponse,++    -- * Response Lenses+    listRevisionAssetsResponse_assets,+    listRevisionAssetsResponse_nextToken,+    listRevisionAssetsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListRevisionAssets' smart constructor.+data ListRevisionAssets = ListRevisionAssets'+  { -- | The maximum number of results returned by a single call.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token value retrieved from a previous call to access the next page+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for a data set.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for a revision.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRevisionAssets' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRevisionAssets_maxResults' - The maximum number of results returned by a single call.+--+-- 'nextToken', 'listRevisionAssets_nextToken' - The token value retrieved from a previous call to access the next page+-- of results.+--+-- 'dataSetId', 'listRevisionAssets_dataSetId' - The unique identifier for a data set.+--+-- 'revisionId', 'listRevisionAssets_revisionId' - The unique identifier for a revision.+newListRevisionAssets ::+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  ListRevisionAssets+newListRevisionAssets pDataSetId_ pRevisionId_ =+  ListRevisionAssets'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      dataSetId = pDataSetId_,+      revisionId = pRevisionId_+    }++-- | The maximum number of results returned by a single call.+listRevisionAssets_maxResults :: Lens.Lens' ListRevisionAssets (Prelude.Maybe Prelude.Natural)+listRevisionAssets_maxResults = Lens.lens (\ListRevisionAssets' {maxResults} -> maxResults) (\s@ListRevisionAssets' {} a -> s {maxResults = a} :: ListRevisionAssets)++-- | The token value retrieved from a previous call to access the next page+-- of results.+listRevisionAssets_nextToken :: Lens.Lens' ListRevisionAssets (Prelude.Maybe Prelude.Text)+listRevisionAssets_nextToken = Lens.lens (\ListRevisionAssets' {nextToken} -> nextToken) (\s@ListRevisionAssets' {} a -> s {nextToken = a} :: ListRevisionAssets)++-- | The unique identifier for a data set.+listRevisionAssets_dataSetId :: Lens.Lens' ListRevisionAssets Prelude.Text+listRevisionAssets_dataSetId = Lens.lens (\ListRevisionAssets' {dataSetId} -> dataSetId) (\s@ListRevisionAssets' {} a -> s {dataSetId = a} :: ListRevisionAssets)++-- | The unique identifier for a revision.+listRevisionAssets_revisionId :: Lens.Lens' ListRevisionAssets Prelude.Text+listRevisionAssets_revisionId = Lens.lens (\ListRevisionAssets' {revisionId} -> revisionId) (\s@ListRevisionAssets' {} a -> s {revisionId = a} :: ListRevisionAssets)++instance Core.AWSPager ListRevisionAssets where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listRevisionAssetsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listRevisionAssetsResponse_assets+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listRevisionAssets_nextToken+          Lens..~ rs+          Lens.^? listRevisionAssetsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListRevisionAssets where+  type+    AWSResponse ListRevisionAssets =+      ListRevisionAssetsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListRevisionAssetsResponse'+            Prelude.<$> (x Data..?> "Assets" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListRevisionAssets where+  hashWithSalt _salt ListRevisionAssets' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` dataSetId+      `Prelude.hashWithSalt` revisionId++instance Prelude.NFData ListRevisionAssets where+  rnf ListRevisionAssets' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId++instance Data.ToHeaders ListRevisionAssets where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListRevisionAssets where+  toPath ListRevisionAssets' {..} =+    Prelude.mconcat+      [ "/v1/data-sets/",+        Data.toBS dataSetId,+        "/revisions/",+        Data.toBS revisionId,+        "/assets"+      ]++instance Data.ToQuery ListRevisionAssets where+  toQuery ListRevisionAssets' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListRevisionAssetsResponse' smart constructor.+data ListRevisionAssetsResponse = ListRevisionAssetsResponse'+  { -- | The asset objects listed by the request.+    assets :: Prelude.Maybe [AssetEntry],+    -- | The token value retrieved from a previous call to access the next page+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRevisionAssetsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assets', 'listRevisionAssetsResponse_assets' - The asset objects listed by the request.+--+-- 'nextToken', 'listRevisionAssetsResponse_nextToken' - The token value retrieved from a previous call to access the next page+-- of results.+--+-- 'httpStatus', 'listRevisionAssetsResponse_httpStatus' - The response's http status code.+newListRevisionAssetsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListRevisionAssetsResponse+newListRevisionAssetsResponse pHttpStatus_ =+  ListRevisionAssetsResponse'+    { assets =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The asset objects listed by the request.+listRevisionAssetsResponse_assets :: Lens.Lens' ListRevisionAssetsResponse (Prelude.Maybe [AssetEntry])+listRevisionAssetsResponse_assets = Lens.lens (\ListRevisionAssetsResponse' {assets} -> assets) (\s@ListRevisionAssetsResponse' {} a -> s {assets = a} :: ListRevisionAssetsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token value retrieved from a previous call to access the next page+-- of results.+listRevisionAssetsResponse_nextToken :: Lens.Lens' ListRevisionAssetsResponse (Prelude.Maybe Prelude.Text)+listRevisionAssetsResponse_nextToken = Lens.lens (\ListRevisionAssetsResponse' {nextToken} -> nextToken) (\s@ListRevisionAssetsResponse' {} a -> s {nextToken = a} :: ListRevisionAssetsResponse)++-- | The response's http status code.+listRevisionAssetsResponse_httpStatus :: Lens.Lens' ListRevisionAssetsResponse Prelude.Int+listRevisionAssetsResponse_httpStatus = Lens.lens (\ListRevisionAssetsResponse' {httpStatus} -> httpStatus) (\s@ListRevisionAssetsResponse' {} a -> s {httpStatus = a} :: ListRevisionAssetsResponse)++instance Prelude.NFData ListRevisionAssetsResponse where+  rnf ListRevisionAssetsResponse' {..} =+    Prelude.rnf assets+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/ListTagsForResource.hs view
@@ -0,0 +1,159 @@+{-# 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.DataExchange.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)+--+-- This operation lists the tags on the resource.+module Amazonka.DataExchange.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.DataExchange.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'+  { -- | An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.+    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' - An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.+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'+  { -- | A label that consists of a customer-defined key and an optional value.+    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' - A label that consists of a customer-defined key and an optional value.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A label that consists of a customer-defined key and an optional value.+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/DataExchange/RevokeRevision.hs view
@@ -0,0 +1,369 @@+{-# 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.DataExchange.RevokeRevision+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation revokes subscribers\' access to a revision.+module Amazonka.DataExchange.RevokeRevision+  ( -- * Creating a Request+    RevokeRevision (..),+    newRevokeRevision,++    -- * Request Lenses+    revokeRevision_dataSetId,+    revokeRevision_revisionId,+    revokeRevision_revocationComment,++    -- * Destructuring the Response+    RevokeRevisionResponse (..),+    newRevokeRevisionResponse,++    -- * Response Lenses+    revokeRevisionResponse_arn,+    revokeRevisionResponse_comment,+    revokeRevisionResponse_createdAt,+    revokeRevisionResponse_dataSetId,+    revokeRevisionResponse_finalized,+    revokeRevisionResponse_id,+    revokeRevisionResponse_revocationComment,+    revokeRevisionResponse_revoked,+    revokeRevisionResponse_revokedAt,+    revokeRevisionResponse_sourceId,+    revokeRevisionResponse_updatedAt,+    revokeRevisionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRevokeRevision' smart constructor.+data RevokeRevision = RevokeRevision'+  { -- | The unique identifier for a data set.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for a revision.+    revisionId :: Prelude.Text,+    -- | A required comment to inform subscribers of the reason their access to+    -- the revision was revoked.+    revocationComment :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RevokeRevision' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSetId', 'revokeRevision_dataSetId' - The unique identifier for a data set.+--+-- 'revisionId', 'revokeRevision_revisionId' - The unique identifier for a revision.+--+-- 'revocationComment', 'revokeRevision_revocationComment' - A required comment to inform subscribers of the reason their access to+-- the revision was revoked.+newRevokeRevision ::+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  -- | 'revocationComment'+  Prelude.Text ->+  RevokeRevision+newRevokeRevision+  pDataSetId_+  pRevisionId_+  pRevocationComment_ =+    RevokeRevision'+      { dataSetId = pDataSetId_,+        revisionId = pRevisionId_,+        revocationComment = pRevocationComment_+      }++-- | The unique identifier for a data set.+revokeRevision_dataSetId :: Lens.Lens' RevokeRevision Prelude.Text+revokeRevision_dataSetId = Lens.lens (\RevokeRevision' {dataSetId} -> dataSetId) (\s@RevokeRevision' {} a -> s {dataSetId = a} :: RevokeRevision)++-- | The unique identifier for a revision.+revokeRevision_revisionId :: Lens.Lens' RevokeRevision Prelude.Text+revokeRevision_revisionId = Lens.lens (\RevokeRevision' {revisionId} -> revisionId) (\s@RevokeRevision' {} a -> s {revisionId = a} :: RevokeRevision)++-- | A required comment to inform subscribers of the reason their access to+-- the revision was revoked.+revokeRevision_revocationComment :: Lens.Lens' RevokeRevision Prelude.Text+revokeRevision_revocationComment = Lens.lens (\RevokeRevision' {revocationComment} -> revocationComment) (\s@RevokeRevision' {} a -> s {revocationComment = a} :: RevokeRevision)++instance Core.AWSRequest RevokeRevision where+  type+    AWSResponse RevokeRevision =+      RevokeRevisionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          RevokeRevisionResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "Comment")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "DataSetId")+            Prelude.<*> (x Data..?> "Finalized")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "RevocationComment")+            Prelude.<*> (x Data..?> "Revoked")+            Prelude.<*> (x Data..?> "RevokedAt")+            Prelude.<*> (x Data..?> "SourceId")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RevokeRevision where+  hashWithSalt _salt RevokeRevision' {..} =+    _salt+      `Prelude.hashWithSalt` dataSetId+      `Prelude.hashWithSalt` revisionId+      `Prelude.hashWithSalt` revocationComment++instance Prelude.NFData RevokeRevision where+  rnf RevokeRevision' {..} =+    Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf revocationComment++instance Data.ToHeaders RevokeRevision where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON RevokeRevision where+  toJSON RevokeRevision' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("RevocationComment" Data..= revocationComment)+          ]+      )++instance Data.ToPath RevokeRevision where+  toPath RevokeRevision' {..} =+    Prelude.mconcat+      [ "/v1/data-sets/",+        Data.toBS dataSetId,+        "/revisions/",+        Data.toBS revisionId,+        "/revoke"+      ]++instance Data.ToQuery RevokeRevision where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRevokeRevisionResponse' smart constructor.+data RevokeRevisionResponse = RevokeRevisionResponse'+  { -- | The ARN for the revision.+    arn :: Prelude.Maybe Prelude.Text,+    -- | An optional comment about the revision.+    comment :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the revision was created, in ISO 8601 format.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The unique identifier for the data set associated with the data set+    -- revision.+    dataSetId :: Prelude.Maybe Prelude.Text,+    -- | To publish a revision to a data set in a product, the revision must+    -- first be finalized. Finalizing a revision tells AWS Data Exchange that+    -- changes to the assets in the revision are complete. After it\'s in this+    -- read-only state, you can publish the revision to your products.+    -- Finalized revisions can be published through the AWS Data Exchange+    -- console or the AWS Marketplace Catalog API, using the StartChangeSet AWS+    -- Marketplace Catalog API action. When using the API, revisions are+    -- uniquely identified by their ARN.+    finalized :: Prelude.Maybe Prelude.Bool,+    -- | The unique identifier for the revision.+    id :: Prelude.Maybe Prelude.Text,+    -- | A required comment to inform subscribers of the reason their access to+    -- the revision was revoked.+    revocationComment :: Prelude.Maybe Prelude.Text,+    -- | A status indicating that subscribers\' access to the revision was+    -- revoked.+    revoked :: Prelude.Maybe Prelude.Bool,+    -- | The date and time that the revision was revoked, in ISO 8601 format.+    revokedAt :: Prelude.Maybe Data.ISO8601,+    -- | The revision ID of the owned revision corresponding to the entitled+    -- revision being viewed. This parameter is returned when a revision owner+    -- is viewing the entitled copy of its owned revision.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the revision was last updated, in ISO 8601+    -- format.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RevokeRevisionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'revokeRevisionResponse_arn' - The ARN for the revision.+--+-- 'comment', 'revokeRevisionResponse_comment' - An optional comment about the revision.+--+-- 'createdAt', 'revokeRevisionResponse_createdAt' - The date and time that the revision was created, in ISO 8601 format.+--+-- 'dataSetId', 'revokeRevisionResponse_dataSetId' - The unique identifier for the data set associated with the data set+-- revision.+--+-- 'finalized', 'revokeRevisionResponse_finalized' - To publish a revision to a data set in a product, the revision must+-- first be finalized. Finalizing a revision tells AWS Data Exchange that+-- changes to the assets in the revision are complete. After it\'s in this+-- read-only state, you can publish the revision to your products.+-- Finalized revisions can be published through the AWS Data Exchange+-- console or the AWS Marketplace Catalog API, using the StartChangeSet AWS+-- Marketplace Catalog API action. When using the API, revisions are+-- uniquely identified by their ARN.+--+-- 'id', 'revokeRevisionResponse_id' - The unique identifier for the revision.+--+-- 'revocationComment', 'revokeRevisionResponse_revocationComment' - A required comment to inform subscribers of the reason their access to+-- the revision was revoked.+--+-- 'revoked', 'revokeRevisionResponse_revoked' - A status indicating that subscribers\' access to the revision was+-- revoked.+--+-- 'revokedAt', 'revokeRevisionResponse_revokedAt' - The date and time that the revision was revoked, in ISO 8601 format.+--+-- 'sourceId', 'revokeRevisionResponse_sourceId' - The revision ID of the owned revision corresponding to the entitled+-- revision being viewed. This parameter is returned when a revision owner+-- is viewing the entitled copy of its owned revision.+--+-- 'updatedAt', 'revokeRevisionResponse_updatedAt' - The date and time that the revision was last updated, in ISO 8601+-- format.+--+-- 'httpStatus', 'revokeRevisionResponse_httpStatus' - The response's http status code.+newRevokeRevisionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RevokeRevisionResponse+newRevokeRevisionResponse pHttpStatus_ =+  RevokeRevisionResponse'+    { arn = Prelude.Nothing,+      comment = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      dataSetId = Prelude.Nothing,+      finalized = Prelude.Nothing,+      id = Prelude.Nothing,+      revocationComment = Prelude.Nothing,+      revoked = Prelude.Nothing,+      revokedAt = Prelude.Nothing,+      sourceId = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN for the revision.+revokeRevisionResponse_arn :: Lens.Lens' RevokeRevisionResponse (Prelude.Maybe Prelude.Text)+revokeRevisionResponse_arn = Lens.lens (\RevokeRevisionResponse' {arn} -> arn) (\s@RevokeRevisionResponse' {} a -> s {arn = a} :: RevokeRevisionResponse)++-- | An optional comment about the revision.+revokeRevisionResponse_comment :: Lens.Lens' RevokeRevisionResponse (Prelude.Maybe Prelude.Text)+revokeRevisionResponse_comment = Lens.lens (\RevokeRevisionResponse' {comment} -> comment) (\s@RevokeRevisionResponse' {} a -> s {comment = a} :: RevokeRevisionResponse)++-- | The date and time that the revision was created, in ISO 8601 format.+revokeRevisionResponse_createdAt :: Lens.Lens' RevokeRevisionResponse (Prelude.Maybe Prelude.UTCTime)+revokeRevisionResponse_createdAt = Lens.lens (\RevokeRevisionResponse' {createdAt} -> createdAt) (\s@RevokeRevisionResponse' {} a -> s {createdAt = a} :: RevokeRevisionResponse) Prelude.. Lens.mapping Data._Time++-- | The unique identifier for the data set associated with the data set+-- revision.+revokeRevisionResponse_dataSetId :: Lens.Lens' RevokeRevisionResponse (Prelude.Maybe Prelude.Text)+revokeRevisionResponse_dataSetId = Lens.lens (\RevokeRevisionResponse' {dataSetId} -> dataSetId) (\s@RevokeRevisionResponse' {} a -> s {dataSetId = a} :: RevokeRevisionResponse)++-- | To publish a revision to a data set in a product, the revision must+-- first be finalized. Finalizing a revision tells AWS Data Exchange that+-- changes to the assets in the revision are complete. After it\'s in this+-- read-only state, you can publish the revision to your products.+-- Finalized revisions can be published through the AWS Data Exchange+-- console or the AWS Marketplace Catalog API, using the StartChangeSet AWS+-- Marketplace Catalog API action. When using the API, revisions are+-- uniquely identified by their ARN.+revokeRevisionResponse_finalized :: Lens.Lens' RevokeRevisionResponse (Prelude.Maybe Prelude.Bool)+revokeRevisionResponse_finalized = Lens.lens (\RevokeRevisionResponse' {finalized} -> finalized) (\s@RevokeRevisionResponse' {} a -> s {finalized = a} :: RevokeRevisionResponse)++-- | The unique identifier for the revision.+revokeRevisionResponse_id :: Lens.Lens' RevokeRevisionResponse (Prelude.Maybe Prelude.Text)+revokeRevisionResponse_id = Lens.lens (\RevokeRevisionResponse' {id} -> id) (\s@RevokeRevisionResponse' {} a -> s {id = a} :: RevokeRevisionResponse)++-- | A required comment to inform subscribers of the reason their access to+-- the revision was revoked.+revokeRevisionResponse_revocationComment :: Lens.Lens' RevokeRevisionResponse (Prelude.Maybe Prelude.Text)+revokeRevisionResponse_revocationComment = Lens.lens (\RevokeRevisionResponse' {revocationComment} -> revocationComment) (\s@RevokeRevisionResponse' {} a -> s {revocationComment = a} :: RevokeRevisionResponse)++-- | A status indicating that subscribers\' access to the revision was+-- revoked.+revokeRevisionResponse_revoked :: Lens.Lens' RevokeRevisionResponse (Prelude.Maybe Prelude.Bool)+revokeRevisionResponse_revoked = Lens.lens (\RevokeRevisionResponse' {revoked} -> revoked) (\s@RevokeRevisionResponse' {} a -> s {revoked = a} :: RevokeRevisionResponse)++-- | The date and time that the revision was revoked, in ISO 8601 format.+revokeRevisionResponse_revokedAt :: Lens.Lens' RevokeRevisionResponse (Prelude.Maybe Prelude.UTCTime)+revokeRevisionResponse_revokedAt = Lens.lens (\RevokeRevisionResponse' {revokedAt} -> revokedAt) (\s@RevokeRevisionResponse' {} a -> s {revokedAt = a} :: RevokeRevisionResponse) Prelude.. Lens.mapping Data._Time++-- | The revision ID of the owned revision corresponding to the entitled+-- revision being viewed. This parameter is returned when a revision owner+-- is viewing the entitled copy of its owned revision.+revokeRevisionResponse_sourceId :: Lens.Lens' RevokeRevisionResponse (Prelude.Maybe Prelude.Text)+revokeRevisionResponse_sourceId = Lens.lens (\RevokeRevisionResponse' {sourceId} -> sourceId) (\s@RevokeRevisionResponse' {} a -> s {sourceId = a} :: RevokeRevisionResponse)++-- | The date and time that the revision was last updated, in ISO 8601+-- format.+revokeRevisionResponse_updatedAt :: Lens.Lens' RevokeRevisionResponse (Prelude.Maybe Prelude.UTCTime)+revokeRevisionResponse_updatedAt = Lens.lens (\RevokeRevisionResponse' {updatedAt} -> updatedAt) (\s@RevokeRevisionResponse' {} a -> s {updatedAt = a} :: RevokeRevisionResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+revokeRevisionResponse_httpStatus :: Lens.Lens' RevokeRevisionResponse Prelude.Int+revokeRevisionResponse_httpStatus = Lens.lens (\RevokeRevisionResponse' {httpStatus} -> httpStatus) (\s@RevokeRevisionResponse' {} a -> s {httpStatus = a} :: RevokeRevisionResponse)++instance Prelude.NFData RevokeRevisionResponse where+  rnf RevokeRevisionResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf comment+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf finalized+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf revocationComment+      `Prelude.seq` Prelude.rnf revoked+      `Prelude.seq` Prelude.rnf revokedAt+      `Prelude.seq` Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/SendApiAsset.hs view
@@ -0,0 +1,289 @@+{-# 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.DataExchange.SendApiAsset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation invokes an API Gateway API asset. The request is proxied+-- to the provider’s API Gateway API.+module Amazonka.DataExchange.SendApiAsset+  ( -- * Creating a Request+    SendApiAsset (..),+    newSendApiAsset,++    -- * Request Lenses+    sendApiAsset_body,+    sendApiAsset_method,+    sendApiAsset_path,+    sendApiAsset_queryStringParameters,+    sendApiAsset_requestHeaders,+    sendApiAsset_assetId,+    sendApiAsset_dataSetId,+    sendApiAsset_revisionId,++    -- * Destructuring the Response+    SendApiAssetResponse (..),+    newSendApiAssetResponse,++    -- * Response Lenses+    sendApiAssetResponse_body,+    sendApiAssetResponse_responseHeaders,+    sendApiAssetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newSendApiAsset' smart constructor.+data SendApiAsset = SendApiAsset'+  { -- | The request body.+    body :: Prelude.Maybe Prelude.ByteString,+    -- | HTTP method value for the API request. Alternatively, you can use the+    -- appropriate verb in your request.+    method :: Prelude.Maybe Prelude.Text,+    -- | URI path value for the API request. Alternatively, you can set the URI+    -- path directly by invoking \/v1\/{pathValue}.+    path :: Prelude.Maybe Prelude.Text,+    -- | Attach query string parameters to the end of the URI (for example,+    -- \/v1\/examplePath?exampleParam=exampleValue).+    queryStringParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Any header value prefixed with x-amzn-dataexchange-header- will have+    -- that stripped before sending the Asset API request. Use this when you+    -- want to override a header that AWS Data Exchange uses. Alternatively,+    -- you can use the header without a prefix to the HTTP request.+    requestHeaders :: Prelude.HashMap Prelude.Text Prelude.Text,+    -- | Asset ID value for the API request.+    assetId :: Prelude.Text,+    -- | Data set ID value for the API request.+    dataSetId :: Prelude.Text,+    -- | Revision ID value for the API request.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SendApiAsset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'body', 'sendApiAsset_body' - The request body.+--+-- 'method', 'sendApiAsset_method' - HTTP method value for the API request. Alternatively, you can use the+-- appropriate verb in your request.+--+-- 'path', 'sendApiAsset_path' - URI path value for the API request. Alternatively, you can set the URI+-- path directly by invoking \/v1\/{pathValue}.+--+-- 'queryStringParameters', 'sendApiAsset_queryStringParameters' - Attach query string parameters to the end of the URI (for example,+-- \/v1\/examplePath?exampleParam=exampleValue).+--+-- 'requestHeaders', 'sendApiAsset_requestHeaders' - Any header value prefixed with x-amzn-dataexchange-header- will have+-- that stripped before sending the Asset API request. Use this when you+-- want to override a header that AWS Data Exchange uses. Alternatively,+-- you can use the header without a prefix to the HTTP request.+--+-- 'assetId', 'sendApiAsset_assetId' - Asset ID value for the API request.+--+-- 'dataSetId', 'sendApiAsset_dataSetId' - Data set ID value for the API request.+--+-- 'revisionId', 'sendApiAsset_revisionId' - Revision ID value for the API request.+newSendApiAsset ::+  -- | 'assetId'+  Prelude.Text ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  SendApiAsset+newSendApiAsset pAssetId_ pDataSetId_ pRevisionId_ =+  SendApiAsset'+    { body = Prelude.Nothing,+      method = Prelude.Nothing,+      path = Prelude.Nothing,+      queryStringParameters = Prelude.Nothing,+      requestHeaders = Prelude.mempty,+      assetId = pAssetId_,+      dataSetId = pDataSetId_,+      revisionId = pRevisionId_+    }++-- | The request body.+sendApiAsset_body :: Lens.Lens' SendApiAsset (Prelude.Maybe Prelude.ByteString)+sendApiAsset_body = Lens.lens (\SendApiAsset' {body} -> body) (\s@SendApiAsset' {} a -> s {body = a} :: SendApiAsset)++-- | HTTP method value for the API request. Alternatively, you can use the+-- appropriate verb in your request.+sendApiAsset_method :: Lens.Lens' SendApiAsset (Prelude.Maybe Prelude.Text)+sendApiAsset_method = Lens.lens (\SendApiAsset' {method} -> method) (\s@SendApiAsset' {} a -> s {method = a} :: SendApiAsset)++-- | URI path value for the API request. Alternatively, you can set the URI+-- path directly by invoking \/v1\/{pathValue}.+sendApiAsset_path :: Lens.Lens' SendApiAsset (Prelude.Maybe Prelude.Text)+sendApiAsset_path = Lens.lens (\SendApiAsset' {path} -> path) (\s@SendApiAsset' {} a -> s {path = a} :: SendApiAsset)++-- | Attach query string parameters to the end of the URI (for example,+-- \/v1\/examplePath?exampleParam=exampleValue).+sendApiAsset_queryStringParameters :: Lens.Lens' SendApiAsset (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+sendApiAsset_queryStringParameters = Lens.lens (\SendApiAsset' {queryStringParameters} -> queryStringParameters) (\s@SendApiAsset' {} a -> s {queryStringParameters = a} :: SendApiAsset) Prelude.. Lens.mapping Lens.coerced++-- | Any header value prefixed with x-amzn-dataexchange-header- will have+-- that stripped before sending the Asset API request. Use this when you+-- want to override a header that AWS Data Exchange uses. Alternatively,+-- you can use the header without a prefix to the HTTP request.+sendApiAsset_requestHeaders :: Lens.Lens' SendApiAsset (Prelude.HashMap Prelude.Text Prelude.Text)+sendApiAsset_requestHeaders = Lens.lens (\SendApiAsset' {requestHeaders} -> requestHeaders) (\s@SendApiAsset' {} a -> s {requestHeaders = a} :: SendApiAsset) Prelude.. Lens.coerced++-- | Asset ID value for the API request.+sendApiAsset_assetId :: Lens.Lens' SendApiAsset Prelude.Text+sendApiAsset_assetId = Lens.lens (\SendApiAsset' {assetId} -> assetId) (\s@SendApiAsset' {} a -> s {assetId = a} :: SendApiAsset)++-- | Data set ID value for the API request.+sendApiAsset_dataSetId :: Lens.Lens' SendApiAsset Prelude.Text+sendApiAsset_dataSetId = Lens.lens (\SendApiAsset' {dataSetId} -> dataSetId) (\s@SendApiAsset' {} a -> s {dataSetId = a} :: SendApiAsset)++-- | Revision ID value for the API request.+sendApiAsset_revisionId :: Lens.Lens' SendApiAsset Prelude.Text+sendApiAsset_revisionId = Lens.lens (\SendApiAsset' {revisionId} -> revisionId) (\s@SendApiAsset' {} a -> s {revisionId = a} :: SendApiAsset)++instance Core.AWSRequest SendApiAsset where+  type AWSResponse SendApiAsset = SendApiAssetResponse+  request overrides =+    Request.postBody (overrides defaultService)+  response =+    Response.receiveBytes+      ( \s h x ->+          SendApiAssetResponse'+            Prelude.<$> (Prelude.pure (Prelude.Just (Prelude.coerce x)))+            Prelude.<*> (Data.parseHeadersMap "" h)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable SendApiAsset where+  hashWithSalt _salt SendApiAsset' {..} =+    _salt+      `Prelude.hashWithSalt` body+      `Prelude.hashWithSalt` method+      `Prelude.hashWithSalt` path+      `Prelude.hashWithSalt` queryStringParameters+      `Prelude.hashWithSalt` requestHeaders+      `Prelude.hashWithSalt` assetId+      `Prelude.hashWithSalt` dataSetId+      `Prelude.hashWithSalt` revisionId++instance Prelude.NFData SendApiAsset where+  rnf SendApiAsset' {..} =+    Prelude.rnf body+      `Prelude.seq` Prelude.rnf method+      `Prelude.seq` Prelude.rnf path+      `Prelude.seq` Prelude.rnf queryStringParameters+      `Prelude.seq` Prelude.rnf requestHeaders+      `Prelude.seq` Prelude.rnf assetId+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId++instance Data.ToBody SendApiAsset where+  toBody SendApiAsset' {..} = Data.toBody body++instance Data.ToHeaders SendApiAsset where+  toHeaders SendApiAsset' {..} =+    Prelude.mconcat+      [ "x-amzn-dataexchange-http-method" Data.=# method,+        "x-amzn-dataexchange-path" Data.=# path,+        "x-amzn-dataexchange-header-" Data.=# requestHeaders,+        "x-amzn-dataexchange-asset-id" Data.=# assetId,+        "x-amzn-dataexchange-data-set-id" Data.=# dataSetId,+        "x-amzn-dataexchange-revision-id" Data.=# revisionId,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToPath SendApiAsset where+  toPath = Prelude.const "/v1"++instance Data.ToQuery SendApiAsset where+  toQuery SendApiAsset' {..} =+    Prelude.mconcat+      [ "QueryStringParameters"+          Data.=: Data.toQuery+            ( Data.toQueryMap "entry" "key" "value"+                Prelude.<$> queryStringParameters+            )+      ]++-- | /See:/ 'newSendApiAssetResponse' smart constructor.+data SendApiAssetResponse = SendApiAssetResponse'+  { -- | The response body from the underlying API tracked by the API asset.+    body :: Prelude.Maybe Prelude.ByteString,+    -- | The response headers from the underlying API tracked by the API asset.+    responseHeaders :: 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 'SendApiAssetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'body', 'sendApiAssetResponse_body' - The response body from the underlying API tracked by the API asset.+--+-- 'responseHeaders', 'sendApiAssetResponse_responseHeaders' - The response headers from the underlying API tracked by the API asset.+--+-- 'httpStatus', 'sendApiAssetResponse_httpStatus' - The response's http status code.+newSendApiAssetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  SendApiAssetResponse+newSendApiAssetResponse pHttpStatus_ =+  SendApiAssetResponse'+    { body = Prelude.Nothing,+      responseHeaders = Prelude.mempty,+      httpStatus = pHttpStatus_+    }++-- | The response body from the underlying API tracked by the API asset.+sendApiAssetResponse_body :: Lens.Lens' SendApiAssetResponse (Prelude.Maybe Prelude.ByteString)+sendApiAssetResponse_body = Lens.lens (\SendApiAssetResponse' {body} -> body) (\s@SendApiAssetResponse' {} a -> s {body = a} :: SendApiAssetResponse)++-- | The response headers from the underlying API tracked by the API asset.+sendApiAssetResponse_responseHeaders :: Lens.Lens' SendApiAssetResponse (Prelude.HashMap Prelude.Text Prelude.Text)+sendApiAssetResponse_responseHeaders = Lens.lens (\SendApiAssetResponse' {responseHeaders} -> responseHeaders) (\s@SendApiAssetResponse' {} a -> s {responseHeaders = a} :: SendApiAssetResponse) Prelude.. Lens.coerced++-- | The response's http status code.+sendApiAssetResponse_httpStatus :: Lens.Lens' SendApiAssetResponse Prelude.Int+sendApiAssetResponse_httpStatus = Lens.lens (\SendApiAssetResponse' {httpStatus} -> httpStatus) (\s@SendApiAssetResponse' {} a -> s {httpStatus = a} :: SendApiAssetResponse)++instance Prelude.NFData SendApiAssetResponse where+  rnf SendApiAssetResponse' {..} =+    Prelude.rnf body+      `Prelude.seq` Prelude.rnf responseHeaders+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/StartJob.hs view
@@ -0,0 +1,142 @@+{-# 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.DataExchange.StartJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation starts a job.+module Amazonka.DataExchange.StartJob+  ( -- * Creating a Request+    StartJob (..),+    newStartJob,++    -- * Request Lenses+    startJob_jobId,++    -- * Destructuring the Response+    StartJobResponse (..),+    newStartJobResponse,++    -- * Response Lenses+    startJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartJob' smart constructor.+data StartJob = StartJob'+  { -- | The unique identifier for a job.+    jobId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobId', 'startJob_jobId' - The unique identifier for a job.+newStartJob ::+  -- | 'jobId'+  Prelude.Text ->+  StartJob+newStartJob pJobId_ = StartJob' {jobId = pJobId_}++-- | The unique identifier for a job.+startJob_jobId :: Lens.Lens' StartJob Prelude.Text+startJob_jobId = Lens.lens (\StartJob' {jobId} -> jobId) (\s@StartJob' {} a -> s {jobId = a} :: StartJob)++instance Core.AWSRequest StartJob where+  type AWSResponse StartJob = StartJobResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          StartJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartJob where+  hashWithSalt _salt StartJob' {..} =+    _salt `Prelude.hashWithSalt` jobId++instance Prelude.NFData StartJob where+  rnf StartJob' {..} = Prelude.rnf jobId++instance Data.ToHeaders StartJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartJob where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath StartJob where+  toPath StartJob' {..} =+    Prelude.mconcat ["/v1/jobs/", Data.toBS jobId]++instance Data.ToQuery StartJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartJobResponse' smart constructor.+data StartJobResponse = StartJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'startJobResponse_httpStatus' - The response's http status code.+newStartJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartJobResponse+newStartJobResponse pHttpStatus_ =+  StartJobResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+startJobResponse_httpStatus :: Lens.Lens' StartJobResponse Prelude.Int+startJobResponse_httpStatus = Lens.lens (\StartJobResponse' {httpStatus} -> httpStatus) (\s@StartJobResponse' {} a -> s {httpStatus = a} :: StartJobResponse)++instance Prelude.NFData StartJobResponse where+  rnf StartJobResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/TagResource.hs view
@@ -0,0 +1,142 @@+{-# 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.DataExchange.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)+--+-- This operation tags a resource.+module Amazonka.DataExchange.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.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'+  { -- | An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.+    resourceArn :: Prelude.Text,+    -- | A label that consists of a customer-defined key and an optional value.+    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' - An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.+--+-- 'tags', 'tagResource_tags' - A label that consists of a customer-defined key and an optional value.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | A label that consists of a customer-defined key and an optional value.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response = Response.receiveNull TagResourceResponse'++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("tags" Data..= tags)]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newTagResourceResponse ::+  TagResourceResponse+newTagResourceResponse = TagResourceResponse'++instance Prelude.NFData TagResourceResponse where+  rnf _ = ()
+ gen/Amazonka/DataExchange/Types.hs view
@@ -0,0 +1,704 @@+{-# 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.DataExchange.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.DataExchange.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ServiceLimitExceededException,+    _ThrottlingException,+    _ValidationException,++    -- * AssetType+    AssetType (..),++    -- * Code+    Code (..),++    -- * DatabaseLFTagPolicyPermission+    DatabaseLFTagPolicyPermission (..),++    -- * JobErrorLimitName+    JobErrorLimitName (..),++    -- * JobErrorResourceTypes+    JobErrorResourceTypes (..),++    -- * LFPermission+    LFPermission (..),++    -- * LFResourceType+    LFResourceType (..),++    -- * LakeFormationDataPermissionType+    LakeFormationDataPermissionType (..),++    -- * Origin+    Origin (..),++    -- * ProtocolType+    ProtocolType (..),++    -- * ServerSideEncryptionTypes+    ServerSideEncryptionTypes (..),++    -- * State+    State (..),++    -- * TableTagPolicyLFPermission+    TableTagPolicyLFPermission (..),++    -- * Type+    Type (..),++    -- * Action+    Action (..),+    newAction,+    action_exportRevisionToS3,++    -- * ApiGatewayApiAsset+    ApiGatewayApiAsset (..),+    newApiGatewayApiAsset,+    apiGatewayApiAsset_apiDescription,+    apiGatewayApiAsset_apiEndpoint,+    apiGatewayApiAsset_apiId,+    apiGatewayApiAsset_apiKey,+    apiGatewayApiAsset_apiName,+    apiGatewayApiAsset_apiSpecificationDownloadUrl,+    apiGatewayApiAsset_apiSpecificationDownloadUrlExpiresAt,+    apiGatewayApiAsset_protocolType,+    apiGatewayApiAsset_stage,++    -- * AssetDestinationEntry+    AssetDestinationEntry (..),+    newAssetDestinationEntry,+    assetDestinationEntry_key,+    assetDestinationEntry_assetId,+    assetDestinationEntry_bucket,++    -- * AssetDetails+    AssetDetails (..),+    newAssetDetails,+    assetDetails_apiGatewayApiAsset,+    assetDetails_lakeFormationDataPermissionAsset,+    assetDetails_redshiftDataShareAsset,+    assetDetails_s3DataAccessAsset,+    assetDetails_s3SnapshotAsset,++    -- * AssetEntry+    AssetEntry (..),+    newAssetEntry,+    assetEntry_sourceId,+    assetEntry_arn,+    assetEntry_assetDetails,+    assetEntry_assetType,+    assetEntry_createdAt,+    assetEntry_dataSetId,+    assetEntry_id,+    assetEntry_name,+    assetEntry_revisionId,+    assetEntry_updatedAt,++    -- * AssetSourceEntry+    AssetSourceEntry (..),+    newAssetSourceEntry,+    assetSourceEntry_bucket,+    assetSourceEntry_key,++    -- * AutoExportRevisionDestinationEntry+    AutoExportRevisionDestinationEntry (..),+    newAutoExportRevisionDestinationEntry,+    autoExportRevisionDestinationEntry_keyPattern,+    autoExportRevisionDestinationEntry_bucket,++    -- * AutoExportRevisionToS3RequestDetails+    AutoExportRevisionToS3RequestDetails (..),+    newAutoExportRevisionToS3RequestDetails,+    autoExportRevisionToS3RequestDetails_encryption,+    autoExportRevisionToS3RequestDetails_revisionDestination,++    -- * CreateS3DataAccessFromS3BucketRequestDetails+    CreateS3DataAccessFromS3BucketRequestDetails (..),+    newCreateS3DataAccessFromS3BucketRequestDetails,+    createS3DataAccessFromS3BucketRequestDetails_assetSource,+    createS3DataAccessFromS3BucketRequestDetails_dataSetId,+    createS3DataAccessFromS3BucketRequestDetails_revisionId,++    -- * CreateS3DataAccessFromS3BucketResponseDetails+    CreateS3DataAccessFromS3BucketResponseDetails (..),+    newCreateS3DataAccessFromS3BucketResponseDetails,+    createS3DataAccessFromS3BucketResponseDetails_assetSource,+    createS3DataAccessFromS3BucketResponseDetails_dataSetId,+    createS3DataAccessFromS3BucketResponseDetails_revisionId,++    -- * DataSetEntry+    DataSetEntry (..),+    newDataSetEntry,+    dataSetEntry_originDetails,+    dataSetEntry_sourceId,+    dataSetEntry_arn,+    dataSetEntry_assetType,+    dataSetEntry_createdAt,+    dataSetEntry_description,+    dataSetEntry_id,+    dataSetEntry_name,+    dataSetEntry_origin,+    dataSetEntry_updatedAt,++    -- * DatabaseLFTagPolicy+    DatabaseLFTagPolicy (..),+    newDatabaseLFTagPolicy,+    databaseLFTagPolicy_expression,++    -- * DatabaseLFTagPolicyAndPermissions+    DatabaseLFTagPolicyAndPermissions (..),+    newDatabaseLFTagPolicyAndPermissions,+    databaseLFTagPolicyAndPermissions_expression,+    databaseLFTagPolicyAndPermissions_permissions,++    -- * Details+    Details (..),+    newDetails,+    details_importAssetFromSignedUrlJobErrorDetails,+    details_importAssetsFromS3JobErrorDetails,++    -- * Event+    Event (..),+    newEvent,+    event_revisionPublished,++    -- * EventActionEntry+    EventActionEntry (..),+    newEventActionEntry,+    eventActionEntry_action,+    eventActionEntry_arn,+    eventActionEntry_createdAt,+    eventActionEntry_event,+    eventActionEntry_id,+    eventActionEntry_updatedAt,++    -- * ExportAssetToSignedUrlRequestDetails+    ExportAssetToSignedUrlRequestDetails (..),+    newExportAssetToSignedUrlRequestDetails,+    exportAssetToSignedUrlRequestDetails_assetId,+    exportAssetToSignedUrlRequestDetails_dataSetId,+    exportAssetToSignedUrlRequestDetails_revisionId,++    -- * ExportAssetToSignedUrlResponseDetails+    ExportAssetToSignedUrlResponseDetails (..),+    newExportAssetToSignedUrlResponseDetails,+    exportAssetToSignedUrlResponseDetails_signedUrl,+    exportAssetToSignedUrlResponseDetails_signedUrlExpiresAt,+    exportAssetToSignedUrlResponseDetails_assetId,+    exportAssetToSignedUrlResponseDetails_dataSetId,+    exportAssetToSignedUrlResponseDetails_revisionId,++    -- * ExportAssetsToS3RequestDetails+    ExportAssetsToS3RequestDetails (..),+    newExportAssetsToS3RequestDetails,+    exportAssetsToS3RequestDetails_encryption,+    exportAssetsToS3RequestDetails_assetDestinations,+    exportAssetsToS3RequestDetails_dataSetId,+    exportAssetsToS3RequestDetails_revisionId,++    -- * ExportAssetsToS3ResponseDetails+    ExportAssetsToS3ResponseDetails (..),+    newExportAssetsToS3ResponseDetails,+    exportAssetsToS3ResponseDetails_encryption,+    exportAssetsToS3ResponseDetails_assetDestinations,+    exportAssetsToS3ResponseDetails_dataSetId,+    exportAssetsToS3ResponseDetails_revisionId,++    -- * ExportRevisionsToS3RequestDetails+    ExportRevisionsToS3RequestDetails (..),+    newExportRevisionsToS3RequestDetails,+    exportRevisionsToS3RequestDetails_encryption,+    exportRevisionsToS3RequestDetails_dataSetId,+    exportRevisionsToS3RequestDetails_revisionDestinations,++    -- * ExportRevisionsToS3ResponseDetails+    ExportRevisionsToS3ResponseDetails (..),+    newExportRevisionsToS3ResponseDetails,+    exportRevisionsToS3ResponseDetails_encryption,+    exportRevisionsToS3ResponseDetails_eventActionArn,+    exportRevisionsToS3ResponseDetails_dataSetId,+    exportRevisionsToS3ResponseDetails_revisionDestinations,++    -- * ExportServerSideEncryption+    ExportServerSideEncryption (..),+    newExportServerSideEncryption,+    exportServerSideEncryption_kmsKeyArn,+    exportServerSideEncryption_type,++    -- * ImportAssetFromApiGatewayApiRequestDetails+    ImportAssetFromApiGatewayApiRequestDetails (..),+    newImportAssetFromApiGatewayApiRequestDetails,+    importAssetFromApiGatewayApiRequestDetails_apiDescription,+    importAssetFromApiGatewayApiRequestDetails_apiKey,+    importAssetFromApiGatewayApiRequestDetails_apiId,+    importAssetFromApiGatewayApiRequestDetails_apiName,+    importAssetFromApiGatewayApiRequestDetails_apiSpecificationMd5Hash,+    importAssetFromApiGatewayApiRequestDetails_dataSetId,+    importAssetFromApiGatewayApiRequestDetails_protocolType,+    importAssetFromApiGatewayApiRequestDetails_revisionId,+    importAssetFromApiGatewayApiRequestDetails_stage,++    -- * ImportAssetFromApiGatewayApiResponseDetails+    ImportAssetFromApiGatewayApiResponseDetails (..),+    newImportAssetFromApiGatewayApiResponseDetails,+    importAssetFromApiGatewayApiResponseDetails_apiDescription,+    importAssetFromApiGatewayApiResponseDetails_apiKey,+    importAssetFromApiGatewayApiResponseDetails_apiId,+    importAssetFromApiGatewayApiResponseDetails_apiName,+    importAssetFromApiGatewayApiResponseDetails_apiSpecificationMd5Hash,+    importAssetFromApiGatewayApiResponseDetails_apiSpecificationUploadUrl,+    importAssetFromApiGatewayApiResponseDetails_apiSpecificationUploadUrlExpiresAt,+    importAssetFromApiGatewayApiResponseDetails_dataSetId,+    importAssetFromApiGatewayApiResponseDetails_protocolType,+    importAssetFromApiGatewayApiResponseDetails_revisionId,+    importAssetFromApiGatewayApiResponseDetails_stage,++    -- * ImportAssetFromSignedUrlJobErrorDetails+    ImportAssetFromSignedUrlJobErrorDetails (..),+    newImportAssetFromSignedUrlJobErrorDetails,+    importAssetFromSignedUrlJobErrorDetails_assetName,++    -- * ImportAssetFromSignedUrlRequestDetails+    ImportAssetFromSignedUrlRequestDetails (..),+    newImportAssetFromSignedUrlRequestDetails,+    importAssetFromSignedUrlRequestDetails_assetName,+    importAssetFromSignedUrlRequestDetails_dataSetId,+    importAssetFromSignedUrlRequestDetails_md5Hash,+    importAssetFromSignedUrlRequestDetails_revisionId,++    -- * ImportAssetFromSignedUrlResponseDetails+    ImportAssetFromSignedUrlResponseDetails (..),+    newImportAssetFromSignedUrlResponseDetails,+    importAssetFromSignedUrlResponseDetails_md5Hash,+    importAssetFromSignedUrlResponseDetails_signedUrl,+    importAssetFromSignedUrlResponseDetails_signedUrlExpiresAt,+    importAssetFromSignedUrlResponseDetails_assetName,+    importAssetFromSignedUrlResponseDetails_dataSetId,+    importAssetFromSignedUrlResponseDetails_revisionId,++    -- * ImportAssetsFromLakeFormationTagPolicyRequestDetails+    ImportAssetsFromLakeFormationTagPolicyRequestDetails (..),+    newImportAssetsFromLakeFormationTagPolicyRequestDetails,+    importAssetsFromLakeFormationTagPolicyRequestDetails_database,+    importAssetsFromLakeFormationTagPolicyRequestDetails_table,+    importAssetsFromLakeFormationTagPolicyRequestDetails_catalogId,+    importAssetsFromLakeFormationTagPolicyRequestDetails_roleArn,+    importAssetsFromLakeFormationTagPolicyRequestDetails_dataSetId,+    importAssetsFromLakeFormationTagPolicyRequestDetails_revisionId,++    -- * ImportAssetsFromLakeFormationTagPolicyResponseDetails+    ImportAssetsFromLakeFormationTagPolicyResponseDetails (..),+    newImportAssetsFromLakeFormationTagPolicyResponseDetails,+    importAssetsFromLakeFormationTagPolicyResponseDetails_database,+    importAssetsFromLakeFormationTagPolicyResponseDetails_table,+    importAssetsFromLakeFormationTagPolicyResponseDetails_catalogId,+    importAssetsFromLakeFormationTagPolicyResponseDetails_roleArn,+    importAssetsFromLakeFormationTagPolicyResponseDetails_dataSetId,+    importAssetsFromLakeFormationTagPolicyResponseDetails_revisionId,++    -- * ImportAssetsFromRedshiftDataSharesRequestDetails+    ImportAssetsFromRedshiftDataSharesRequestDetails (..),+    newImportAssetsFromRedshiftDataSharesRequestDetails,+    importAssetsFromRedshiftDataSharesRequestDetails_assetSources,+    importAssetsFromRedshiftDataSharesRequestDetails_dataSetId,+    importAssetsFromRedshiftDataSharesRequestDetails_revisionId,++    -- * ImportAssetsFromRedshiftDataSharesResponseDetails+    ImportAssetsFromRedshiftDataSharesResponseDetails (..),+    newImportAssetsFromRedshiftDataSharesResponseDetails,+    importAssetsFromRedshiftDataSharesResponseDetails_assetSources,+    importAssetsFromRedshiftDataSharesResponseDetails_dataSetId,+    importAssetsFromRedshiftDataSharesResponseDetails_revisionId,++    -- * ImportAssetsFromS3RequestDetails+    ImportAssetsFromS3RequestDetails (..),+    newImportAssetsFromS3RequestDetails,+    importAssetsFromS3RequestDetails_assetSources,+    importAssetsFromS3RequestDetails_dataSetId,+    importAssetsFromS3RequestDetails_revisionId,++    -- * ImportAssetsFromS3ResponseDetails+    ImportAssetsFromS3ResponseDetails (..),+    newImportAssetsFromS3ResponseDetails,+    importAssetsFromS3ResponseDetails_assetSources,+    importAssetsFromS3ResponseDetails_dataSetId,+    importAssetsFromS3ResponseDetails_revisionId,++    -- * JobEntry+    JobEntry (..),+    newJobEntry,+    jobEntry_errors,+    jobEntry_arn,+    jobEntry_createdAt,+    jobEntry_details,+    jobEntry_id,+    jobEntry_state,+    jobEntry_type,+    jobEntry_updatedAt,++    -- * JobError+    JobError (..),+    newJobError,+    jobError_details,+    jobError_limitName,+    jobError_limitValue,+    jobError_resourceId,+    jobError_resourceType,+    jobError_code,+    jobError_message,++    -- * LFResourceDetails+    LFResourceDetails (..),+    newLFResourceDetails,+    lFResourceDetails_database,+    lFResourceDetails_table,++    -- * LFTag+    LFTag (..),+    newLFTag,+    lFTag_tagKey,+    lFTag_tagValues,++    -- * LFTagPolicyDetails+    LFTagPolicyDetails (..),+    newLFTagPolicyDetails,+    lFTagPolicyDetails_catalogId,+    lFTagPolicyDetails_resourceType,+    lFTagPolicyDetails_resourceDetails,++    -- * LakeFormationDataPermissionAsset+    LakeFormationDataPermissionAsset (..),+    newLakeFormationDataPermissionAsset,+    lakeFormationDataPermissionAsset_roleArn,+    lakeFormationDataPermissionAsset_lakeFormationDataPermissionDetails,+    lakeFormationDataPermissionAsset_lakeFormationDataPermissionType,+    lakeFormationDataPermissionAsset_permissions,++    -- * LakeFormationDataPermissionDetails+    LakeFormationDataPermissionDetails (..),+    newLakeFormationDataPermissionDetails,+    lakeFormationDataPermissionDetails_lFTagPolicy,++    -- * OriginDetails+    OriginDetails (..),+    newOriginDetails,+    originDetails_productId,++    -- * RedshiftDataShareAsset+    RedshiftDataShareAsset (..),+    newRedshiftDataShareAsset,+    redshiftDataShareAsset_arn,++    -- * RedshiftDataShareAssetSourceEntry+    RedshiftDataShareAssetSourceEntry (..),+    newRedshiftDataShareAssetSourceEntry,+    redshiftDataShareAssetSourceEntry_dataShareArn,++    -- * RequestDetails+    RequestDetails (..),+    newRequestDetails,+    requestDetails_createS3DataAccessFromS3Bucket,+    requestDetails_exportAssetToSignedUrl,+    requestDetails_exportAssetsToS3,+    requestDetails_exportRevisionsToS3,+    requestDetails_importAssetFromApiGatewayApi,+    requestDetails_importAssetFromSignedUrl,+    requestDetails_importAssetsFromLakeFormationTagPolicy,+    requestDetails_importAssetsFromRedshiftDataShares,+    requestDetails_importAssetsFromS3,++    -- * ResponseDetails+    ResponseDetails (..),+    newResponseDetails,+    responseDetails_createS3DataAccessFromS3Bucket,+    responseDetails_exportAssetToSignedUrl,+    responseDetails_exportAssetsToS3,+    responseDetails_exportRevisionsToS3,+    responseDetails_importAssetFromApiGatewayApi,+    responseDetails_importAssetFromSignedUrl,+    responseDetails_importAssetsFromLakeFormationTagPolicy,+    responseDetails_importAssetsFromRedshiftDataShares,+    responseDetails_importAssetsFromS3,++    -- * RevisionDestinationEntry+    RevisionDestinationEntry (..),+    newRevisionDestinationEntry,+    revisionDestinationEntry_keyPattern,+    revisionDestinationEntry_bucket,+    revisionDestinationEntry_revisionId,++    -- * RevisionEntry+    RevisionEntry (..),+    newRevisionEntry,+    revisionEntry_comment,+    revisionEntry_finalized,+    revisionEntry_revocationComment,+    revisionEntry_revoked,+    revisionEntry_revokedAt,+    revisionEntry_sourceId,+    revisionEntry_arn,+    revisionEntry_createdAt,+    revisionEntry_dataSetId,+    revisionEntry_id,+    revisionEntry_updatedAt,++    -- * RevisionPublished+    RevisionPublished (..),+    newRevisionPublished,+    revisionPublished_dataSetId,++    -- * S3DataAccessAsset+    S3DataAccessAsset (..),+    newS3DataAccessAsset,+    s3DataAccessAsset_keyPrefixes,+    s3DataAccessAsset_keys,+    s3DataAccessAsset_s3AccessPointAlias,+    s3DataAccessAsset_s3AccessPointArn,+    s3DataAccessAsset_bucket,++    -- * S3DataAccessAssetSourceEntry+    S3DataAccessAssetSourceEntry (..),+    newS3DataAccessAssetSourceEntry,+    s3DataAccessAssetSourceEntry_keyPrefixes,+    s3DataAccessAssetSourceEntry_keys,+    s3DataAccessAssetSourceEntry_bucket,++    -- * S3SnapshotAsset+    S3SnapshotAsset (..),+    newS3SnapshotAsset,+    s3SnapshotAsset_size,++    -- * TableLFTagPolicy+    TableLFTagPolicy (..),+    newTableLFTagPolicy,+    tableLFTagPolicy_expression,++    -- * TableLFTagPolicyAndPermissions+    TableLFTagPolicyAndPermissions (..),+    newTableLFTagPolicyAndPermissions,+    tableLFTagPolicyAndPermissions_expression,+    tableLFTagPolicyAndPermissions_permissions,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.DataExchange.Types.Action+import Amazonka.DataExchange.Types.ApiGatewayApiAsset+import Amazonka.DataExchange.Types.AssetDestinationEntry+import Amazonka.DataExchange.Types.AssetDetails+import Amazonka.DataExchange.Types.AssetEntry+import Amazonka.DataExchange.Types.AssetSourceEntry+import Amazonka.DataExchange.Types.AssetType+import Amazonka.DataExchange.Types.AutoExportRevisionDestinationEntry+import Amazonka.DataExchange.Types.AutoExportRevisionToS3RequestDetails+import Amazonka.DataExchange.Types.Code+import Amazonka.DataExchange.Types.CreateS3DataAccessFromS3BucketRequestDetails+import Amazonka.DataExchange.Types.CreateS3DataAccessFromS3BucketResponseDetails+import Amazonka.DataExchange.Types.DataSetEntry+import Amazonka.DataExchange.Types.DatabaseLFTagPolicy+import Amazonka.DataExchange.Types.DatabaseLFTagPolicyAndPermissions+import Amazonka.DataExchange.Types.DatabaseLFTagPolicyPermission+import Amazonka.DataExchange.Types.Details+import Amazonka.DataExchange.Types.Event+import Amazonka.DataExchange.Types.EventActionEntry+import Amazonka.DataExchange.Types.ExportAssetToSignedUrlRequestDetails+import Amazonka.DataExchange.Types.ExportAssetToSignedUrlResponseDetails+import Amazonka.DataExchange.Types.ExportAssetsToS3RequestDetails+import Amazonka.DataExchange.Types.ExportAssetsToS3ResponseDetails+import Amazonka.DataExchange.Types.ExportRevisionsToS3RequestDetails+import Amazonka.DataExchange.Types.ExportRevisionsToS3ResponseDetails+import Amazonka.DataExchange.Types.ExportServerSideEncryption+import Amazonka.DataExchange.Types.ImportAssetFromApiGatewayApiRequestDetails+import Amazonka.DataExchange.Types.ImportAssetFromApiGatewayApiResponseDetails+import Amazonka.DataExchange.Types.ImportAssetFromSignedUrlJobErrorDetails+import Amazonka.DataExchange.Types.ImportAssetFromSignedUrlRequestDetails+import Amazonka.DataExchange.Types.ImportAssetFromSignedUrlResponseDetails+import Amazonka.DataExchange.Types.ImportAssetsFromLakeFormationTagPolicyRequestDetails+import Amazonka.DataExchange.Types.ImportAssetsFromLakeFormationTagPolicyResponseDetails+import Amazonka.DataExchange.Types.ImportAssetsFromRedshiftDataSharesRequestDetails+import Amazonka.DataExchange.Types.ImportAssetsFromRedshiftDataSharesResponseDetails+import Amazonka.DataExchange.Types.ImportAssetsFromS3RequestDetails+import Amazonka.DataExchange.Types.ImportAssetsFromS3ResponseDetails+import Amazonka.DataExchange.Types.JobEntry+import Amazonka.DataExchange.Types.JobError+import Amazonka.DataExchange.Types.JobErrorLimitName+import Amazonka.DataExchange.Types.JobErrorResourceTypes+import Amazonka.DataExchange.Types.LFPermission+import Amazonka.DataExchange.Types.LFResourceDetails+import Amazonka.DataExchange.Types.LFResourceType+import Amazonka.DataExchange.Types.LFTag+import Amazonka.DataExchange.Types.LFTagPolicyDetails+import Amazonka.DataExchange.Types.LakeFormationDataPermissionAsset+import Amazonka.DataExchange.Types.LakeFormationDataPermissionDetails+import Amazonka.DataExchange.Types.LakeFormationDataPermissionType+import Amazonka.DataExchange.Types.Origin+import Amazonka.DataExchange.Types.OriginDetails+import Amazonka.DataExchange.Types.ProtocolType+import Amazonka.DataExchange.Types.RedshiftDataShareAsset+import Amazonka.DataExchange.Types.RedshiftDataShareAssetSourceEntry+import Amazonka.DataExchange.Types.RequestDetails+import Amazonka.DataExchange.Types.ResponseDetails+import Amazonka.DataExchange.Types.RevisionDestinationEntry+import Amazonka.DataExchange.Types.RevisionEntry+import Amazonka.DataExchange.Types.RevisionPublished+import Amazonka.DataExchange.Types.S3DataAccessAsset+import Amazonka.DataExchange.Types.S3DataAccessAssetSourceEntry+import Amazonka.DataExchange.Types.S3SnapshotAsset+import Amazonka.DataExchange.Types.ServerSideEncryptionTypes+import Amazonka.DataExchange.Types.State+import Amazonka.DataExchange.Types.TableLFTagPolicy+import Amazonka.DataExchange.Types.TableLFTagPolicyAndPermissions+import Amazonka.DataExchange.Types.TableTagPolicyLFPermission+import Amazonka.DataExchange.Types.Type+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2017-07-25@ of the Amazon Data Exchange SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "DataExchange",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "dataexchange",+      Core.signingName = "dataexchange",+      Core.version = "2017-07-25",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "DataExchange",+      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++-- | Access to the resource is denied.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | The request couldn\'t be completed because it conflicted with the+-- current state of the resource.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | An exception occurred with the service.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | The resource couldn\'t be found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | The request has exceeded the quotas imposed by the service.+_ServiceLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceLimitExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceLimitExceededException"+    Prelude.. Core.hasStatus 402++-- | The limit on the number of requests per second was exceeded.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"+    Prelude.. Core.hasStatus 429++-- | The request was invalid.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/DataExchange/Types/Action.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.DataExchange.Types.Action+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataExchange.Types.Action where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.AutoExportRevisionToS3RequestDetails+import qualified Amazonka.Prelude as Prelude++-- | What occurs after a certain event.+--+-- /See:/ 'newAction' smart constructor.+data Action = Action'+  { -- | Details for the export revision to Amazon S3 action.+    exportRevisionToS3 :: Prelude.Maybe AutoExportRevisionToS3RequestDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Action' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exportRevisionToS3', 'action_exportRevisionToS3' - Details for the export revision to Amazon S3 action.+newAction ::+  Action+newAction =+  Action' {exportRevisionToS3 = Prelude.Nothing}++-- | Details for the export revision to Amazon S3 action.+action_exportRevisionToS3 :: Lens.Lens' Action (Prelude.Maybe AutoExportRevisionToS3RequestDetails)+action_exportRevisionToS3 = Lens.lens (\Action' {exportRevisionToS3} -> exportRevisionToS3) (\s@Action' {} a -> s {exportRevisionToS3 = a} :: Action)++instance Data.FromJSON Action where+  parseJSON =+    Data.withObject+      "Action"+      ( \x ->+          Action'+            Prelude.<$> (x Data..:? "ExportRevisionToS3")+      )++instance Prelude.Hashable Action where+  hashWithSalt _salt Action' {..} =+    _salt `Prelude.hashWithSalt` exportRevisionToS3++instance Prelude.NFData Action where+  rnf Action' {..} = Prelude.rnf exportRevisionToS3++instance Data.ToJSON Action where+  toJSON Action' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ExportRevisionToS3" Data..=)+              Prelude.<$> exportRevisionToS3+          ]+      )
+ gen/Amazonka/DataExchange/Types/ApiGatewayApiAsset.hs view
@@ -0,0 +1,171 @@+{-# 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.DataExchange.Types.ApiGatewayApiAsset+-- 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.DataExchange.Types.ApiGatewayApiAsset where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.ProtocolType+import qualified Amazonka.Prelude as Prelude++-- | The API Gateway API that is the asset.+--+-- /See:/ 'newApiGatewayApiAsset' smart constructor.+data ApiGatewayApiAsset = ApiGatewayApiAsset'+  { -- | The API description of the API asset.+    apiDescription :: Prelude.Maybe Prelude.Text,+    -- | The API endpoint of the API asset.+    apiEndpoint :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the API asset.+    apiId :: Prelude.Maybe Prelude.Text,+    -- | The API key of the API asset.+    apiKey :: Prelude.Maybe Prelude.Text,+    -- | The API name of the API asset.+    apiName :: Prelude.Maybe Prelude.Text,+    -- | The download URL of the API specification of the API asset.+    apiSpecificationDownloadUrl :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the upload URL expires, in ISO 8601 format.+    apiSpecificationDownloadUrlExpiresAt :: Prelude.Maybe Data.ISO8601,+    -- | The protocol type of the API asset.+    protocolType :: Prelude.Maybe ProtocolType,+    -- | The stage of the API asset.+    stage :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ApiGatewayApiAsset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiDescription', 'apiGatewayApiAsset_apiDescription' - The API description of the API asset.+--+-- 'apiEndpoint', 'apiGatewayApiAsset_apiEndpoint' - The API endpoint of the API asset.+--+-- 'apiId', 'apiGatewayApiAsset_apiId' - The unique identifier of the API asset.+--+-- 'apiKey', 'apiGatewayApiAsset_apiKey' - The API key of the API asset.+--+-- 'apiName', 'apiGatewayApiAsset_apiName' - The API name of the API asset.+--+-- 'apiSpecificationDownloadUrl', 'apiGatewayApiAsset_apiSpecificationDownloadUrl' - The download URL of the API specification of the API asset.+--+-- 'apiSpecificationDownloadUrlExpiresAt', 'apiGatewayApiAsset_apiSpecificationDownloadUrlExpiresAt' - The date and time that the upload URL expires, in ISO 8601 format.+--+-- 'protocolType', 'apiGatewayApiAsset_protocolType' - The protocol type of the API asset.+--+-- 'stage', 'apiGatewayApiAsset_stage' - The stage of the API asset.+newApiGatewayApiAsset ::+  ApiGatewayApiAsset+newApiGatewayApiAsset =+  ApiGatewayApiAsset'+    { apiDescription =+        Prelude.Nothing,+      apiEndpoint = Prelude.Nothing,+      apiId = Prelude.Nothing,+      apiKey = Prelude.Nothing,+      apiName = Prelude.Nothing,+      apiSpecificationDownloadUrl = Prelude.Nothing,+      apiSpecificationDownloadUrlExpiresAt =+        Prelude.Nothing,+      protocolType = Prelude.Nothing,+      stage = Prelude.Nothing+    }++-- | The API description of the API asset.+apiGatewayApiAsset_apiDescription :: Lens.Lens' ApiGatewayApiAsset (Prelude.Maybe Prelude.Text)+apiGatewayApiAsset_apiDescription = Lens.lens (\ApiGatewayApiAsset' {apiDescription} -> apiDescription) (\s@ApiGatewayApiAsset' {} a -> s {apiDescription = a} :: ApiGatewayApiAsset)++-- | The API endpoint of the API asset.+apiGatewayApiAsset_apiEndpoint :: Lens.Lens' ApiGatewayApiAsset (Prelude.Maybe Prelude.Text)+apiGatewayApiAsset_apiEndpoint = Lens.lens (\ApiGatewayApiAsset' {apiEndpoint} -> apiEndpoint) (\s@ApiGatewayApiAsset' {} a -> s {apiEndpoint = a} :: ApiGatewayApiAsset)++-- | The unique identifier of the API asset.+apiGatewayApiAsset_apiId :: Lens.Lens' ApiGatewayApiAsset (Prelude.Maybe Prelude.Text)+apiGatewayApiAsset_apiId = Lens.lens (\ApiGatewayApiAsset' {apiId} -> apiId) (\s@ApiGatewayApiAsset' {} a -> s {apiId = a} :: ApiGatewayApiAsset)++-- | The API key of the API asset.+apiGatewayApiAsset_apiKey :: Lens.Lens' ApiGatewayApiAsset (Prelude.Maybe Prelude.Text)+apiGatewayApiAsset_apiKey = Lens.lens (\ApiGatewayApiAsset' {apiKey} -> apiKey) (\s@ApiGatewayApiAsset' {} a -> s {apiKey = a} :: ApiGatewayApiAsset)++-- | The API name of the API asset.+apiGatewayApiAsset_apiName :: Lens.Lens' ApiGatewayApiAsset (Prelude.Maybe Prelude.Text)+apiGatewayApiAsset_apiName = Lens.lens (\ApiGatewayApiAsset' {apiName} -> apiName) (\s@ApiGatewayApiAsset' {} a -> s {apiName = a} :: ApiGatewayApiAsset)++-- | The download URL of the API specification of the API asset.+apiGatewayApiAsset_apiSpecificationDownloadUrl :: Lens.Lens' ApiGatewayApiAsset (Prelude.Maybe Prelude.Text)+apiGatewayApiAsset_apiSpecificationDownloadUrl = Lens.lens (\ApiGatewayApiAsset' {apiSpecificationDownloadUrl} -> apiSpecificationDownloadUrl) (\s@ApiGatewayApiAsset' {} a -> s {apiSpecificationDownloadUrl = a} :: ApiGatewayApiAsset)++-- | The date and time that the upload URL expires, in ISO 8601 format.+apiGatewayApiAsset_apiSpecificationDownloadUrlExpiresAt :: Lens.Lens' ApiGatewayApiAsset (Prelude.Maybe Prelude.UTCTime)+apiGatewayApiAsset_apiSpecificationDownloadUrlExpiresAt = Lens.lens (\ApiGatewayApiAsset' {apiSpecificationDownloadUrlExpiresAt} -> apiSpecificationDownloadUrlExpiresAt) (\s@ApiGatewayApiAsset' {} a -> s {apiSpecificationDownloadUrlExpiresAt = a} :: ApiGatewayApiAsset) Prelude.. Lens.mapping Data._Time++-- | The protocol type of the API asset.+apiGatewayApiAsset_protocolType :: Lens.Lens' ApiGatewayApiAsset (Prelude.Maybe ProtocolType)+apiGatewayApiAsset_protocolType = Lens.lens (\ApiGatewayApiAsset' {protocolType} -> protocolType) (\s@ApiGatewayApiAsset' {} a -> s {protocolType = a} :: ApiGatewayApiAsset)++-- | The stage of the API asset.+apiGatewayApiAsset_stage :: Lens.Lens' ApiGatewayApiAsset (Prelude.Maybe Prelude.Text)+apiGatewayApiAsset_stage = Lens.lens (\ApiGatewayApiAsset' {stage} -> stage) (\s@ApiGatewayApiAsset' {} a -> s {stage = a} :: ApiGatewayApiAsset)++instance Data.FromJSON ApiGatewayApiAsset where+  parseJSON =+    Data.withObject+      "ApiGatewayApiAsset"+      ( \x ->+          ApiGatewayApiAsset'+            Prelude.<$> (x Data..:? "ApiDescription")+            Prelude.<*> (x Data..:? "ApiEndpoint")+            Prelude.<*> (x Data..:? "ApiId")+            Prelude.<*> (x Data..:? "ApiKey")+            Prelude.<*> (x Data..:? "ApiName")+            Prelude.<*> (x Data..:? "ApiSpecificationDownloadUrl")+            Prelude.<*> (x Data..:? "ApiSpecificationDownloadUrlExpiresAt")+            Prelude.<*> (x Data..:? "ProtocolType")+            Prelude.<*> (x Data..:? "Stage")+      )++instance Prelude.Hashable ApiGatewayApiAsset where+  hashWithSalt _salt ApiGatewayApiAsset' {..} =+    _salt+      `Prelude.hashWithSalt` apiDescription+      `Prelude.hashWithSalt` apiEndpoint+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` apiKey+      `Prelude.hashWithSalt` apiName+      `Prelude.hashWithSalt` apiSpecificationDownloadUrl+      `Prelude.hashWithSalt` apiSpecificationDownloadUrlExpiresAt+      `Prelude.hashWithSalt` protocolType+      `Prelude.hashWithSalt` stage++instance Prelude.NFData ApiGatewayApiAsset where+  rnf ApiGatewayApiAsset' {..} =+    Prelude.rnf apiDescription+      `Prelude.seq` Prelude.rnf apiEndpoint+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf apiKey+      `Prelude.seq` Prelude.rnf apiName+      `Prelude.seq` Prelude.rnf apiSpecificationDownloadUrl+      `Prelude.seq` Prelude.rnf apiSpecificationDownloadUrlExpiresAt+      `Prelude.seq` Prelude.rnf protocolType+      `Prelude.seq` Prelude.rnf stage
+ gen/Amazonka/DataExchange/Types/AssetDestinationEntry.hs view
@@ -0,0 +1,110 @@+{-# 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.DataExchange.Types.AssetDestinationEntry+-- 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.DataExchange.Types.AssetDestinationEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The destination for the asset.+--+-- /See:/ 'newAssetDestinationEntry' smart constructor.+data AssetDestinationEntry = AssetDestinationEntry'+  { -- | The name of the object in Amazon S3 for the asset.+    key :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the asset.+    assetId :: Prelude.Text,+    -- | The Amazon S3 bucket that is the destination for the asset.+    bucket :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssetDestinationEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'assetDestinationEntry_key' - The name of the object in Amazon S3 for the asset.+--+-- 'assetId', 'assetDestinationEntry_assetId' - The unique identifier for the asset.+--+-- 'bucket', 'assetDestinationEntry_bucket' - The Amazon S3 bucket that is the destination for the asset.+newAssetDestinationEntry ::+  -- | 'assetId'+  Prelude.Text ->+  -- | 'bucket'+  Prelude.Text ->+  AssetDestinationEntry+newAssetDestinationEntry pAssetId_ pBucket_ =+  AssetDestinationEntry'+    { key = Prelude.Nothing,+      assetId = pAssetId_,+      bucket = pBucket_+    }++-- | The name of the object in Amazon S3 for the asset.+assetDestinationEntry_key :: Lens.Lens' AssetDestinationEntry (Prelude.Maybe Prelude.Text)+assetDestinationEntry_key = Lens.lens (\AssetDestinationEntry' {key} -> key) (\s@AssetDestinationEntry' {} a -> s {key = a} :: AssetDestinationEntry)++-- | The unique identifier for the asset.+assetDestinationEntry_assetId :: Lens.Lens' AssetDestinationEntry Prelude.Text+assetDestinationEntry_assetId = Lens.lens (\AssetDestinationEntry' {assetId} -> assetId) (\s@AssetDestinationEntry' {} a -> s {assetId = a} :: AssetDestinationEntry)++-- | The Amazon S3 bucket that is the destination for the asset.+assetDestinationEntry_bucket :: Lens.Lens' AssetDestinationEntry Prelude.Text+assetDestinationEntry_bucket = Lens.lens (\AssetDestinationEntry' {bucket} -> bucket) (\s@AssetDestinationEntry' {} a -> s {bucket = a} :: AssetDestinationEntry)++instance Data.FromJSON AssetDestinationEntry where+  parseJSON =+    Data.withObject+      "AssetDestinationEntry"+      ( \x ->+          AssetDestinationEntry'+            Prelude.<$> (x Data..:? "Key")+            Prelude.<*> (x Data..: "AssetId")+            Prelude.<*> (x Data..: "Bucket")+      )++instance Prelude.Hashable AssetDestinationEntry where+  hashWithSalt _salt AssetDestinationEntry' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` assetId+      `Prelude.hashWithSalt` bucket++instance Prelude.NFData AssetDestinationEntry where+  rnf AssetDestinationEntry' {..} =+    Prelude.rnf key+      `Prelude.seq` Prelude.rnf assetId+      `Prelude.seq` Prelude.rnf bucket++instance Data.ToJSON AssetDestinationEntry where+  toJSON AssetDestinationEntry' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Key" Data..=) Prelude.<$> key,+            Prelude.Just ("AssetId" Data..= assetId),+            Prelude.Just ("Bucket" Data..= bucket)+          ]+      )
+ gen/Amazonka/DataExchange/Types/AssetDetails.hs view
@@ -0,0 +1,125 @@+{-# 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.DataExchange.Types.AssetDetails+-- 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.DataExchange.Types.AssetDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.ApiGatewayApiAsset+import Amazonka.DataExchange.Types.LakeFormationDataPermissionAsset+import Amazonka.DataExchange.Types.RedshiftDataShareAsset+import Amazonka.DataExchange.Types.S3DataAccessAsset+import Amazonka.DataExchange.Types.S3SnapshotAsset+import qualified Amazonka.Prelude as Prelude++-- | Details about the asset.+--+-- /See:/ 'newAssetDetails' smart constructor.+data AssetDetails = AssetDetails'+  { -- | Information about the API Gateway API asset.+    apiGatewayApiAsset :: Prelude.Maybe ApiGatewayApiAsset,+    -- | The AWS Lake Formation data permission that is the asset.+    lakeFormationDataPermissionAsset :: Prelude.Maybe LakeFormationDataPermissionAsset,+    -- | The Amazon Redshift datashare that is the asset.+    redshiftDataShareAsset :: Prelude.Maybe RedshiftDataShareAsset,+    -- | The Amazon S3 data access that is the asset.+    s3DataAccessAsset :: Prelude.Maybe S3DataAccessAsset,+    -- | The Amazon S3 object that is the asset.+    s3SnapshotAsset :: Prelude.Maybe S3SnapshotAsset+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssetDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiGatewayApiAsset', 'assetDetails_apiGatewayApiAsset' - Information about the API Gateway API asset.+--+-- 'lakeFormationDataPermissionAsset', 'assetDetails_lakeFormationDataPermissionAsset' - The AWS Lake Formation data permission that is the asset.+--+-- 'redshiftDataShareAsset', 'assetDetails_redshiftDataShareAsset' - The Amazon Redshift datashare that is the asset.+--+-- 's3DataAccessAsset', 'assetDetails_s3DataAccessAsset' - The Amazon S3 data access that is the asset.+--+-- 's3SnapshotAsset', 'assetDetails_s3SnapshotAsset' - The Amazon S3 object that is the asset.+newAssetDetails ::+  AssetDetails+newAssetDetails =+  AssetDetails'+    { apiGatewayApiAsset = Prelude.Nothing,+      lakeFormationDataPermissionAsset = Prelude.Nothing,+      redshiftDataShareAsset = Prelude.Nothing,+      s3DataAccessAsset = Prelude.Nothing,+      s3SnapshotAsset = Prelude.Nothing+    }++-- | Information about the API Gateway API asset.+assetDetails_apiGatewayApiAsset :: Lens.Lens' AssetDetails (Prelude.Maybe ApiGatewayApiAsset)+assetDetails_apiGatewayApiAsset = Lens.lens (\AssetDetails' {apiGatewayApiAsset} -> apiGatewayApiAsset) (\s@AssetDetails' {} a -> s {apiGatewayApiAsset = a} :: AssetDetails)++-- | The AWS Lake Formation data permission that is the asset.+assetDetails_lakeFormationDataPermissionAsset :: Lens.Lens' AssetDetails (Prelude.Maybe LakeFormationDataPermissionAsset)+assetDetails_lakeFormationDataPermissionAsset = Lens.lens (\AssetDetails' {lakeFormationDataPermissionAsset} -> lakeFormationDataPermissionAsset) (\s@AssetDetails' {} a -> s {lakeFormationDataPermissionAsset = a} :: AssetDetails)++-- | The Amazon Redshift datashare that is the asset.+assetDetails_redshiftDataShareAsset :: Lens.Lens' AssetDetails (Prelude.Maybe RedshiftDataShareAsset)+assetDetails_redshiftDataShareAsset = Lens.lens (\AssetDetails' {redshiftDataShareAsset} -> redshiftDataShareAsset) (\s@AssetDetails' {} a -> s {redshiftDataShareAsset = a} :: AssetDetails)++-- | The Amazon S3 data access that is the asset.+assetDetails_s3DataAccessAsset :: Lens.Lens' AssetDetails (Prelude.Maybe S3DataAccessAsset)+assetDetails_s3DataAccessAsset = Lens.lens (\AssetDetails' {s3DataAccessAsset} -> s3DataAccessAsset) (\s@AssetDetails' {} a -> s {s3DataAccessAsset = a} :: AssetDetails)++-- | The Amazon S3 object that is the asset.+assetDetails_s3SnapshotAsset :: Lens.Lens' AssetDetails (Prelude.Maybe S3SnapshotAsset)+assetDetails_s3SnapshotAsset = Lens.lens (\AssetDetails' {s3SnapshotAsset} -> s3SnapshotAsset) (\s@AssetDetails' {} a -> s {s3SnapshotAsset = a} :: AssetDetails)++instance Data.FromJSON AssetDetails where+  parseJSON =+    Data.withObject+      "AssetDetails"+      ( \x ->+          AssetDetails'+            Prelude.<$> (x Data..:? "ApiGatewayApiAsset")+            Prelude.<*> (x Data..:? "LakeFormationDataPermissionAsset")+            Prelude.<*> (x Data..:? "RedshiftDataShareAsset")+            Prelude.<*> (x Data..:? "S3DataAccessAsset")+            Prelude.<*> (x Data..:? "S3SnapshotAsset")+      )++instance Prelude.Hashable AssetDetails where+  hashWithSalt _salt AssetDetails' {..} =+    _salt+      `Prelude.hashWithSalt` apiGatewayApiAsset+      `Prelude.hashWithSalt` lakeFormationDataPermissionAsset+      `Prelude.hashWithSalt` redshiftDataShareAsset+      `Prelude.hashWithSalt` s3DataAccessAsset+      `Prelude.hashWithSalt` s3SnapshotAsset++instance Prelude.NFData AssetDetails where+  rnf AssetDetails' {..} =+    Prelude.rnf apiGatewayApiAsset+      `Prelude.seq` Prelude.rnf lakeFormationDataPermissionAsset+      `Prelude.seq` Prelude.rnf redshiftDataShareAsset+      `Prelude.seq` Prelude.rnf s3DataAccessAsset+      `Prelude.seq` Prelude.rnf s3SnapshotAsset
+ gen/Amazonka/DataExchange/Types/AssetEntry.hs view
@@ -0,0 +1,245 @@+{-# 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.DataExchange.Types.AssetEntry+-- 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.DataExchange.Types.AssetEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.AssetDetails+import Amazonka.DataExchange.Types.AssetType+import qualified Amazonka.Prelude as Prelude++-- | An asset in AWS Data Exchange is a piece of data (Amazon S3 object) or a+-- means of fulfilling data (Amazon Redshift datashare or Amazon API+-- Gateway API, AWS Lake Formation data permission, or Amazon S3 data+-- access). The asset can be a structured data file, an image file, or some+-- other data file that can be stored as an Amazon S3 object, an Amazon API+-- Gateway API, or an Amazon Redshift datashare, an AWS Lake Formation data+-- permission, or an Amazon S3 data access. When you create an import job+-- for your files, API Gateway APIs, Amazon Redshift datashares, AWS Lake+-- Formation data permission, or Amazon S3 data access, you create an asset+-- in AWS Data Exchange.+--+-- /See:/ 'newAssetEntry' smart constructor.+data AssetEntry = AssetEntry'+  { -- | The asset ID of the owned asset corresponding to the entitled asset+    -- being viewed. This parameter is returned when an asset owner is viewing+    -- the entitled copy of its owned asset.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | The ARN for the asset.+    arn :: Prelude.Text,+    -- | Details about the asset.+    assetDetails :: AssetDetails,+    -- | The type of asset that is added to a data set.+    assetType :: AssetType,+    -- | The date and time that the asset was created, in ISO 8601 format.+    createdAt :: Data.ISO8601,+    -- | The unique identifier for the data set associated with this asset.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for the asset.+    id :: Prelude.Text,+    -- | The name of the asset. When importing from Amazon S3, the Amazon S3+    -- object key is used as the asset name. When exporting to Amazon S3, the+    -- asset name is used as default target Amazon S3 object key. When+    -- importing from Amazon API Gateway API, the API name is used as the asset+    -- name. When importing from Amazon Redshift, the datashare name is used as+    -- the asset name. When importing from AWS Lake Formation, the static+    -- values of \"Database(s) included in LF-tag policy\" or \"Table(s)+    -- included in LF-tag policy\" are used as the asset name.+    name :: Prelude.Text,+    -- | The unique identifier for the revision associated with this asset.+    revisionId :: Prelude.Text,+    -- | The date and time that the asset was last updated, in ISO 8601 format.+    updatedAt :: Data.ISO8601+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssetEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceId', 'assetEntry_sourceId' - The asset ID of the owned asset corresponding to the entitled asset+-- being viewed. This parameter is returned when an asset owner is viewing+-- the entitled copy of its owned asset.+--+-- 'arn', 'assetEntry_arn' - The ARN for the asset.+--+-- 'assetDetails', 'assetEntry_assetDetails' - Details about the asset.+--+-- 'assetType', 'assetEntry_assetType' - The type of asset that is added to a data set.+--+-- 'createdAt', 'assetEntry_createdAt' - The date and time that the asset was created, in ISO 8601 format.+--+-- 'dataSetId', 'assetEntry_dataSetId' - The unique identifier for the data set associated with this asset.+--+-- 'id', 'assetEntry_id' - The unique identifier for the asset.+--+-- 'name', 'assetEntry_name' - The name of the asset. When importing from Amazon S3, the Amazon S3+-- object key is used as the asset name. When exporting to Amazon S3, the+-- asset name is used as default target Amazon S3 object key. When+-- importing from Amazon API Gateway API, the API name is used as the asset+-- name. When importing from Amazon Redshift, the datashare name is used as+-- the asset name. When importing from AWS Lake Formation, the static+-- values of \"Database(s) included in LF-tag policy\" or \"Table(s)+-- included in LF-tag policy\" are used as the asset name.+--+-- 'revisionId', 'assetEntry_revisionId' - The unique identifier for the revision associated with this asset.+--+-- 'updatedAt', 'assetEntry_updatedAt' - The date and time that the asset was last updated, in ISO 8601 format.+newAssetEntry ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'assetDetails'+  AssetDetails ->+  -- | 'assetType'+  AssetType ->+  -- | 'createdAt'+  Prelude.UTCTime ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  -- | 'updatedAt'+  Prelude.UTCTime ->+  AssetEntry+newAssetEntry+  pArn_+  pAssetDetails_+  pAssetType_+  pCreatedAt_+  pDataSetId_+  pId_+  pName_+  pRevisionId_+  pUpdatedAt_ =+    AssetEntry'+      { sourceId = Prelude.Nothing,+        arn = pArn_,+        assetDetails = pAssetDetails_,+        assetType = pAssetType_,+        createdAt = Data._Time Lens.# pCreatedAt_,+        dataSetId = pDataSetId_,+        id = pId_,+        name = pName_,+        revisionId = pRevisionId_,+        updatedAt = Data._Time Lens.# pUpdatedAt_+      }++-- | The asset ID of the owned asset corresponding to the entitled asset+-- being viewed. This parameter is returned when an asset owner is viewing+-- the entitled copy of its owned asset.+assetEntry_sourceId :: Lens.Lens' AssetEntry (Prelude.Maybe Prelude.Text)+assetEntry_sourceId = Lens.lens (\AssetEntry' {sourceId} -> sourceId) (\s@AssetEntry' {} a -> s {sourceId = a} :: AssetEntry)++-- | The ARN for the asset.+assetEntry_arn :: Lens.Lens' AssetEntry Prelude.Text+assetEntry_arn = Lens.lens (\AssetEntry' {arn} -> arn) (\s@AssetEntry' {} a -> s {arn = a} :: AssetEntry)++-- | Details about the asset.+assetEntry_assetDetails :: Lens.Lens' AssetEntry AssetDetails+assetEntry_assetDetails = Lens.lens (\AssetEntry' {assetDetails} -> assetDetails) (\s@AssetEntry' {} a -> s {assetDetails = a} :: AssetEntry)++-- | The type of asset that is added to a data set.+assetEntry_assetType :: Lens.Lens' AssetEntry AssetType+assetEntry_assetType = Lens.lens (\AssetEntry' {assetType} -> assetType) (\s@AssetEntry' {} a -> s {assetType = a} :: AssetEntry)++-- | The date and time that the asset was created, in ISO 8601 format.+assetEntry_createdAt :: Lens.Lens' AssetEntry Prelude.UTCTime+assetEntry_createdAt = Lens.lens (\AssetEntry' {createdAt} -> createdAt) (\s@AssetEntry' {} a -> s {createdAt = a} :: AssetEntry) Prelude.. Data._Time++-- | The unique identifier for the data set associated with this asset.+assetEntry_dataSetId :: Lens.Lens' AssetEntry Prelude.Text+assetEntry_dataSetId = Lens.lens (\AssetEntry' {dataSetId} -> dataSetId) (\s@AssetEntry' {} a -> s {dataSetId = a} :: AssetEntry)++-- | The unique identifier for the asset.+assetEntry_id :: Lens.Lens' AssetEntry Prelude.Text+assetEntry_id = Lens.lens (\AssetEntry' {id} -> id) (\s@AssetEntry' {} a -> s {id = a} :: AssetEntry)++-- | The name of the asset. When importing from Amazon S3, the Amazon S3+-- object key is used as the asset name. When exporting to Amazon S3, the+-- asset name is used as default target Amazon S3 object key. When+-- importing from Amazon API Gateway API, the API name is used as the asset+-- name. When importing from Amazon Redshift, the datashare name is used as+-- the asset name. When importing from AWS Lake Formation, the static+-- values of \"Database(s) included in LF-tag policy\" or \"Table(s)+-- included in LF-tag policy\" are used as the asset name.+assetEntry_name :: Lens.Lens' AssetEntry Prelude.Text+assetEntry_name = Lens.lens (\AssetEntry' {name} -> name) (\s@AssetEntry' {} a -> s {name = a} :: AssetEntry)++-- | The unique identifier for the revision associated with this asset.+assetEntry_revisionId :: Lens.Lens' AssetEntry Prelude.Text+assetEntry_revisionId = Lens.lens (\AssetEntry' {revisionId} -> revisionId) (\s@AssetEntry' {} a -> s {revisionId = a} :: AssetEntry)++-- | The date and time that the asset was last updated, in ISO 8601 format.+assetEntry_updatedAt :: Lens.Lens' AssetEntry Prelude.UTCTime+assetEntry_updatedAt = Lens.lens (\AssetEntry' {updatedAt} -> updatedAt) (\s@AssetEntry' {} a -> s {updatedAt = a} :: AssetEntry) Prelude.. Data._Time++instance Data.FromJSON AssetEntry where+  parseJSON =+    Data.withObject+      "AssetEntry"+      ( \x ->+          AssetEntry'+            Prelude.<$> (x Data..:? "SourceId")+            Prelude.<*> (x Data..: "Arn")+            Prelude.<*> (x Data..: "AssetDetails")+            Prelude.<*> (x Data..: "AssetType")+            Prelude.<*> (x Data..: "CreatedAt")+            Prelude.<*> (x Data..: "DataSetId")+            Prelude.<*> (x Data..: "Id")+            Prelude.<*> (x Data..: "Name")+            Prelude.<*> (x Data..: "RevisionId")+            Prelude.<*> (x Data..: "UpdatedAt")+      )++instance Prelude.Hashable AssetEntry where+  hashWithSalt _salt AssetEntry' {..} =+    _salt+      `Prelude.hashWithSalt` sourceId+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` assetDetails+      `Prelude.hashWithSalt` assetType+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` dataSetId+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` revisionId+      `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData AssetEntry where+  rnf AssetEntry' {..} =+    Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf assetDetails+      `Prelude.seq` Prelude.rnf assetType+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/DataExchange/Types/AssetSourceEntry.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.AssetSourceEntry+-- 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.DataExchange.Types.AssetSourceEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The source of the assets.+--+-- /See:/ 'newAssetSourceEntry' smart constructor.+data AssetSourceEntry = AssetSourceEntry'+  { -- | The Amazon S3 bucket that\'s part of the source of the asset.+    bucket :: Prelude.Text,+    -- | The name of the object in Amazon S3 for the asset.+    key :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssetSourceEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucket', 'assetSourceEntry_bucket' - The Amazon S3 bucket that\'s part of the source of the asset.+--+-- 'key', 'assetSourceEntry_key' - The name of the object in Amazon S3 for the asset.+newAssetSourceEntry ::+  -- | 'bucket'+  Prelude.Text ->+  -- | 'key'+  Prelude.Text ->+  AssetSourceEntry+newAssetSourceEntry pBucket_ pKey_ =+  AssetSourceEntry' {bucket = pBucket_, key = pKey_}++-- | The Amazon S3 bucket that\'s part of the source of the asset.+assetSourceEntry_bucket :: Lens.Lens' AssetSourceEntry Prelude.Text+assetSourceEntry_bucket = Lens.lens (\AssetSourceEntry' {bucket} -> bucket) (\s@AssetSourceEntry' {} a -> s {bucket = a} :: AssetSourceEntry)++-- | The name of the object in Amazon S3 for the asset.+assetSourceEntry_key :: Lens.Lens' AssetSourceEntry Prelude.Text+assetSourceEntry_key = Lens.lens (\AssetSourceEntry' {key} -> key) (\s@AssetSourceEntry' {} a -> s {key = a} :: AssetSourceEntry)++instance Data.FromJSON AssetSourceEntry where+  parseJSON =+    Data.withObject+      "AssetSourceEntry"+      ( \x ->+          AssetSourceEntry'+            Prelude.<$> (x Data..: "Bucket")+            Prelude.<*> (x Data..: "Key")+      )++instance Prelude.Hashable AssetSourceEntry where+  hashWithSalt _salt AssetSourceEntry' {..} =+    _salt+      `Prelude.hashWithSalt` bucket+      `Prelude.hashWithSalt` key++instance Prelude.NFData AssetSourceEntry where+  rnf AssetSourceEntry' {..} =+    Prelude.rnf bucket `Prelude.seq` Prelude.rnf key++instance Data.ToJSON AssetSourceEntry where+  toJSON AssetSourceEntry' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Bucket" Data..= bucket),+            Prelude.Just ("Key" Data..= key)+          ]+      )
+ gen/Amazonka/DataExchange/Types/AssetType.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.DataExchange.Types.AssetType+-- 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.DataExchange.Types.AssetType+  ( AssetType+      ( ..,+        AssetType_API_GATEWAY_API,+        AssetType_LAKE_FORMATION_DATA_PERMISSION,+        AssetType_REDSHIFT_DATA_SHARE,+        AssetType_S3_DATA_ACCESS,+        AssetType_S3_SNAPSHOT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AssetType = AssetType'+  { fromAssetType ::+      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 AssetType_API_GATEWAY_API :: AssetType+pattern AssetType_API_GATEWAY_API = AssetType' "API_GATEWAY_API"++pattern AssetType_LAKE_FORMATION_DATA_PERMISSION :: AssetType+pattern AssetType_LAKE_FORMATION_DATA_PERMISSION = AssetType' "LAKE_FORMATION_DATA_PERMISSION"++pattern AssetType_REDSHIFT_DATA_SHARE :: AssetType+pattern AssetType_REDSHIFT_DATA_SHARE = AssetType' "REDSHIFT_DATA_SHARE"++pattern AssetType_S3_DATA_ACCESS :: AssetType+pattern AssetType_S3_DATA_ACCESS = AssetType' "S3_DATA_ACCESS"++pattern AssetType_S3_SNAPSHOT :: AssetType+pattern AssetType_S3_SNAPSHOT = AssetType' "S3_SNAPSHOT"++{-# COMPLETE+  AssetType_API_GATEWAY_API,+  AssetType_LAKE_FORMATION_DATA_PERMISSION,+  AssetType_REDSHIFT_DATA_SHARE,+  AssetType_S3_DATA_ACCESS,+  AssetType_S3_SNAPSHOT,+  AssetType'+  #-}
+ gen/Amazonka/DataExchange/Types/AutoExportRevisionDestinationEntry.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.AutoExportRevisionDestinationEntry+-- 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.DataExchange.Types.AutoExportRevisionDestinationEntry 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 revision destination is the Amazon S3 bucket folder destination to+-- where the export will be sent.+--+-- /See:/ 'newAutoExportRevisionDestinationEntry' smart constructor.+data AutoExportRevisionDestinationEntry = AutoExportRevisionDestinationEntry'+  { -- | A string representing the pattern for generated names of the individual+    -- assets in the revision. For more information about key patterns, see+    -- <https://docs.aws.amazon.com/data-exchange/latest/userguide/jobs.html#revision-export-keypatterns Key patterns when exporting revisions>.+    keyPattern :: Prelude.Maybe Prelude.Text,+    -- | The Amazon S3 bucket that is the destination for the event action.+    bucket :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoExportRevisionDestinationEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyPattern', 'autoExportRevisionDestinationEntry_keyPattern' - A string representing the pattern for generated names of the individual+-- assets in the revision. For more information about key patterns, see+-- <https://docs.aws.amazon.com/data-exchange/latest/userguide/jobs.html#revision-export-keypatterns Key patterns when exporting revisions>.+--+-- 'bucket', 'autoExportRevisionDestinationEntry_bucket' - The Amazon S3 bucket that is the destination for the event action.+newAutoExportRevisionDestinationEntry ::+  -- | 'bucket'+  Prelude.Text ->+  AutoExportRevisionDestinationEntry+newAutoExportRevisionDestinationEntry pBucket_ =+  AutoExportRevisionDestinationEntry'+    { keyPattern =+        Prelude.Nothing,+      bucket = pBucket_+    }++-- | A string representing the pattern for generated names of the individual+-- assets in the revision. For more information about key patterns, see+-- <https://docs.aws.amazon.com/data-exchange/latest/userguide/jobs.html#revision-export-keypatterns Key patterns when exporting revisions>.+autoExportRevisionDestinationEntry_keyPattern :: Lens.Lens' AutoExportRevisionDestinationEntry (Prelude.Maybe Prelude.Text)+autoExportRevisionDestinationEntry_keyPattern = Lens.lens (\AutoExportRevisionDestinationEntry' {keyPattern} -> keyPattern) (\s@AutoExportRevisionDestinationEntry' {} a -> s {keyPattern = a} :: AutoExportRevisionDestinationEntry)++-- | The Amazon S3 bucket that is the destination for the event action.+autoExportRevisionDestinationEntry_bucket :: Lens.Lens' AutoExportRevisionDestinationEntry Prelude.Text+autoExportRevisionDestinationEntry_bucket = Lens.lens (\AutoExportRevisionDestinationEntry' {bucket} -> bucket) (\s@AutoExportRevisionDestinationEntry' {} a -> s {bucket = a} :: AutoExportRevisionDestinationEntry)++instance+  Data.FromJSON+    AutoExportRevisionDestinationEntry+  where+  parseJSON =+    Data.withObject+      "AutoExportRevisionDestinationEntry"+      ( \x ->+          AutoExportRevisionDestinationEntry'+            Prelude.<$> (x Data..:? "KeyPattern")+            Prelude.<*> (x Data..: "Bucket")+      )++instance+  Prelude.Hashable+    AutoExportRevisionDestinationEntry+  where+  hashWithSalt+    _salt+    AutoExportRevisionDestinationEntry' {..} =+      _salt+        `Prelude.hashWithSalt` keyPattern+        `Prelude.hashWithSalt` bucket++instance+  Prelude.NFData+    AutoExportRevisionDestinationEntry+  where+  rnf AutoExportRevisionDestinationEntry' {..} =+    Prelude.rnf keyPattern+      `Prelude.seq` Prelude.rnf bucket++instance+  Data.ToJSON+    AutoExportRevisionDestinationEntry+  where+  toJSON AutoExportRevisionDestinationEntry' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("KeyPattern" Data..=) Prelude.<$> keyPattern,+            Prelude.Just ("Bucket" Data..= bucket)+          ]+      )
+ gen/Amazonka/DataExchange/Types/AutoExportRevisionToS3RequestDetails.hs view
@@ -0,0 +1,118 @@+{-# 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.DataExchange.Types.AutoExportRevisionToS3RequestDetails+-- 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.DataExchange.Types.AutoExportRevisionToS3RequestDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.AutoExportRevisionDestinationEntry+import Amazonka.DataExchange.Types.ExportServerSideEncryption+import qualified Amazonka.Prelude as Prelude++-- | Details of the operation to be performed by the job.+--+-- /See:/ 'newAutoExportRevisionToS3RequestDetails' smart constructor.+data AutoExportRevisionToS3RequestDetails = AutoExportRevisionToS3RequestDetails'+  { -- | Encryption configuration for the auto export job.+    encryption :: Prelude.Maybe ExportServerSideEncryption,+    -- | A revision destination is the Amazon S3 bucket folder destination to+    -- where the export will be sent.+    revisionDestination :: AutoExportRevisionDestinationEntry+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoExportRevisionToS3RequestDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'encryption', 'autoExportRevisionToS3RequestDetails_encryption' - Encryption configuration for the auto export job.+--+-- 'revisionDestination', 'autoExportRevisionToS3RequestDetails_revisionDestination' - A revision destination is the Amazon S3 bucket folder destination to+-- where the export will be sent.+newAutoExportRevisionToS3RequestDetails ::+  -- | 'revisionDestination'+  AutoExportRevisionDestinationEntry ->+  AutoExportRevisionToS3RequestDetails+newAutoExportRevisionToS3RequestDetails+  pRevisionDestination_ =+    AutoExportRevisionToS3RequestDetails'+      { encryption =+          Prelude.Nothing,+        revisionDestination =+          pRevisionDestination_+      }++-- | Encryption configuration for the auto export job.+autoExportRevisionToS3RequestDetails_encryption :: Lens.Lens' AutoExportRevisionToS3RequestDetails (Prelude.Maybe ExportServerSideEncryption)+autoExportRevisionToS3RequestDetails_encryption = Lens.lens (\AutoExportRevisionToS3RequestDetails' {encryption} -> encryption) (\s@AutoExportRevisionToS3RequestDetails' {} a -> s {encryption = a} :: AutoExportRevisionToS3RequestDetails)++-- | A revision destination is the Amazon S3 bucket folder destination to+-- where the export will be sent.+autoExportRevisionToS3RequestDetails_revisionDestination :: Lens.Lens' AutoExportRevisionToS3RequestDetails AutoExportRevisionDestinationEntry+autoExportRevisionToS3RequestDetails_revisionDestination = Lens.lens (\AutoExportRevisionToS3RequestDetails' {revisionDestination} -> revisionDestination) (\s@AutoExportRevisionToS3RequestDetails' {} a -> s {revisionDestination = a} :: AutoExportRevisionToS3RequestDetails)++instance+  Data.FromJSON+    AutoExportRevisionToS3RequestDetails+  where+  parseJSON =+    Data.withObject+      "AutoExportRevisionToS3RequestDetails"+      ( \x ->+          AutoExportRevisionToS3RequestDetails'+            Prelude.<$> (x Data..:? "Encryption")+            Prelude.<*> (x Data..: "RevisionDestination")+      )++instance+  Prelude.Hashable+    AutoExportRevisionToS3RequestDetails+  where+  hashWithSalt+    _salt+    AutoExportRevisionToS3RequestDetails' {..} =+      _salt+        `Prelude.hashWithSalt` encryption+        `Prelude.hashWithSalt` revisionDestination++instance+  Prelude.NFData+    AutoExportRevisionToS3RequestDetails+  where+  rnf AutoExportRevisionToS3RequestDetails' {..} =+    Prelude.rnf encryption+      `Prelude.seq` Prelude.rnf revisionDestination++instance+  Data.ToJSON+    AutoExportRevisionToS3RequestDetails+  where+  toJSON AutoExportRevisionToS3RequestDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Encryption" Data..=) Prelude.<$> encryption,+            Prelude.Just+              ("RevisionDestination" Data..= revisionDestination)+          ]+      )
+ gen/Amazonka/DataExchange/Types/Code.hs view
@@ -0,0 +1,93 @@+{-# 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.DataExchange.Types.Code+-- 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.DataExchange.Types.Code+  ( Code+      ( ..,+        Code_ACCESS_DENIED_EXCEPTION,+        Code_INTERNAL_SERVER_EXCEPTION,+        Code_MALWARE_DETECTED,+        Code_MALWARE_SCAN_ENCRYPTED_FILE,+        Code_RESOURCE_NOT_FOUND_EXCEPTION,+        Code_SERVICE_QUOTA_EXCEEDED_EXCEPTION,+        Code_VALIDATION_EXCEPTION+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Code = Code' {fromCode :: 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 Code_ACCESS_DENIED_EXCEPTION :: Code+pattern Code_ACCESS_DENIED_EXCEPTION = Code' "ACCESS_DENIED_EXCEPTION"++pattern Code_INTERNAL_SERVER_EXCEPTION :: Code+pattern Code_INTERNAL_SERVER_EXCEPTION = Code' "INTERNAL_SERVER_EXCEPTION"++pattern Code_MALWARE_DETECTED :: Code+pattern Code_MALWARE_DETECTED = Code' "MALWARE_DETECTED"++pattern Code_MALWARE_SCAN_ENCRYPTED_FILE :: Code+pattern Code_MALWARE_SCAN_ENCRYPTED_FILE = Code' "MALWARE_SCAN_ENCRYPTED_FILE"++pattern Code_RESOURCE_NOT_FOUND_EXCEPTION :: Code+pattern Code_RESOURCE_NOT_FOUND_EXCEPTION = Code' "RESOURCE_NOT_FOUND_EXCEPTION"++pattern Code_SERVICE_QUOTA_EXCEEDED_EXCEPTION :: Code+pattern Code_SERVICE_QUOTA_EXCEEDED_EXCEPTION = Code' "SERVICE_QUOTA_EXCEEDED_EXCEPTION"++pattern Code_VALIDATION_EXCEPTION :: Code+pattern Code_VALIDATION_EXCEPTION = Code' "VALIDATION_EXCEPTION"++{-# COMPLETE+  Code_ACCESS_DENIED_EXCEPTION,+  Code_INTERNAL_SERVER_EXCEPTION,+  Code_MALWARE_DETECTED,+  Code_MALWARE_SCAN_ENCRYPTED_FILE,+  Code_RESOURCE_NOT_FOUND_EXCEPTION,+  Code_SERVICE_QUOTA_EXCEEDED_EXCEPTION,+  Code_VALIDATION_EXCEPTION,+  Code'+  #-}
+ gen/Amazonka/DataExchange/Types/CreateS3DataAccessFromS3BucketRequestDetails.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.CreateS3DataAccessFromS3BucketRequestDetails+-- 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.DataExchange.Types.CreateS3DataAccessFromS3BucketRequestDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.S3DataAccessAssetSourceEntry+import qualified Amazonka.Prelude as Prelude++-- | Details of the operation to create an Amazon S3 data access from an S3+-- bucket.+--+-- /See:/ 'newCreateS3DataAccessFromS3BucketRequestDetails' smart constructor.+data CreateS3DataAccessFromS3BucketRequestDetails = CreateS3DataAccessFromS3BucketRequestDetails'+  { -- | Details about the S3 data access source asset.+    assetSource :: S3DataAccessAssetSourceEntry,+    -- | The unique identifier for the data set associated with the creation of+    -- this Amazon S3 data access.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for a revision.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateS3DataAccessFromS3BucketRequestDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assetSource', 'createS3DataAccessFromS3BucketRequestDetails_assetSource' - Details about the S3 data access source asset.+--+-- 'dataSetId', 'createS3DataAccessFromS3BucketRequestDetails_dataSetId' - The unique identifier for the data set associated with the creation of+-- this Amazon S3 data access.+--+-- 'revisionId', 'createS3DataAccessFromS3BucketRequestDetails_revisionId' - The unique identifier for a revision.+newCreateS3DataAccessFromS3BucketRequestDetails ::+  -- | 'assetSource'+  S3DataAccessAssetSourceEntry ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  CreateS3DataAccessFromS3BucketRequestDetails+newCreateS3DataAccessFromS3BucketRequestDetails+  pAssetSource_+  pDataSetId_+  pRevisionId_ =+    CreateS3DataAccessFromS3BucketRequestDetails'+      { assetSource =+          pAssetSource_,+        dataSetId = pDataSetId_,+        revisionId = pRevisionId_+      }++-- | Details about the S3 data access source asset.+createS3DataAccessFromS3BucketRequestDetails_assetSource :: Lens.Lens' CreateS3DataAccessFromS3BucketRequestDetails S3DataAccessAssetSourceEntry+createS3DataAccessFromS3BucketRequestDetails_assetSource = Lens.lens (\CreateS3DataAccessFromS3BucketRequestDetails' {assetSource} -> assetSource) (\s@CreateS3DataAccessFromS3BucketRequestDetails' {} a -> s {assetSource = a} :: CreateS3DataAccessFromS3BucketRequestDetails)++-- | The unique identifier for the data set associated with the creation of+-- this Amazon S3 data access.+createS3DataAccessFromS3BucketRequestDetails_dataSetId :: Lens.Lens' CreateS3DataAccessFromS3BucketRequestDetails Prelude.Text+createS3DataAccessFromS3BucketRequestDetails_dataSetId = Lens.lens (\CreateS3DataAccessFromS3BucketRequestDetails' {dataSetId} -> dataSetId) (\s@CreateS3DataAccessFromS3BucketRequestDetails' {} a -> s {dataSetId = a} :: CreateS3DataAccessFromS3BucketRequestDetails)++-- | The unique identifier for a revision.+createS3DataAccessFromS3BucketRequestDetails_revisionId :: Lens.Lens' CreateS3DataAccessFromS3BucketRequestDetails Prelude.Text+createS3DataAccessFromS3BucketRequestDetails_revisionId = Lens.lens (\CreateS3DataAccessFromS3BucketRequestDetails' {revisionId} -> revisionId) (\s@CreateS3DataAccessFromS3BucketRequestDetails' {} a -> s {revisionId = a} :: CreateS3DataAccessFromS3BucketRequestDetails)++instance+  Prelude.Hashable+    CreateS3DataAccessFromS3BucketRequestDetails+  where+  hashWithSalt+    _salt+    CreateS3DataAccessFromS3BucketRequestDetails' {..} =+      _salt+        `Prelude.hashWithSalt` assetSource+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` revisionId++instance+  Prelude.NFData+    CreateS3DataAccessFromS3BucketRequestDetails+  where+  rnf CreateS3DataAccessFromS3BucketRequestDetails' {..} =+    Prelude.rnf assetSource+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId++instance+  Data.ToJSON+    CreateS3DataAccessFromS3BucketRequestDetails+  where+  toJSON+    CreateS3DataAccessFromS3BucketRequestDetails' {..} =+      Data.object+        ( Prelude.catMaybes+            [ Prelude.Just ("AssetSource" Data..= assetSource),+              Prelude.Just ("DataSetId" Data..= dataSetId),+              Prelude.Just ("RevisionId" Data..= revisionId)+            ]+        )
+ gen/Amazonka/DataExchange/Types/CreateS3DataAccessFromS3BucketResponseDetails.hs view
@@ -0,0 +1,120 @@+{-# 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.DataExchange.Types.CreateS3DataAccessFromS3BucketResponseDetails+-- 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.DataExchange.Types.CreateS3DataAccessFromS3BucketResponseDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.S3DataAccessAssetSourceEntry+import qualified Amazonka.Prelude as Prelude++-- | Details about the response of the operation to create an S3 data access+-- from an S3 bucket.+--+-- /See:/ 'newCreateS3DataAccessFromS3BucketResponseDetails' smart constructor.+data CreateS3DataAccessFromS3BucketResponseDetails = CreateS3DataAccessFromS3BucketResponseDetails'+  { -- | Details about the asset source from an Amazon S3 bucket.+    assetSource :: S3DataAccessAssetSourceEntry,+    -- | The unique identifier for this data set.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for the revision.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateS3DataAccessFromS3BucketResponseDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assetSource', 'createS3DataAccessFromS3BucketResponseDetails_assetSource' - Details about the asset source from an Amazon S3 bucket.+--+-- 'dataSetId', 'createS3DataAccessFromS3BucketResponseDetails_dataSetId' - The unique identifier for this data set.+--+-- 'revisionId', 'createS3DataAccessFromS3BucketResponseDetails_revisionId' - The unique identifier for the revision.+newCreateS3DataAccessFromS3BucketResponseDetails ::+  -- | 'assetSource'+  S3DataAccessAssetSourceEntry ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  CreateS3DataAccessFromS3BucketResponseDetails+newCreateS3DataAccessFromS3BucketResponseDetails+  pAssetSource_+  pDataSetId_+  pRevisionId_ =+    CreateS3DataAccessFromS3BucketResponseDetails'+      { assetSource =+          pAssetSource_,+        dataSetId = pDataSetId_,+        revisionId = pRevisionId_+      }++-- | Details about the asset source from an Amazon S3 bucket.+createS3DataAccessFromS3BucketResponseDetails_assetSource :: Lens.Lens' CreateS3DataAccessFromS3BucketResponseDetails S3DataAccessAssetSourceEntry+createS3DataAccessFromS3BucketResponseDetails_assetSource = Lens.lens (\CreateS3DataAccessFromS3BucketResponseDetails' {assetSource} -> assetSource) (\s@CreateS3DataAccessFromS3BucketResponseDetails' {} a -> s {assetSource = a} :: CreateS3DataAccessFromS3BucketResponseDetails)++-- | The unique identifier for this data set.+createS3DataAccessFromS3BucketResponseDetails_dataSetId :: Lens.Lens' CreateS3DataAccessFromS3BucketResponseDetails Prelude.Text+createS3DataAccessFromS3BucketResponseDetails_dataSetId = Lens.lens (\CreateS3DataAccessFromS3BucketResponseDetails' {dataSetId} -> dataSetId) (\s@CreateS3DataAccessFromS3BucketResponseDetails' {} a -> s {dataSetId = a} :: CreateS3DataAccessFromS3BucketResponseDetails)++-- | The unique identifier for the revision.+createS3DataAccessFromS3BucketResponseDetails_revisionId :: Lens.Lens' CreateS3DataAccessFromS3BucketResponseDetails Prelude.Text+createS3DataAccessFromS3BucketResponseDetails_revisionId = Lens.lens (\CreateS3DataAccessFromS3BucketResponseDetails' {revisionId} -> revisionId) (\s@CreateS3DataAccessFromS3BucketResponseDetails' {} a -> s {revisionId = a} :: CreateS3DataAccessFromS3BucketResponseDetails)++instance+  Data.FromJSON+    CreateS3DataAccessFromS3BucketResponseDetails+  where+  parseJSON =+    Data.withObject+      "CreateS3DataAccessFromS3BucketResponseDetails"+      ( \x ->+          CreateS3DataAccessFromS3BucketResponseDetails'+            Prelude.<$> (x Data..: "AssetSource")+            Prelude.<*> (x Data..: "DataSetId")+            Prelude.<*> (x Data..: "RevisionId")+      )++instance+  Prelude.Hashable+    CreateS3DataAccessFromS3BucketResponseDetails+  where+  hashWithSalt+    _salt+    CreateS3DataAccessFromS3BucketResponseDetails' {..} =+      _salt+        `Prelude.hashWithSalt` assetSource+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` revisionId++instance+  Prelude.NFData+    CreateS3DataAccessFromS3BucketResponseDetails+  where+  rnf+    CreateS3DataAccessFromS3BucketResponseDetails' {..} =+      Prelude.rnf assetSource+        `Prelude.seq` Prelude.rnf dataSetId+        `Prelude.seq` Prelude.rnf revisionId
+ gen/Amazonka/DataExchange/Types/DataSetEntry.hs view
@@ -0,0 +1,222 @@+{-# 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.DataExchange.Types.DataSetEntry+-- 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.DataExchange.Types.DataSetEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.AssetType+import Amazonka.DataExchange.Types.Origin+import Amazonka.DataExchange.Types.OriginDetails+import qualified Amazonka.Prelude as Prelude++-- | A data set is an AWS resource with one or more revisions.+--+-- /See:/ 'newDataSetEntry' smart constructor.+data DataSetEntry = DataSetEntry'+  { -- | If the origin of this data set is ENTITLED, includes the details for the+    -- product on AWS Marketplace.+    originDetails :: Prelude.Maybe OriginDetails,+    -- | The data set ID of the owned data set corresponding to the entitled data+    -- set being viewed. This parameter is returned when a data set owner is+    -- viewing the entitled copy of its owned data set.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | The ARN for the data set.+    arn :: Prelude.Text,+    -- | The type of asset that is added to a data set.+    assetType :: AssetType,+    -- | The date and time that the data set was created, in ISO 8601 format.+    createdAt :: Data.ISO8601,+    -- | The description for the data set.+    description :: Prelude.Text,+    -- | The unique identifier for the data set.+    id :: Prelude.Text,+    -- | The name of the data set.+    name :: Prelude.Text,+    -- | A property that defines the data set as OWNED by the account (for+    -- providers) or ENTITLED to the account (for subscribers).+    origin :: Origin,+    -- | The date and time that the data set was last updated, in ISO 8601+    -- format.+    updatedAt :: Data.ISO8601+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataSetEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'originDetails', 'dataSetEntry_originDetails' - If the origin of this data set is ENTITLED, includes the details for the+-- product on AWS Marketplace.+--+-- 'sourceId', 'dataSetEntry_sourceId' - The data set ID of the owned data set corresponding to the entitled data+-- set being viewed. This parameter is returned when a data set owner is+-- viewing the entitled copy of its owned data set.+--+-- 'arn', 'dataSetEntry_arn' - The ARN for the data set.+--+-- 'assetType', 'dataSetEntry_assetType' - The type of asset that is added to a data set.+--+-- 'createdAt', 'dataSetEntry_createdAt' - The date and time that the data set was created, in ISO 8601 format.+--+-- 'description', 'dataSetEntry_description' - The description for the data set.+--+-- 'id', 'dataSetEntry_id' - The unique identifier for the data set.+--+-- 'name', 'dataSetEntry_name' - The name of the data set.+--+-- 'origin', 'dataSetEntry_origin' - A property that defines the data set as OWNED by the account (for+-- providers) or ENTITLED to the account (for subscribers).+--+-- 'updatedAt', 'dataSetEntry_updatedAt' - The date and time that the data set was last updated, in ISO 8601+-- format.+newDataSetEntry ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'assetType'+  AssetType ->+  -- | 'createdAt'+  Prelude.UTCTime ->+  -- | 'description'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  -- | 'origin'+  Origin ->+  -- | 'updatedAt'+  Prelude.UTCTime ->+  DataSetEntry+newDataSetEntry+  pArn_+  pAssetType_+  pCreatedAt_+  pDescription_+  pId_+  pName_+  pOrigin_+  pUpdatedAt_ =+    DataSetEntry'+      { originDetails = Prelude.Nothing,+        sourceId = Prelude.Nothing,+        arn = pArn_,+        assetType = pAssetType_,+        createdAt = Data._Time Lens.# pCreatedAt_,+        description = pDescription_,+        id = pId_,+        name = pName_,+        origin = pOrigin_,+        updatedAt = Data._Time Lens.# pUpdatedAt_+      }++-- | If the origin of this data set is ENTITLED, includes the details for the+-- product on AWS Marketplace.+dataSetEntry_originDetails :: Lens.Lens' DataSetEntry (Prelude.Maybe OriginDetails)+dataSetEntry_originDetails = Lens.lens (\DataSetEntry' {originDetails} -> originDetails) (\s@DataSetEntry' {} a -> s {originDetails = a} :: DataSetEntry)++-- | The data set ID of the owned data set corresponding to the entitled data+-- set being viewed. This parameter is returned when a data set owner is+-- viewing the entitled copy of its owned data set.+dataSetEntry_sourceId :: Lens.Lens' DataSetEntry (Prelude.Maybe Prelude.Text)+dataSetEntry_sourceId = Lens.lens (\DataSetEntry' {sourceId} -> sourceId) (\s@DataSetEntry' {} a -> s {sourceId = a} :: DataSetEntry)++-- | The ARN for the data set.+dataSetEntry_arn :: Lens.Lens' DataSetEntry Prelude.Text+dataSetEntry_arn = Lens.lens (\DataSetEntry' {arn} -> arn) (\s@DataSetEntry' {} a -> s {arn = a} :: DataSetEntry)++-- | The type of asset that is added to a data set.+dataSetEntry_assetType :: Lens.Lens' DataSetEntry AssetType+dataSetEntry_assetType = Lens.lens (\DataSetEntry' {assetType} -> assetType) (\s@DataSetEntry' {} a -> s {assetType = a} :: DataSetEntry)++-- | The date and time that the data set was created, in ISO 8601 format.+dataSetEntry_createdAt :: Lens.Lens' DataSetEntry Prelude.UTCTime+dataSetEntry_createdAt = Lens.lens (\DataSetEntry' {createdAt} -> createdAt) (\s@DataSetEntry' {} a -> s {createdAt = a} :: DataSetEntry) Prelude.. Data._Time++-- | The description for the data set.+dataSetEntry_description :: Lens.Lens' DataSetEntry Prelude.Text+dataSetEntry_description = Lens.lens (\DataSetEntry' {description} -> description) (\s@DataSetEntry' {} a -> s {description = a} :: DataSetEntry)++-- | The unique identifier for the data set.+dataSetEntry_id :: Lens.Lens' DataSetEntry Prelude.Text+dataSetEntry_id = Lens.lens (\DataSetEntry' {id} -> id) (\s@DataSetEntry' {} a -> s {id = a} :: DataSetEntry)++-- | The name of the data set.+dataSetEntry_name :: Lens.Lens' DataSetEntry Prelude.Text+dataSetEntry_name = Lens.lens (\DataSetEntry' {name} -> name) (\s@DataSetEntry' {} a -> s {name = a} :: DataSetEntry)++-- | A property that defines the data set as OWNED by the account (for+-- providers) or ENTITLED to the account (for subscribers).+dataSetEntry_origin :: Lens.Lens' DataSetEntry Origin+dataSetEntry_origin = Lens.lens (\DataSetEntry' {origin} -> origin) (\s@DataSetEntry' {} a -> s {origin = a} :: DataSetEntry)++-- | The date and time that the data set was last updated, in ISO 8601+-- format.+dataSetEntry_updatedAt :: Lens.Lens' DataSetEntry Prelude.UTCTime+dataSetEntry_updatedAt = Lens.lens (\DataSetEntry' {updatedAt} -> updatedAt) (\s@DataSetEntry' {} a -> s {updatedAt = a} :: DataSetEntry) Prelude.. Data._Time++instance Data.FromJSON DataSetEntry where+  parseJSON =+    Data.withObject+      "DataSetEntry"+      ( \x ->+          DataSetEntry'+            Prelude.<$> (x Data..:? "OriginDetails")+            Prelude.<*> (x Data..:? "SourceId")+            Prelude.<*> (x Data..: "Arn")+            Prelude.<*> (x Data..: "AssetType")+            Prelude.<*> (x Data..: "CreatedAt")+            Prelude.<*> (x Data..: "Description")+            Prelude.<*> (x Data..: "Id")+            Prelude.<*> (x Data..: "Name")+            Prelude.<*> (x Data..: "Origin")+            Prelude.<*> (x Data..: "UpdatedAt")+      )++instance Prelude.Hashable DataSetEntry where+  hashWithSalt _salt DataSetEntry' {..} =+    _salt+      `Prelude.hashWithSalt` originDetails+      `Prelude.hashWithSalt` sourceId+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` assetType+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` origin+      `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData DataSetEntry where+  rnf DataSetEntry' {..} =+    Prelude.rnf originDetails+      `Prelude.seq` Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf assetType+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf origin+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/DataExchange/Types/DatabaseLFTagPolicy.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.DatabaseLFTagPolicy+-- 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.DataExchange.Types.DatabaseLFTagPolicy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.LFTag+import qualified Amazonka.Prelude as Prelude++-- | The LF-tag policy for database resources.+--+-- /See:/ 'newDatabaseLFTagPolicy' smart constructor.+data DatabaseLFTagPolicy = DatabaseLFTagPolicy'+  { -- | A list of LF-tag conditions that apply to database resources.+    expression :: [LFTag]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatabaseLFTagPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'expression', 'databaseLFTagPolicy_expression' - A list of LF-tag conditions that apply to database resources.+newDatabaseLFTagPolicy ::+  DatabaseLFTagPolicy+newDatabaseLFTagPolicy =+  DatabaseLFTagPolicy' {expression = Prelude.mempty}++-- | A list of LF-tag conditions that apply to database resources.+databaseLFTagPolicy_expression :: Lens.Lens' DatabaseLFTagPolicy [LFTag]+databaseLFTagPolicy_expression = Lens.lens (\DatabaseLFTagPolicy' {expression} -> expression) (\s@DatabaseLFTagPolicy' {} a -> s {expression = a} :: DatabaseLFTagPolicy) Prelude.. Lens.coerced++instance Data.FromJSON DatabaseLFTagPolicy where+  parseJSON =+    Data.withObject+      "DatabaseLFTagPolicy"+      ( \x ->+          DatabaseLFTagPolicy'+            Prelude.<$> (x Data..:? "Expression" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable DatabaseLFTagPolicy where+  hashWithSalt _salt DatabaseLFTagPolicy' {..} =+    _salt `Prelude.hashWithSalt` expression++instance Prelude.NFData DatabaseLFTagPolicy where+  rnf DatabaseLFTagPolicy' {..} = Prelude.rnf expression
+ gen/Amazonka/DataExchange/Types/DatabaseLFTagPolicyAndPermissions.hs view
@@ -0,0 +1,110 @@+{-# 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.DataExchange.Types.DatabaseLFTagPolicyAndPermissions+-- 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.DataExchange.Types.DatabaseLFTagPolicyAndPermissions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.DatabaseLFTagPolicyPermission+import Amazonka.DataExchange.Types.LFTag+import qualified Amazonka.Prelude as Prelude++-- | The LF-tag policy and permissions for database resources.+--+-- /See:/ 'newDatabaseLFTagPolicyAndPermissions' smart constructor.+data DatabaseLFTagPolicyAndPermissions = DatabaseLFTagPolicyAndPermissions'+  { -- | A list of LF-tag conditions that apply to database resources.+    expression :: [LFTag],+    -- | The permissions granted to subscribers on database resources.+    permissions :: [DatabaseLFTagPolicyPermission]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatabaseLFTagPolicyAndPermissions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'expression', 'databaseLFTagPolicyAndPermissions_expression' - A list of LF-tag conditions that apply to database resources.+--+-- 'permissions', 'databaseLFTagPolicyAndPermissions_permissions' - The permissions granted to subscribers on database resources.+newDatabaseLFTagPolicyAndPermissions ::+  DatabaseLFTagPolicyAndPermissions+newDatabaseLFTagPolicyAndPermissions =+  DatabaseLFTagPolicyAndPermissions'+    { expression =+        Prelude.mempty,+      permissions = Prelude.mempty+    }++-- | A list of LF-tag conditions that apply to database resources.+databaseLFTagPolicyAndPermissions_expression :: Lens.Lens' DatabaseLFTagPolicyAndPermissions [LFTag]+databaseLFTagPolicyAndPermissions_expression = Lens.lens (\DatabaseLFTagPolicyAndPermissions' {expression} -> expression) (\s@DatabaseLFTagPolicyAndPermissions' {} a -> s {expression = a} :: DatabaseLFTagPolicyAndPermissions) Prelude.. Lens.coerced++-- | The permissions granted to subscribers on database resources.+databaseLFTagPolicyAndPermissions_permissions :: Lens.Lens' DatabaseLFTagPolicyAndPermissions [DatabaseLFTagPolicyPermission]+databaseLFTagPolicyAndPermissions_permissions = Lens.lens (\DatabaseLFTagPolicyAndPermissions' {permissions} -> permissions) (\s@DatabaseLFTagPolicyAndPermissions' {} a -> s {permissions = a} :: DatabaseLFTagPolicyAndPermissions) Prelude.. Lens.coerced++instance+  Data.FromJSON+    DatabaseLFTagPolicyAndPermissions+  where+  parseJSON =+    Data.withObject+      "DatabaseLFTagPolicyAndPermissions"+      ( \x ->+          DatabaseLFTagPolicyAndPermissions'+            Prelude.<$> (x Data..:? "Expression" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Permissions" Data..!= Prelude.mempty)+      )++instance+  Prelude.Hashable+    DatabaseLFTagPolicyAndPermissions+  where+  hashWithSalt+    _salt+    DatabaseLFTagPolicyAndPermissions' {..} =+      _salt+        `Prelude.hashWithSalt` expression+        `Prelude.hashWithSalt` permissions++instance+  Prelude.NFData+    DatabaseLFTagPolicyAndPermissions+  where+  rnf DatabaseLFTagPolicyAndPermissions' {..} =+    Prelude.rnf expression+      `Prelude.seq` Prelude.rnf permissions++instance+  Data.ToJSON+    DatabaseLFTagPolicyAndPermissions+  where+  toJSON DatabaseLFTagPolicyAndPermissions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Expression" Data..= expression),+            Prelude.Just ("Permissions" Data..= permissions)+          ]+      )
+ gen/Amazonka/DataExchange/Types/DatabaseLFTagPolicyPermission.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.DataExchange.Types.DatabaseLFTagPolicyPermission+-- 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.DataExchange.Types.DatabaseLFTagPolicyPermission+  ( DatabaseLFTagPolicyPermission+      ( ..,+        DatabaseLFTagPolicyPermission_DESCRIBE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DatabaseLFTagPolicyPermission = DatabaseLFTagPolicyPermission'+  { fromDatabaseLFTagPolicyPermission ::+      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 DatabaseLFTagPolicyPermission_DESCRIBE :: DatabaseLFTagPolicyPermission+pattern DatabaseLFTagPolicyPermission_DESCRIBE = DatabaseLFTagPolicyPermission' "DESCRIBE"++{-# COMPLETE+  DatabaseLFTagPolicyPermission_DESCRIBE,+  DatabaseLFTagPolicyPermission'+  #-}
+ gen/Amazonka/DataExchange/Types/Details.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.DataExchange.Types.Details+-- 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.DataExchange.Types.Details where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.AssetSourceEntry+import Amazonka.DataExchange.Types.ImportAssetFromSignedUrlJobErrorDetails+import qualified Amazonka.Prelude as Prelude++-- | Information about the job error.+--+-- /See:/ 'newDetails' smart constructor.+data Details = Details'+  { -- | Information about the job error.+    importAssetFromSignedUrlJobErrorDetails :: Prelude.Maybe ImportAssetFromSignedUrlJobErrorDetails,+    -- | Details about the job error.+    importAssetsFromS3JobErrorDetails :: Prelude.Maybe [AssetSourceEntry]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Details' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'importAssetFromSignedUrlJobErrorDetails', 'details_importAssetFromSignedUrlJobErrorDetails' - Information about the job error.+--+-- 'importAssetsFromS3JobErrorDetails', 'details_importAssetsFromS3JobErrorDetails' - Details about the job error.+newDetails ::+  Details+newDetails =+  Details'+    { importAssetFromSignedUrlJobErrorDetails =+        Prelude.Nothing,+      importAssetsFromS3JobErrorDetails = Prelude.Nothing+    }++-- | Information about the job error.+details_importAssetFromSignedUrlJobErrorDetails :: Lens.Lens' Details (Prelude.Maybe ImportAssetFromSignedUrlJobErrorDetails)+details_importAssetFromSignedUrlJobErrorDetails = Lens.lens (\Details' {importAssetFromSignedUrlJobErrorDetails} -> importAssetFromSignedUrlJobErrorDetails) (\s@Details' {} a -> s {importAssetFromSignedUrlJobErrorDetails = a} :: Details)++-- | Details about the job error.+details_importAssetsFromS3JobErrorDetails :: Lens.Lens' Details (Prelude.Maybe [AssetSourceEntry])+details_importAssetsFromS3JobErrorDetails = Lens.lens (\Details' {importAssetsFromS3JobErrorDetails} -> importAssetsFromS3JobErrorDetails) (\s@Details' {} a -> s {importAssetsFromS3JobErrorDetails = a} :: Details) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Details where+  parseJSON =+    Data.withObject+      "Details"+      ( \x ->+          Details'+            Prelude.<$> ( x+                            Data..:? "ImportAssetFromSignedUrlJobErrorDetails"+                        )+            Prelude.<*> ( x+                            Data..:? "ImportAssetsFromS3JobErrorDetails"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable Details where+  hashWithSalt _salt Details' {..} =+    _salt+      `Prelude.hashWithSalt` importAssetFromSignedUrlJobErrorDetails+      `Prelude.hashWithSalt` importAssetsFromS3JobErrorDetails++instance Prelude.NFData Details where+  rnf Details' {..} =+    Prelude.rnf importAssetFromSignedUrlJobErrorDetails+      `Prelude.seq` Prelude.rnf importAssetsFromS3JobErrorDetails
+ gen/Amazonka/DataExchange/Types/Event.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.DataExchange.Types.Event+-- 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.DataExchange.Types.Event where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.RevisionPublished+import qualified Amazonka.Prelude as Prelude++-- | What occurs to start an action.+--+-- /See:/ 'newEvent' smart constructor.+data Event = Event'+  { -- | What occurs to start the revision publish action.+    revisionPublished :: Prelude.Maybe RevisionPublished+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Event' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'revisionPublished', 'event_revisionPublished' - What occurs to start the revision publish action.+newEvent ::+  Event+newEvent =+  Event' {revisionPublished = Prelude.Nothing}++-- | What occurs to start the revision publish action.+event_revisionPublished :: Lens.Lens' Event (Prelude.Maybe RevisionPublished)+event_revisionPublished = Lens.lens (\Event' {revisionPublished} -> revisionPublished) (\s@Event' {} a -> s {revisionPublished = a} :: Event)++instance Data.FromJSON Event where+  parseJSON =+    Data.withObject+      "Event"+      ( \x ->+          Event' Prelude.<$> (x Data..:? "RevisionPublished")+      )++instance Prelude.Hashable Event where+  hashWithSalt _salt Event' {..} =+    _salt `Prelude.hashWithSalt` revisionPublished++instance Prelude.NFData Event where+  rnf Event' {..} = Prelude.rnf revisionPublished++instance Data.ToJSON Event where+  toJSON Event' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("RevisionPublished" Data..=)+              Prelude.<$> revisionPublished+          ]+      )
+ gen/Amazonka/DataExchange/Types/EventActionEntry.hs view
@@ -0,0 +1,157 @@+{-# 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.DataExchange.Types.EventActionEntry+-- 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.DataExchange.Types.EventActionEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.Action+import Amazonka.DataExchange.Types.Event+import qualified Amazonka.Prelude as Prelude++-- | An event action is an object that defines the relationship between a+-- specific event and an automated action that will be taken on behalf of+-- the customer.+--+-- /See:/ 'newEventActionEntry' smart constructor.+data EventActionEntry = EventActionEntry'+  { -- | What occurs after a certain event.+    action :: Action,+    -- | The Amazon Resource Name (ARN) for the event action.+    arn :: Prelude.Text,+    -- | The date and time that the event action was created, in ISO 8601 format.+    createdAt :: Data.ISO8601,+    -- | What occurs to start an action.+    event :: Event,+    -- | The unique identifier for the event action.+    id :: Prelude.Text,+    -- | The date and time that the event action was last updated, in ISO 8601+    -- format.+    updatedAt :: Data.ISO8601+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EventActionEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'action', 'eventActionEntry_action' - What occurs after a certain event.+--+-- 'arn', 'eventActionEntry_arn' - The Amazon Resource Name (ARN) for the event action.+--+-- 'createdAt', 'eventActionEntry_createdAt' - The date and time that the event action was created, in ISO 8601 format.+--+-- 'event', 'eventActionEntry_event' - What occurs to start an action.+--+-- 'id', 'eventActionEntry_id' - The unique identifier for the event action.+--+-- 'updatedAt', 'eventActionEntry_updatedAt' - The date and time that the event action was last updated, in ISO 8601+-- format.+newEventActionEntry ::+  -- | 'action'+  Action ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'createdAt'+  Prelude.UTCTime ->+  -- | 'event'+  Event ->+  -- | 'id'+  Prelude.Text ->+  -- | 'updatedAt'+  Prelude.UTCTime ->+  EventActionEntry+newEventActionEntry+  pAction_+  pArn_+  pCreatedAt_+  pEvent_+  pId_+  pUpdatedAt_ =+    EventActionEntry'+      { action = pAction_,+        arn = pArn_,+        createdAt = Data._Time Lens.# pCreatedAt_,+        event = pEvent_,+        id = pId_,+        updatedAt = Data._Time Lens.# pUpdatedAt_+      }++-- | What occurs after a certain event.+eventActionEntry_action :: Lens.Lens' EventActionEntry Action+eventActionEntry_action = Lens.lens (\EventActionEntry' {action} -> action) (\s@EventActionEntry' {} a -> s {action = a} :: EventActionEntry)++-- | The Amazon Resource Name (ARN) for the event action.+eventActionEntry_arn :: Lens.Lens' EventActionEntry Prelude.Text+eventActionEntry_arn = Lens.lens (\EventActionEntry' {arn} -> arn) (\s@EventActionEntry' {} a -> s {arn = a} :: EventActionEntry)++-- | The date and time that the event action was created, in ISO 8601 format.+eventActionEntry_createdAt :: Lens.Lens' EventActionEntry Prelude.UTCTime+eventActionEntry_createdAt = Lens.lens (\EventActionEntry' {createdAt} -> createdAt) (\s@EventActionEntry' {} a -> s {createdAt = a} :: EventActionEntry) Prelude.. Data._Time++-- | What occurs to start an action.+eventActionEntry_event :: Lens.Lens' EventActionEntry Event+eventActionEntry_event = Lens.lens (\EventActionEntry' {event} -> event) (\s@EventActionEntry' {} a -> s {event = a} :: EventActionEntry)++-- | The unique identifier for the event action.+eventActionEntry_id :: Lens.Lens' EventActionEntry Prelude.Text+eventActionEntry_id = Lens.lens (\EventActionEntry' {id} -> id) (\s@EventActionEntry' {} a -> s {id = a} :: EventActionEntry)++-- | The date and time that the event action was last updated, in ISO 8601+-- format.+eventActionEntry_updatedAt :: Lens.Lens' EventActionEntry Prelude.UTCTime+eventActionEntry_updatedAt = Lens.lens (\EventActionEntry' {updatedAt} -> updatedAt) (\s@EventActionEntry' {} a -> s {updatedAt = a} :: EventActionEntry) Prelude.. Data._Time++instance Data.FromJSON EventActionEntry where+  parseJSON =+    Data.withObject+      "EventActionEntry"+      ( \x ->+          EventActionEntry'+            Prelude.<$> (x Data..: "Action")+            Prelude.<*> (x Data..: "Arn")+            Prelude.<*> (x Data..: "CreatedAt")+            Prelude.<*> (x Data..: "Event")+            Prelude.<*> (x Data..: "Id")+            Prelude.<*> (x Data..: "UpdatedAt")+      )++instance Prelude.Hashable EventActionEntry where+  hashWithSalt _salt EventActionEntry' {..} =+    _salt+      `Prelude.hashWithSalt` action+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` event+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData EventActionEntry where+  rnf EventActionEntry' {..} =+    Prelude.rnf action+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf event+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/DataExchange/Types/ExportAssetToSignedUrlRequestDetails.hs view
@@ -0,0 +1,119 @@+{-# 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.DataExchange.Types.ExportAssetToSignedUrlRequestDetails+-- 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.DataExchange.Types.ExportAssetToSignedUrlRequestDetails 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++-- | Details of the operation to be performed by the job.+--+-- /See:/ 'newExportAssetToSignedUrlRequestDetails' smart constructor.+data ExportAssetToSignedUrlRequestDetails = ExportAssetToSignedUrlRequestDetails'+  { -- | The unique identifier for the asset that is exported to a signed URL.+    assetId :: Prelude.Text,+    -- | The unique identifier for the data set associated with this export job.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for the revision associated with this export+    -- request.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportAssetToSignedUrlRequestDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assetId', 'exportAssetToSignedUrlRequestDetails_assetId' - The unique identifier for the asset that is exported to a signed URL.+--+-- 'dataSetId', 'exportAssetToSignedUrlRequestDetails_dataSetId' - The unique identifier for the data set associated with this export job.+--+-- 'revisionId', 'exportAssetToSignedUrlRequestDetails_revisionId' - The unique identifier for the revision associated with this export+-- request.+newExportAssetToSignedUrlRequestDetails ::+  -- | 'assetId'+  Prelude.Text ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  ExportAssetToSignedUrlRequestDetails+newExportAssetToSignedUrlRequestDetails+  pAssetId_+  pDataSetId_+  pRevisionId_ =+    ExportAssetToSignedUrlRequestDetails'+      { assetId =+          pAssetId_,+        dataSetId = pDataSetId_,+        revisionId = pRevisionId_+      }++-- | The unique identifier for the asset that is exported to a signed URL.+exportAssetToSignedUrlRequestDetails_assetId :: Lens.Lens' ExportAssetToSignedUrlRequestDetails Prelude.Text+exportAssetToSignedUrlRequestDetails_assetId = Lens.lens (\ExportAssetToSignedUrlRequestDetails' {assetId} -> assetId) (\s@ExportAssetToSignedUrlRequestDetails' {} a -> s {assetId = a} :: ExportAssetToSignedUrlRequestDetails)++-- | The unique identifier for the data set associated with this export job.+exportAssetToSignedUrlRequestDetails_dataSetId :: Lens.Lens' ExportAssetToSignedUrlRequestDetails Prelude.Text+exportAssetToSignedUrlRequestDetails_dataSetId = Lens.lens (\ExportAssetToSignedUrlRequestDetails' {dataSetId} -> dataSetId) (\s@ExportAssetToSignedUrlRequestDetails' {} a -> s {dataSetId = a} :: ExportAssetToSignedUrlRequestDetails)++-- | The unique identifier for the revision associated with this export+-- request.+exportAssetToSignedUrlRequestDetails_revisionId :: Lens.Lens' ExportAssetToSignedUrlRequestDetails Prelude.Text+exportAssetToSignedUrlRequestDetails_revisionId = Lens.lens (\ExportAssetToSignedUrlRequestDetails' {revisionId} -> revisionId) (\s@ExportAssetToSignedUrlRequestDetails' {} a -> s {revisionId = a} :: ExportAssetToSignedUrlRequestDetails)++instance+  Prelude.Hashable+    ExportAssetToSignedUrlRequestDetails+  where+  hashWithSalt+    _salt+    ExportAssetToSignedUrlRequestDetails' {..} =+      _salt+        `Prelude.hashWithSalt` assetId+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` revisionId++instance+  Prelude.NFData+    ExportAssetToSignedUrlRequestDetails+  where+  rnf ExportAssetToSignedUrlRequestDetails' {..} =+    Prelude.rnf assetId+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId++instance+  Data.ToJSON+    ExportAssetToSignedUrlRequestDetails+  where+  toJSON ExportAssetToSignedUrlRequestDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("AssetId" Data..= assetId),+            Prelude.Just ("DataSetId" Data..= dataSetId),+            Prelude.Just ("RevisionId" Data..= revisionId)+          ]+      )
+ gen/Amazonka/DataExchange/Types/ExportAssetToSignedUrlResponseDetails.hs view
@@ -0,0 +1,144 @@+{-# 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.DataExchange.Types.ExportAssetToSignedUrlResponseDetails+-- 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.DataExchange.Types.ExportAssetToSignedUrlResponseDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The details of the export to signed URL response.+--+-- /See:/ 'newExportAssetToSignedUrlResponseDetails' smart constructor.+data ExportAssetToSignedUrlResponseDetails = ExportAssetToSignedUrlResponseDetails'+  { -- | The signed URL for the export request.+    signedUrl :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the signed URL expires, in ISO 8601 format.+    signedUrlExpiresAt :: Prelude.Maybe Data.ISO8601,+    -- | The unique identifier for the asset associated with this export job.+    assetId :: Prelude.Text,+    -- | The unique identifier for the data set associated with this export job.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for the revision associated with this export+    -- response.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportAssetToSignedUrlResponseDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'signedUrl', 'exportAssetToSignedUrlResponseDetails_signedUrl' - The signed URL for the export request.+--+-- 'signedUrlExpiresAt', 'exportAssetToSignedUrlResponseDetails_signedUrlExpiresAt' - The date and time that the signed URL expires, in ISO 8601 format.+--+-- 'assetId', 'exportAssetToSignedUrlResponseDetails_assetId' - The unique identifier for the asset associated with this export job.+--+-- 'dataSetId', 'exportAssetToSignedUrlResponseDetails_dataSetId' - The unique identifier for the data set associated with this export job.+--+-- 'revisionId', 'exportAssetToSignedUrlResponseDetails_revisionId' - The unique identifier for the revision associated with this export+-- response.+newExportAssetToSignedUrlResponseDetails ::+  -- | 'assetId'+  Prelude.Text ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  ExportAssetToSignedUrlResponseDetails+newExportAssetToSignedUrlResponseDetails+  pAssetId_+  pDataSetId_+  pRevisionId_ =+    ExportAssetToSignedUrlResponseDetails'+      { signedUrl =+          Prelude.Nothing,+        signedUrlExpiresAt = Prelude.Nothing,+        assetId = pAssetId_,+        dataSetId = pDataSetId_,+        revisionId = pRevisionId_+      }++-- | The signed URL for the export request.+exportAssetToSignedUrlResponseDetails_signedUrl :: Lens.Lens' ExportAssetToSignedUrlResponseDetails (Prelude.Maybe Prelude.Text)+exportAssetToSignedUrlResponseDetails_signedUrl = Lens.lens (\ExportAssetToSignedUrlResponseDetails' {signedUrl} -> signedUrl) (\s@ExportAssetToSignedUrlResponseDetails' {} a -> s {signedUrl = a} :: ExportAssetToSignedUrlResponseDetails)++-- | The date and time that the signed URL expires, in ISO 8601 format.+exportAssetToSignedUrlResponseDetails_signedUrlExpiresAt :: Lens.Lens' ExportAssetToSignedUrlResponseDetails (Prelude.Maybe Prelude.UTCTime)+exportAssetToSignedUrlResponseDetails_signedUrlExpiresAt = Lens.lens (\ExportAssetToSignedUrlResponseDetails' {signedUrlExpiresAt} -> signedUrlExpiresAt) (\s@ExportAssetToSignedUrlResponseDetails' {} a -> s {signedUrlExpiresAt = a} :: ExportAssetToSignedUrlResponseDetails) Prelude.. Lens.mapping Data._Time++-- | The unique identifier for the asset associated with this export job.+exportAssetToSignedUrlResponseDetails_assetId :: Lens.Lens' ExportAssetToSignedUrlResponseDetails Prelude.Text+exportAssetToSignedUrlResponseDetails_assetId = Lens.lens (\ExportAssetToSignedUrlResponseDetails' {assetId} -> assetId) (\s@ExportAssetToSignedUrlResponseDetails' {} a -> s {assetId = a} :: ExportAssetToSignedUrlResponseDetails)++-- | The unique identifier for the data set associated with this export job.+exportAssetToSignedUrlResponseDetails_dataSetId :: Lens.Lens' ExportAssetToSignedUrlResponseDetails Prelude.Text+exportAssetToSignedUrlResponseDetails_dataSetId = Lens.lens (\ExportAssetToSignedUrlResponseDetails' {dataSetId} -> dataSetId) (\s@ExportAssetToSignedUrlResponseDetails' {} a -> s {dataSetId = a} :: ExportAssetToSignedUrlResponseDetails)++-- | The unique identifier for the revision associated with this export+-- response.+exportAssetToSignedUrlResponseDetails_revisionId :: Lens.Lens' ExportAssetToSignedUrlResponseDetails Prelude.Text+exportAssetToSignedUrlResponseDetails_revisionId = Lens.lens (\ExportAssetToSignedUrlResponseDetails' {revisionId} -> revisionId) (\s@ExportAssetToSignedUrlResponseDetails' {} a -> s {revisionId = a} :: ExportAssetToSignedUrlResponseDetails)++instance+  Data.FromJSON+    ExportAssetToSignedUrlResponseDetails+  where+  parseJSON =+    Data.withObject+      "ExportAssetToSignedUrlResponseDetails"+      ( \x ->+          ExportAssetToSignedUrlResponseDetails'+            Prelude.<$> (x Data..:? "SignedUrl")+            Prelude.<*> (x Data..:? "SignedUrlExpiresAt")+            Prelude.<*> (x Data..: "AssetId")+            Prelude.<*> (x Data..: "DataSetId")+            Prelude.<*> (x Data..: "RevisionId")+      )++instance+  Prelude.Hashable+    ExportAssetToSignedUrlResponseDetails+  where+  hashWithSalt+    _salt+    ExportAssetToSignedUrlResponseDetails' {..} =+      _salt+        `Prelude.hashWithSalt` signedUrl+        `Prelude.hashWithSalt` signedUrlExpiresAt+        `Prelude.hashWithSalt` assetId+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` revisionId++instance+  Prelude.NFData+    ExportAssetToSignedUrlResponseDetails+  where+  rnf ExportAssetToSignedUrlResponseDetails' {..} =+    Prelude.rnf signedUrl+      `Prelude.seq` Prelude.rnf signedUrlExpiresAt+      `Prelude.seq` Prelude.rnf assetId+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId
+ gen/Amazonka/DataExchange/Types/ExportAssetsToS3RequestDetails.hs view
@@ -0,0 +1,128 @@+{-# 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.DataExchange.Types.ExportAssetsToS3RequestDetails+-- 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.DataExchange.Types.ExportAssetsToS3RequestDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.AssetDestinationEntry+import Amazonka.DataExchange.Types.ExportServerSideEncryption+import qualified Amazonka.Prelude as Prelude++-- | Details of the operation to be performed by the job.+--+-- /See:/ 'newExportAssetsToS3RequestDetails' smart constructor.+data ExportAssetsToS3RequestDetails = ExportAssetsToS3RequestDetails'+  { -- | Encryption configuration for the export job.+    encryption :: Prelude.Maybe ExportServerSideEncryption,+    -- | The destination for the asset.+    assetDestinations :: [AssetDestinationEntry],+    -- | The unique identifier for the data set associated with this export job.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for the revision associated with this export+    -- request.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportAssetsToS3RequestDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'encryption', 'exportAssetsToS3RequestDetails_encryption' - Encryption configuration for the export job.+--+-- 'assetDestinations', 'exportAssetsToS3RequestDetails_assetDestinations' - The destination for the asset.+--+-- 'dataSetId', 'exportAssetsToS3RequestDetails_dataSetId' - The unique identifier for the data set associated with this export job.+--+-- 'revisionId', 'exportAssetsToS3RequestDetails_revisionId' - The unique identifier for the revision associated with this export+-- request.+newExportAssetsToS3RequestDetails ::+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  ExportAssetsToS3RequestDetails+newExportAssetsToS3RequestDetails+  pDataSetId_+  pRevisionId_ =+    ExportAssetsToS3RequestDetails'+      { encryption =+          Prelude.Nothing,+        assetDestinations = Prelude.mempty,+        dataSetId = pDataSetId_,+        revisionId = pRevisionId_+      }++-- | Encryption configuration for the export job.+exportAssetsToS3RequestDetails_encryption :: Lens.Lens' ExportAssetsToS3RequestDetails (Prelude.Maybe ExportServerSideEncryption)+exportAssetsToS3RequestDetails_encryption = Lens.lens (\ExportAssetsToS3RequestDetails' {encryption} -> encryption) (\s@ExportAssetsToS3RequestDetails' {} a -> s {encryption = a} :: ExportAssetsToS3RequestDetails)++-- | The destination for the asset.+exportAssetsToS3RequestDetails_assetDestinations :: Lens.Lens' ExportAssetsToS3RequestDetails [AssetDestinationEntry]+exportAssetsToS3RequestDetails_assetDestinations = Lens.lens (\ExportAssetsToS3RequestDetails' {assetDestinations} -> assetDestinations) (\s@ExportAssetsToS3RequestDetails' {} a -> s {assetDestinations = a} :: ExportAssetsToS3RequestDetails) Prelude.. Lens.coerced++-- | The unique identifier for the data set associated with this export job.+exportAssetsToS3RequestDetails_dataSetId :: Lens.Lens' ExportAssetsToS3RequestDetails Prelude.Text+exportAssetsToS3RequestDetails_dataSetId = Lens.lens (\ExportAssetsToS3RequestDetails' {dataSetId} -> dataSetId) (\s@ExportAssetsToS3RequestDetails' {} a -> s {dataSetId = a} :: ExportAssetsToS3RequestDetails)++-- | The unique identifier for the revision associated with this export+-- request.+exportAssetsToS3RequestDetails_revisionId :: Lens.Lens' ExportAssetsToS3RequestDetails Prelude.Text+exportAssetsToS3RequestDetails_revisionId = Lens.lens (\ExportAssetsToS3RequestDetails' {revisionId} -> revisionId) (\s@ExportAssetsToS3RequestDetails' {} a -> s {revisionId = a} :: ExportAssetsToS3RequestDetails)++instance+  Prelude.Hashable+    ExportAssetsToS3RequestDetails+  where+  hashWithSalt+    _salt+    ExportAssetsToS3RequestDetails' {..} =+      _salt+        `Prelude.hashWithSalt` encryption+        `Prelude.hashWithSalt` assetDestinations+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` revisionId++instance+  Prelude.NFData+    ExportAssetsToS3RequestDetails+  where+  rnf ExportAssetsToS3RequestDetails' {..} =+    Prelude.rnf encryption+      `Prelude.seq` Prelude.rnf assetDestinations+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId++instance Data.ToJSON ExportAssetsToS3RequestDetails where+  toJSON ExportAssetsToS3RequestDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Encryption" Data..=) Prelude.<$> encryption,+            Prelude.Just+              ("AssetDestinations" Data..= assetDestinations),+            Prelude.Just ("DataSetId" Data..= dataSetId),+            Prelude.Just ("RevisionId" Data..= revisionId)+          ]+      )
+ gen/Amazonka/DataExchange/Types/ExportAssetsToS3ResponseDetails.hs view
@@ -0,0 +1,134 @@+{-# 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.DataExchange.Types.ExportAssetsToS3ResponseDetails+-- 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.DataExchange.Types.ExportAssetsToS3ResponseDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.AssetDestinationEntry+import Amazonka.DataExchange.Types.ExportServerSideEncryption+import qualified Amazonka.Prelude as Prelude++-- | Details about the export to Amazon S3 response.+--+-- /See:/ 'newExportAssetsToS3ResponseDetails' smart constructor.+data ExportAssetsToS3ResponseDetails = ExportAssetsToS3ResponseDetails'+  { -- | Encryption configuration of the export job.+    encryption :: Prelude.Maybe ExportServerSideEncryption,+    -- | The destination in Amazon S3 where the asset is exported.+    assetDestinations :: [AssetDestinationEntry],+    -- | The unique identifier for the data set associated with this export job.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for the revision associated with this export+    -- response.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportAssetsToS3ResponseDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'encryption', 'exportAssetsToS3ResponseDetails_encryption' - Encryption configuration of the export job.+--+-- 'assetDestinations', 'exportAssetsToS3ResponseDetails_assetDestinations' - The destination in Amazon S3 where the asset is exported.+--+-- 'dataSetId', 'exportAssetsToS3ResponseDetails_dataSetId' - The unique identifier for the data set associated with this export job.+--+-- 'revisionId', 'exportAssetsToS3ResponseDetails_revisionId' - The unique identifier for the revision associated with this export+-- response.+newExportAssetsToS3ResponseDetails ::+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  ExportAssetsToS3ResponseDetails+newExportAssetsToS3ResponseDetails+  pDataSetId_+  pRevisionId_ =+    ExportAssetsToS3ResponseDetails'+      { encryption =+          Prelude.Nothing,+        assetDestinations = Prelude.mempty,+        dataSetId = pDataSetId_,+        revisionId = pRevisionId_+      }++-- | Encryption configuration of the export job.+exportAssetsToS3ResponseDetails_encryption :: Lens.Lens' ExportAssetsToS3ResponseDetails (Prelude.Maybe ExportServerSideEncryption)+exportAssetsToS3ResponseDetails_encryption = Lens.lens (\ExportAssetsToS3ResponseDetails' {encryption} -> encryption) (\s@ExportAssetsToS3ResponseDetails' {} a -> s {encryption = a} :: ExportAssetsToS3ResponseDetails)++-- | The destination in Amazon S3 where the asset is exported.+exportAssetsToS3ResponseDetails_assetDestinations :: Lens.Lens' ExportAssetsToS3ResponseDetails [AssetDestinationEntry]+exportAssetsToS3ResponseDetails_assetDestinations = Lens.lens (\ExportAssetsToS3ResponseDetails' {assetDestinations} -> assetDestinations) (\s@ExportAssetsToS3ResponseDetails' {} a -> s {assetDestinations = a} :: ExportAssetsToS3ResponseDetails) Prelude.. Lens.coerced++-- | The unique identifier for the data set associated with this export job.+exportAssetsToS3ResponseDetails_dataSetId :: Lens.Lens' ExportAssetsToS3ResponseDetails Prelude.Text+exportAssetsToS3ResponseDetails_dataSetId = Lens.lens (\ExportAssetsToS3ResponseDetails' {dataSetId} -> dataSetId) (\s@ExportAssetsToS3ResponseDetails' {} a -> s {dataSetId = a} :: ExportAssetsToS3ResponseDetails)++-- | The unique identifier for the revision associated with this export+-- response.+exportAssetsToS3ResponseDetails_revisionId :: Lens.Lens' ExportAssetsToS3ResponseDetails Prelude.Text+exportAssetsToS3ResponseDetails_revisionId = Lens.lens (\ExportAssetsToS3ResponseDetails' {revisionId} -> revisionId) (\s@ExportAssetsToS3ResponseDetails' {} a -> s {revisionId = a} :: ExportAssetsToS3ResponseDetails)++instance+  Data.FromJSON+    ExportAssetsToS3ResponseDetails+  where+  parseJSON =+    Data.withObject+      "ExportAssetsToS3ResponseDetails"+      ( \x ->+          ExportAssetsToS3ResponseDetails'+            Prelude.<$> (x Data..:? "Encryption")+            Prelude.<*> ( x+                            Data..:? "AssetDestinations"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "DataSetId")+            Prelude.<*> (x Data..: "RevisionId")+      )++instance+  Prelude.Hashable+    ExportAssetsToS3ResponseDetails+  where+  hashWithSalt+    _salt+    ExportAssetsToS3ResponseDetails' {..} =+      _salt+        `Prelude.hashWithSalt` encryption+        `Prelude.hashWithSalt` assetDestinations+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` revisionId++instance+  Prelude.NFData+    ExportAssetsToS3ResponseDetails+  where+  rnf ExportAssetsToS3ResponseDetails' {..} =+    Prelude.rnf encryption+      `Prelude.seq` Prelude.rnf assetDestinations+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId
+ gen/Amazonka/DataExchange/Types/ExportRevisionsToS3RequestDetails.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.ExportRevisionsToS3RequestDetails+-- 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.DataExchange.Types.ExportRevisionsToS3RequestDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.ExportServerSideEncryption+import Amazonka.DataExchange.Types.RevisionDestinationEntry+import qualified Amazonka.Prelude as Prelude++-- | Details of the operation to be performed by the job.+--+-- /See:/ 'newExportRevisionsToS3RequestDetails' smart constructor.+data ExportRevisionsToS3RequestDetails = ExportRevisionsToS3RequestDetails'+  { -- | Encryption configuration for the export job.+    encryption :: Prelude.Maybe ExportServerSideEncryption,+    -- | The unique identifier for the data set associated with this export job.+    dataSetId :: Prelude.Text,+    -- | The destination for the revision.+    revisionDestinations :: [RevisionDestinationEntry]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportRevisionsToS3RequestDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'encryption', 'exportRevisionsToS3RequestDetails_encryption' - Encryption configuration for the export job.+--+-- 'dataSetId', 'exportRevisionsToS3RequestDetails_dataSetId' - The unique identifier for the data set associated with this export job.+--+-- 'revisionDestinations', 'exportRevisionsToS3RequestDetails_revisionDestinations' - The destination for the revision.+newExportRevisionsToS3RequestDetails ::+  -- | 'dataSetId'+  Prelude.Text ->+  ExportRevisionsToS3RequestDetails+newExportRevisionsToS3RequestDetails pDataSetId_ =+  ExportRevisionsToS3RequestDetails'+    { encryption =+        Prelude.Nothing,+      dataSetId = pDataSetId_,+      revisionDestinations = Prelude.mempty+    }++-- | Encryption configuration for the export job.+exportRevisionsToS3RequestDetails_encryption :: Lens.Lens' ExportRevisionsToS3RequestDetails (Prelude.Maybe ExportServerSideEncryption)+exportRevisionsToS3RequestDetails_encryption = Lens.lens (\ExportRevisionsToS3RequestDetails' {encryption} -> encryption) (\s@ExportRevisionsToS3RequestDetails' {} a -> s {encryption = a} :: ExportRevisionsToS3RequestDetails)++-- | The unique identifier for the data set associated with this export job.+exportRevisionsToS3RequestDetails_dataSetId :: Lens.Lens' ExportRevisionsToS3RequestDetails Prelude.Text+exportRevisionsToS3RequestDetails_dataSetId = Lens.lens (\ExportRevisionsToS3RequestDetails' {dataSetId} -> dataSetId) (\s@ExportRevisionsToS3RequestDetails' {} a -> s {dataSetId = a} :: ExportRevisionsToS3RequestDetails)++-- | The destination for the revision.+exportRevisionsToS3RequestDetails_revisionDestinations :: Lens.Lens' ExportRevisionsToS3RequestDetails [RevisionDestinationEntry]+exportRevisionsToS3RequestDetails_revisionDestinations = Lens.lens (\ExportRevisionsToS3RequestDetails' {revisionDestinations} -> revisionDestinations) (\s@ExportRevisionsToS3RequestDetails' {} a -> s {revisionDestinations = a} :: ExportRevisionsToS3RequestDetails) Prelude.. Lens.coerced++instance+  Prelude.Hashable+    ExportRevisionsToS3RequestDetails+  where+  hashWithSalt+    _salt+    ExportRevisionsToS3RequestDetails' {..} =+      _salt+        `Prelude.hashWithSalt` encryption+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` revisionDestinations++instance+  Prelude.NFData+    ExportRevisionsToS3RequestDetails+  where+  rnf ExportRevisionsToS3RequestDetails' {..} =+    Prelude.rnf encryption+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionDestinations++instance+  Data.ToJSON+    ExportRevisionsToS3RequestDetails+  where+  toJSON ExportRevisionsToS3RequestDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Encryption" Data..=) Prelude.<$> encryption,+            Prelude.Just ("DataSetId" Data..= dataSetId),+            Prelude.Just+              ( "RevisionDestinations"+                  Data..= revisionDestinations+              )+          ]+      )
+ gen/Amazonka/DataExchange/Types/ExportRevisionsToS3ResponseDetails.hs view
@@ -0,0 +1,127 @@+{-# 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.DataExchange.Types.ExportRevisionsToS3ResponseDetails+-- 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.DataExchange.Types.ExportRevisionsToS3ResponseDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.ExportServerSideEncryption+import Amazonka.DataExchange.Types.RevisionDestinationEntry+import qualified Amazonka.Prelude as Prelude++-- | Details about the export revisions to Amazon S3 response.+--+-- /See:/ 'newExportRevisionsToS3ResponseDetails' smart constructor.+data ExportRevisionsToS3ResponseDetails = ExportRevisionsToS3ResponseDetails'+  { -- | Encryption configuration of the export job.+    encryption :: Prelude.Maybe ExportServerSideEncryption,+    -- | The Amazon Resource Name (ARN) of the event action.+    eventActionArn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the data set associated with this export job.+    dataSetId :: Prelude.Text,+    -- | The destination in Amazon S3 where the revision is exported.+    revisionDestinations :: [RevisionDestinationEntry]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportRevisionsToS3ResponseDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'encryption', 'exportRevisionsToS3ResponseDetails_encryption' - Encryption configuration of the export job.+--+-- 'eventActionArn', 'exportRevisionsToS3ResponseDetails_eventActionArn' - The Amazon Resource Name (ARN) of the event action.+--+-- 'dataSetId', 'exportRevisionsToS3ResponseDetails_dataSetId' - The unique identifier for the data set associated with this export job.+--+-- 'revisionDestinations', 'exportRevisionsToS3ResponseDetails_revisionDestinations' - The destination in Amazon S3 where the revision is exported.+newExportRevisionsToS3ResponseDetails ::+  -- | 'dataSetId'+  Prelude.Text ->+  ExportRevisionsToS3ResponseDetails+newExportRevisionsToS3ResponseDetails pDataSetId_ =+  ExportRevisionsToS3ResponseDetails'+    { encryption =+        Prelude.Nothing,+      eventActionArn = Prelude.Nothing,+      dataSetId = pDataSetId_,+      revisionDestinations = Prelude.mempty+    }++-- | Encryption configuration of the export job.+exportRevisionsToS3ResponseDetails_encryption :: Lens.Lens' ExportRevisionsToS3ResponseDetails (Prelude.Maybe ExportServerSideEncryption)+exportRevisionsToS3ResponseDetails_encryption = Lens.lens (\ExportRevisionsToS3ResponseDetails' {encryption} -> encryption) (\s@ExportRevisionsToS3ResponseDetails' {} a -> s {encryption = a} :: ExportRevisionsToS3ResponseDetails)++-- | The Amazon Resource Name (ARN) of the event action.+exportRevisionsToS3ResponseDetails_eventActionArn :: Lens.Lens' ExportRevisionsToS3ResponseDetails (Prelude.Maybe Prelude.Text)+exportRevisionsToS3ResponseDetails_eventActionArn = Lens.lens (\ExportRevisionsToS3ResponseDetails' {eventActionArn} -> eventActionArn) (\s@ExportRevisionsToS3ResponseDetails' {} a -> s {eventActionArn = a} :: ExportRevisionsToS3ResponseDetails)++-- | The unique identifier for the data set associated with this export job.+exportRevisionsToS3ResponseDetails_dataSetId :: Lens.Lens' ExportRevisionsToS3ResponseDetails Prelude.Text+exportRevisionsToS3ResponseDetails_dataSetId = Lens.lens (\ExportRevisionsToS3ResponseDetails' {dataSetId} -> dataSetId) (\s@ExportRevisionsToS3ResponseDetails' {} a -> s {dataSetId = a} :: ExportRevisionsToS3ResponseDetails)++-- | The destination in Amazon S3 where the revision is exported.+exportRevisionsToS3ResponseDetails_revisionDestinations :: Lens.Lens' ExportRevisionsToS3ResponseDetails [RevisionDestinationEntry]+exportRevisionsToS3ResponseDetails_revisionDestinations = Lens.lens (\ExportRevisionsToS3ResponseDetails' {revisionDestinations} -> revisionDestinations) (\s@ExportRevisionsToS3ResponseDetails' {} a -> s {revisionDestinations = a} :: ExportRevisionsToS3ResponseDetails) Prelude.. Lens.coerced++instance+  Data.FromJSON+    ExportRevisionsToS3ResponseDetails+  where+  parseJSON =+    Data.withObject+      "ExportRevisionsToS3ResponseDetails"+      ( \x ->+          ExportRevisionsToS3ResponseDetails'+            Prelude.<$> (x Data..:? "Encryption")+            Prelude.<*> (x Data..:? "EventActionArn")+            Prelude.<*> (x Data..: "DataSetId")+            Prelude.<*> ( x+                            Data..:? "RevisionDestinations"+                            Data..!= Prelude.mempty+                        )+      )++instance+  Prelude.Hashable+    ExportRevisionsToS3ResponseDetails+  where+  hashWithSalt+    _salt+    ExportRevisionsToS3ResponseDetails' {..} =+      _salt+        `Prelude.hashWithSalt` encryption+        `Prelude.hashWithSalt` eventActionArn+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` revisionDestinations++instance+  Prelude.NFData+    ExportRevisionsToS3ResponseDetails+  where+  rnf ExportRevisionsToS3ResponseDetails' {..} =+    Prelude.rnf encryption+      `Prelude.seq` Prelude.rnf eventActionArn+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionDestinations
+ gen/Amazonka/DataExchange/Types/ExportServerSideEncryption.hs view
@@ -0,0 +1,108 @@+{-# 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.DataExchange.Types.ExportServerSideEncryption+-- 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.DataExchange.Types.ExportServerSideEncryption where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.ServerSideEncryptionTypes+import qualified Amazonka.Prelude as Prelude++-- | Encryption configuration of the export job. Includes the encryption type+-- in addition to the AWS KMS key. The KMS key is only necessary if you+-- chose the KMS encryption type.+--+-- /See:/ 'newExportServerSideEncryption' smart constructor.+data ExportServerSideEncryption = ExportServerSideEncryption'+  { -- | The Amazon Resource Name (ARN) of the AWS KMS key you want to use to+    -- encrypt the Amazon S3 objects. This parameter is required if you choose+    -- aws:kms as an encryption type.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The type of server side encryption used for encrypting the objects in+    -- Amazon S3.+    type' :: ServerSideEncryptionTypes+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportServerSideEncryption' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'kmsKeyArn', 'exportServerSideEncryption_kmsKeyArn' - The Amazon Resource Name (ARN) of the AWS KMS key you want to use to+-- encrypt the Amazon S3 objects. This parameter is required if you choose+-- aws:kms as an encryption type.+--+-- 'type'', 'exportServerSideEncryption_type' - The type of server side encryption used for encrypting the objects in+-- Amazon S3.+newExportServerSideEncryption ::+  -- | 'type''+  ServerSideEncryptionTypes ->+  ExportServerSideEncryption+newExportServerSideEncryption pType_ =+  ExportServerSideEncryption'+    { kmsKeyArn =+        Prelude.Nothing,+      type' = pType_+    }++-- | The Amazon Resource Name (ARN) of the AWS KMS key you want to use to+-- encrypt the Amazon S3 objects. This parameter is required if you choose+-- aws:kms as an encryption type.+exportServerSideEncryption_kmsKeyArn :: Lens.Lens' ExportServerSideEncryption (Prelude.Maybe Prelude.Text)+exportServerSideEncryption_kmsKeyArn = Lens.lens (\ExportServerSideEncryption' {kmsKeyArn} -> kmsKeyArn) (\s@ExportServerSideEncryption' {} a -> s {kmsKeyArn = a} :: ExportServerSideEncryption)++-- | The type of server side encryption used for encrypting the objects in+-- Amazon S3.+exportServerSideEncryption_type :: Lens.Lens' ExportServerSideEncryption ServerSideEncryptionTypes+exportServerSideEncryption_type = Lens.lens (\ExportServerSideEncryption' {type'} -> type') (\s@ExportServerSideEncryption' {} a -> s {type' = a} :: ExportServerSideEncryption)++instance Data.FromJSON ExportServerSideEncryption where+  parseJSON =+    Data.withObject+      "ExportServerSideEncryption"+      ( \x ->+          ExportServerSideEncryption'+            Prelude.<$> (x Data..:? "KmsKeyArn")+            Prelude.<*> (x Data..: "Type")+      )++instance Prelude.Hashable ExportServerSideEncryption where+  hashWithSalt _salt ExportServerSideEncryption' {..} =+    _salt+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` type'++instance Prelude.NFData ExportServerSideEncryption where+  rnf ExportServerSideEncryption' {..} =+    Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON ExportServerSideEncryption where+  toJSON ExportServerSideEncryption' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("KmsKeyArn" Data..=) Prelude.<$> kmsKeyArn,+            Prelude.Just ("Type" Data..= type')+          ]+      )
+ gen/Amazonka/DataExchange/Types/ImportAssetFromApiGatewayApiRequestDetails.hs view
@@ -0,0 +1,210 @@+{-# 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.DataExchange.Types.ImportAssetFromApiGatewayApiRequestDetails+-- 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.DataExchange.Types.ImportAssetFromApiGatewayApiRequestDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.ProtocolType+import qualified Amazonka.Prelude as Prelude++-- | The request details.+--+-- /See:/ 'newImportAssetFromApiGatewayApiRequestDetails' smart constructor.+data ImportAssetFromApiGatewayApiRequestDetails = ImportAssetFromApiGatewayApiRequestDetails'+  { -- | The API description. Markdown supported.+    apiDescription :: Prelude.Maybe Prelude.Text,+    -- | The API Gateway API key.+    apiKey :: Prelude.Maybe Prelude.Text,+    -- | The API Gateway API ID.+    apiId :: Prelude.Text,+    -- | The API name.+    apiName :: Prelude.Text,+    -- | The Base64-encoded MD5 hash of the OpenAPI 3.0 JSON API specification+    -- file. It is used to ensure the integrity of the file.+    apiSpecificationMd5Hash :: Prelude.Text,+    -- | The data set ID.+    dataSetId :: Prelude.Text,+    -- | The protocol type.+    protocolType :: ProtocolType,+    -- | The revision ID.+    revisionId :: Prelude.Text,+    -- | The API stage.+    stage :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportAssetFromApiGatewayApiRequestDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiDescription', 'importAssetFromApiGatewayApiRequestDetails_apiDescription' - The API description. Markdown supported.+--+-- 'apiKey', 'importAssetFromApiGatewayApiRequestDetails_apiKey' - The API Gateway API key.+--+-- 'apiId', 'importAssetFromApiGatewayApiRequestDetails_apiId' - The API Gateway API ID.+--+-- 'apiName', 'importAssetFromApiGatewayApiRequestDetails_apiName' - The API name.+--+-- 'apiSpecificationMd5Hash', 'importAssetFromApiGatewayApiRequestDetails_apiSpecificationMd5Hash' - The Base64-encoded MD5 hash of the OpenAPI 3.0 JSON API specification+-- file. It is used to ensure the integrity of the file.+--+-- 'dataSetId', 'importAssetFromApiGatewayApiRequestDetails_dataSetId' - The data set ID.+--+-- 'protocolType', 'importAssetFromApiGatewayApiRequestDetails_protocolType' - The protocol type.+--+-- 'revisionId', 'importAssetFromApiGatewayApiRequestDetails_revisionId' - The revision ID.+--+-- 'stage', 'importAssetFromApiGatewayApiRequestDetails_stage' - The API stage.+newImportAssetFromApiGatewayApiRequestDetails ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'apiName'+  Prelude.Text ->+  -- | 'apiSpecificationMd5Hash'+  Prelude.Text ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'protocolType'+  ProtocolType ->+  -- | 'revisionId'+  Prelude.Text ->+  -- | 'stage'+  Prelude.Text ->+  ImportAssetFromApiGatewayApiRequestDetails+newImportAssetFromApiGatewayApiRequestDetails+  pApiId_+  pApiName_+  pApiSpecificationMd5Hash_+  pDataSetId_+  pProtocolType_+  pRevisionId_+  pStage_ =+    ImportAssetFromApiGatewayApiRequestDetails'+      { apiDescription =+          Prelude.Nothing,+        apiKey = Prelude.Nothing,+        apiId = pApiId_,+        apiName = pApiName_,+        apiSpecificationMd5Hash =+          pApiSpecificationMd5Hash_,+        dataSetId = pDataSetId_,+        protocolType = pProtocolType_,+        revisionId = pRevisionId_,+        stage = pStage_+      }++-- | The API description. Markdown supported.+importAssetFromApiGatewayApiRequestDetails_apiDescription :: Lens.Lens' ImportAssetFromApiGatewayApiRequestDetails (Prelude.Maybe Prelude.Text)+importAssetFromApiGatewayApiRequestDetails_apiDescription = Lens.lens (\ImportAssetFromApiGatewayApiRequestDetails' {apiDescription} -> apiDescription) (\s@ImportAssetFromApiGatewayApiRequestDetails' {} a -> s {apiDescription = a} :: ImportAssetFromApiGatewayApiRequestDetails)++-- | The API Gateway API key.+importAssetFromApiGatewayApiRequestDetails_apiKey :: Lens.Lens' ImportAssetFromApiGatewayApiRequestDetails (Prelude.Maybe Prelude.Text)+importAssetFromApiGatewayApiRequestDetails_apiKey = Lens.lens (\ImportAssetFromApiGatewayApiRequestDetails' {apiKey} -> apiKey) (\s@ImportAssetFromApiGatewayApiRequestDetails' {} a -> s {apiKey = a} :: ImportAssetFromApiGatewayApiRequestDetails)++-- | The API Gateway API ID.+importAssetFromApiGatewayApiRequestDetails_apiId :: Lens.Lens' ImportAssetFromApiGatewayApiRequestDetails Prelude.Text+importAssetFromApiGatewayApiRequestDetails_apiId = Lens.lens (\ImportAssetFromApiGatewayApiRequestDetails' {apiId} -> apiId) (\s@ImportAssetFromApiGatewayApiRequestDetails' {} a -> s {apiId = a} :: ImportAssetFromApiGatewayApiRequestDetails)++-- | The API name.+importAssetFromApiGatewayApiRequestDetails_apiName :: Lens.Lens' ImportAssetFromApiGatewayApiRequestDetails Prelude.Text+importAssetFromApiGatewayApiRequestDetails_apiName = Lens.lens (\ImportAssetFromApiGatewayApiRequestDetails' {apiName} -> apiName) (\s@ImportAssetFromApiGatewayApiRequestDetails' {} a -> s {apiName = a} :: ImportAssetFromApiGatewayApiRequestDetails)++-- | The Base64-encoded MD5 hash of the OpenAPI 3.0 JSON API specification+-- file. It is used to ensure the integrity of the file.+importAssetFromApiGatewayApiRequestDetails_apiSpecificationMd5Hash :: Lens.Lens' ImportAssetFromApiGatewayApiRequestDetails Prelude.Text+importAssetFromApiGatewayApiRequestDetails_apiSpecificationMd5Hash = Lens.lens (\ImportAssetFromApiGatewayApiRequestDetails' {apiSpecificationMd5Hash} -> apiSpecificationMd5Hash) (\s@ImportAssetFromApiGatewayApiRequestDetails' {} a -> s {apiSpecificationMd5Hash = a} :: ImportAssetFromApiGatewayApiRequestDetails)++-- | The data set ID.+importAssetFromApiGatewayApiRequestDetails_dataSetId :: Lens.Lens' ImportAssetFromApiGatewayApiRequestDetails Prelude.Text+importAssetFromApiGatewayApiRequestDetails_dataSetId = Lens.lens (\ImportAssetFromApiGatewayApiRequestDetails' {dataSetId} -> dataSetId) (\s@ImportAssetFromApiGatewayApiRequestDetails' {} a -> s {dataSetId = a} :: ImportAssetFromApiGatewayApiRequestDetails)++-- | The protocol type.+importAssetFromApiGatewayApiRequestDetails_protocolType :: Lens.Lens' ImportAssetFromApiGatewayApiRequestDetails ProtocolType+importAssetFromApiGatewayApiRequestDetails_protocolType = Lens.lens (\ImportAssetFromApiGatewayApiRequestDetails' {protocolType} -> protocolType) (\s@ImportAssetFromApiGatewayApiRequestDetails' {} a -> s {protocolType = a} :: ImportAssetFromApiGatewayApiRequestDetails)++-- | The revision ID.+importAssetFromApiGatewayApiRequestDetails_revisionId :: Lens.Lens' ImportAssetFromApiGatewayApiRequestDetails Prelude.Text+importAssetFromApiGatewayApiRequestDetails_revisionId = Lens.lens (\ImportAssetFromApiGatewayApiRequestDetails' {revisionId} -> revisionId) (\s@ImportAssetFromApiGatewayApiRequestDetails' {} a -> s {revisionId = a} :: ImportAssetFromApiGatewayApiRequestDetails)++-- | The API stage.+importAssetFromApiGatewayApiRequestDetails_stage :: Lens.Lens' ImportAssetFromApiGatewayApiRequestDetails Prelude.Text+importAssetFromApiGatewayApiRequestDetails_stage = Lens.lens (\ImportAssetFromApiGatewayApiRequestDetails' {stage} -> stage) (\s@ImportAssetFromApiGatewayApiRequestDetails' {} a -> s {stage = a} :: ImportAssetFromApiGatewayApiRequestDetails)++instance+  Prelude.Hashable+    ImportAssetFromApiGatewayApiRequestDetails+  where+  hashWithSalt+    _salt+    ImportAssetFromApiGatewayApiRequestDetails' {..} =+      _salt+        `Prelude.hashWithSalt` apiDescription+        `Prelude.hashWithSalt` apiKey+        `Prelude.hashWithSalt` apiId+        `Prelude.hashWithSalt` apiName+        `Prelude.hashWithSalt` apiSpecificationMd5Hash+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` protocolType+        `Prelude.hashWithSalt` revisionId+        `Prelude.hashWithSalt` stage++instance+  Prelude.NFData+    ImportAssetFromApiGatewayApiRequestDetails+  where+  rnf ImportAssetFromApiGatewayApiRequestDetails' {..} =+    Prelude.rnf apiDescription+      `Prelude.seq` Prelude.rnf apiKey+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf apiName+      `Prelude.seq` Prelude.rnf apiSpecificationMd5Hash+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf protocolType+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf stage++instance+  Data.ToJSON+    ImportAssetFromApiGatewayApiRequestDetails+  where+  toJSON+    ImportAssetFromApiGatewayApiRequestDetails' {..} =+      Data.object+        ( Prelude.catMaybes+            [ ("ApiDescription" Data..=)+                Prelude.<$> apiDescription,+              ("ApiKey" Data..=) Prelude.<$> apiKey,+              Prelude.Just ("ApiId" Data..= apiId),+              Prelude.Just ("ApiName" Data..= apiName),+              Prelude.Just+                ( "ApiSpecificationMd5Hash"+                    Data..= apiSpecificationMd5Hash+                ),+              Prelude.Just ("DataSetId" Data..= dataSetId),+              Prelude.Just ("ProtocolType" Data..= protocolType),+              Prelude.Just ("RevisionId" Data..= revisionId),+              Prelude.Just ("Stage" Data..= stage)+            ]+        )
+ gen/Amazonka/DataExchange/Types/ImportAssetFromApiGatewayApiResponseDetails.hs view
@@ -0,0 +1,239 @@+{-# 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.DataExchange.Types.ImportAssetFromApiGatewayApiResponseDetails+-- 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.DataExchange.Types.ImportAssetFromApiGatewayApiResponseDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.ProtocolType+import qualified Amazonka.Prelude as Prelude++-- | The response details.+--+-- /See:/ 'newImportAssetFromApiGatewayApiResponseDetails' smart constructor.+data ImportAssetFromApiGatewayApiResponseDetails = ImportAssetFromApiGatewayApiResponseDetails'+  { -- | The API description.+    apiDescription :: Prelude.Maybe Prelude.Text,+    -- | The API key.+    apiKey :: Prelude.Maybe Prelude.Text,+    -- | The API ID.+    apiId :: Prelude.Text,+    -- | The API name.+    apiName :: Prelude.Text,+    -- | The Base64-encoded Md5 hash for the API asset, used to ensure the+    -- integrity of the API at that location.+    apiSpecificationMd5Hash :: Prelude.Text,+    -- | The upload URL of the API specification.+    apiSpecificationUploadUrl :: Prelude.Text,+    -- | The date and time that the upload URL expires, in ISO 8601 format.+    apiSpecificationUploadUrlExpiresAt :: Data.ISO8601,+    -- | The data set ID.+    dataSetId :: Prelude.Text,+    -- | The protocol type.+    protocolType :: ProtocolType,+    -- | The revision ID.+    revisionId :: Prelude.Text,+    -- | The API stage.+    stage :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportAssetFromApiGatewayApiResponseDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiDescription', 'importAssetFromApiGatewayApiResponseDetails_apiDescription' - The API description.+--+-- 'apiKey', 'importAssetFromApiGatewayApiResponseDetails_apiKey' - The API key.+--+-- 'apiId', 'importAssetFromApiGatewayApiResponseDetails_apiId' - The API ID.+--+-- 'apiName', 'importAssetFromApiGatewayApiResponseDetails_apiName' - The API name.+--+-- 'apiSpecificationMd5Hash', 'importAssetFromApiGatewayApiResponseDetails_apiSpecificationMd5Hash' - The Base64-encoded Md5 hash for the API asset, used to ensure the+-- integrity of the API at that location.+--+-- 'apiSpecificationUploadUrl', 'importAssetFromApiGatewayApiResponseDetails_apiSpecificationUploadUrl' - The upload URL of the API specification.+--+-- 'apiSpecificationUploadUrlExpiresAt', 'importAssetFromApiGatewayApiResponseDetails_apiSpecificationUploadUrlExpiresAt' - The date and time that the upload URL expires, in ISO 8601 format.+--+-- 'dataSetId', 'importAssetFromApiGatewayApiResponseDetails_dataSetId' - The data set ID.+--+-- 'protocolType', 'importAssetFromApiGatewayApiResponseDetails_protocolType' - The protocol type.+--+-- 'revisionId', 'importAssetFromApiGatewayApiResponseDetails_revisionId' - The revision ID.+--+-- 'stage', 'importAssetFromApiGatewayApiResponseDetails_stage' - The API stage.+newImportAssetFromApiGatewayApiResponseDetails ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'apiName'+  Prelude.Text ->+  -- | 'apiSpecificationMd5Hash'+  Prelude.Text ->+  -- | 'apiSpecificationUploadUrl'+  Prelude.Text ->+  -- | 'apiSpecificationUploadUrlExpiresAt'+  Prelude.UTCTime ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'protocolType'+  ProtocolType ->+  -- | 'revisionId'+  Prelude.Text ->+  -- | 'stage'+  Prelude.Text ->+  ImportAssetFromApiGatewayApiResponseDetails+newImportAssetFromApiGatewayApiResponseDetails+  pApiId_+  pApiName_+  pApiSpecificationMd5Hash_+  pApiSpecificationUploadUrl_+  pApiSpecificationUploadUrlExpiresAt_+  pDataSetId_+  pProtocolType_+  pRevisionId_+  pStage_ =+    ImportAssetFromApiGatewayApiResponseDetails'+      { apiDescription =+          Prelude.Nothing,+        apiKey = Prelude.Nothing,+        apiId = pApiId_,+        apiName = pApiName_,+        apiSpecificationMd5Hash =+          pApiSpecificationMd5Hash_,+        apiSpecificationUploadUrl =+          pApiSpecificationUploadUrl_,+        apiSpecificationUploadUrlExpiresAt =+          Data._Time+            Lens.# pApiSpecificationUploadUrlExpiresAt_,+        dataSetId = pDataSetId_,+        protocolType = pProtocolType_,+        revisionId = pRevisionId_,+        stage = pStage_+      }++-- | The API description.+importAssetFromApiGatewayApiResponseDetails_apiDescription :: Lens.Lens' ImportAssetFromApiGatewayApiResponseDetails (Prelude.Maybe Prelude.Text)+importAssetFromApiGatewayApiResponseDetails_apiDescription = Lens.lens (\ImportAssetFromApiGatewayApiResponseDetails' {apiDescription} -> apiDescription) (\s@ImportAssetFromApiGatewayApiResponseDetails' {} a -> s {apiDescription = a} :: ImportAssetFromApiGatewayApiResponseDetails)++-- | The API key.+importAssetFromApiGatewayApiResponseDetails_apiKey :: Lens.Lens' ImportAssetFromApiGatewayApiResponseDetails (Prelude.Maybe Prelude.Text)+importAssetFromApiGatewayApiResponseDetails_apiKey = Lens.lens (\ImportAssetFromApiGatewayApiResponseDetails' {apiKey} -> apiKey) (\s@ImportAssetFromApiGatewayApiResponseDetails' {} a -> s {apiKey = a} :: ImportAssetFromApiGatewayApiResponseDetails)++-- | The API ID.+importAssetFromApiGatewayApiResponseDetails_apiId :: Lens.Lens' ImportAssetFromApiGatewayApiResponseDetails Prelude.Text+importAssetFromApiGatewayApiResponseDetails_apiId = Lens.lens (\ImportAssetFromApiGatewayApiResponseDetails' {apiId} -> apiId) (\s@ImportAssetFromApiGatewayApiResponseDetails' {} a -> s {apiId = a} :: ImportAssetFromApiGatewayApiResponseDetails)++-- | The API name.+importAssetFromApiGatewayApiResponseDetails_apiName :: Lens.Lens' ImportAssetFromApiGatewayApiResponseDetails Prelude.Text+importAssetFromApiGatewayApiResponseDetails_apiName = Lens.lens (\ImportAssetFromApiGatewayApiResponseDetails' {apiName} -> apiName) (\s@ImportAssetFromApiGatewayApiResponseDetails' {} a -> s {apiName = a} :: ImportAssetFromApiGatewayApiResponseDetails)++-- | The Base64-encoded Md5 hash for the API asset, used to ensure the+-- integrity of the API at that location.+importAssetFromApiGatewayApiResponseDetails_apiSpecificationMd5Hash :: Lens.Lens' ImportAssetFromApiGatewayApiResponseDetails Prelude.Text+importAssetFromApiGatewayApiResponseDetails_apiSpecificationMd5Hash = Lens.lens (\ImportAssetFromApiGatewayApiResponseDetails' {apiSpecificationMd5Hash} -> apiSpecificationMd5Hash) (\s@ImportAssetFromApiGatewayApiResponseDetails' {} a -> s {apiSpecificationMd5Hash = a} :: ImportAssetFromApiGatewayApiResponseDetails)++-- | The upload URL of the API specification.+importAssetFromApiGatewayApiResponseDetails_apiSpecificationUploadUrl :: Lens.Lens' ImportAssetFromApiGatewayApiResponseDetails Prelude.Text+importAssetFromApiGatewayApiResponseDetails_apiSpecificationUploadUrl = Lens.lens (\ImportAssetFromApiGatewayApiResponseDetails' {apiSpecificationUploadUrl} -> apiSpecificationUploadUrl) (\s@ImportAssetFromApiGatewayApiResponseDetails' {} a -> s {apiSpecificationUploadUrl = a} :: ImportAssetFromApiGatewayApiResponseDetails)++-- | The date and time that the upload URL expires, in ISO 8601 format.+importAssetFromApiGatewayApiResponseDetails_apiSpecificationUploadUrlExpiresAt :: Lens.Lens' ImportAssetFromApiGatewayApiResponseDetails Prelude.UTCTime+importAssetFromApiGatewayApiResponseDetails_apiSpecificationUploadUrlExpiresAt = Lens.lens (\ImportAssetFromApiGatewayApiResponseDetails' {apiSpecificationUploadUrlExpiresAt} -> apiSpecificationUploadUrlExpiresAt) (\s@ImportAssetFromApiGatewayApiResponseDetails' {} a -> s {apiSpecificationUploadUrlExpiresAt = a} :: ImportAssetFromApiGatewayApiResponseDetails) Prelude.. Data._Time++-- | The data set ID.+importAssetFromApiGatewayApiResponseDetails_dataSetId :: Lens.Lens' ImportAssetFromApiGatewayApiResponseDetails Prelude.Text+importAssetFromApiGatewayApiResponseDetails_dataSetId = Lens.lens (\ImportAssetFromApiGatewayApiResponseDetails' {dataSetId} -> dataSetId) (\s@ImportAssetFromApiGatewayApiResponseDetails' {} a -> s {dataSetId = a} :: ImportAssetFromApiGatewayApiResponseDetails)++-- | The protocol type.+importAssetFromApiGatewayApiResponseDetails_protocolType :: Lens.Lens' ImportAssetFromApiGatewayApiResponseDetails ProtocolType+importAssetFromApiGatewayApiResponseDetails_protocolType = Lens.lens (\ImportAssetFromApiGatewayApiResponseDetails' {protocolType} -> protocolType) (\s@ImportAssetFromApiGatewayApiResponseDetails' {} a -> s {protocolType = a} :: ImportAssetFromApiGatewayApiResponseDetails)++-- | The revision ID.+importAssetFromApiGatewayApiResponseDetails_revisionId :: Lens.Lens' ImportAssetFromApiGatewayApiResponseDetails Prelude.Text+importAssetFromApiGatewayApiResponseDetails_revisionId = Lens.lens (\ImportAssetFromApiGatewayApiResponseDetails' {revisionId} -> revisionId) (\s@ImportAssetFromApiGatewayApiResponseDetails' {} a -> s {revisionId = a} :: ImportAssetFromApiGatewayApiResponseDetails)++-- | The API stage.+importAssetFromApiGatewayApiResponseDetails_stage :: Lens.Lens' ImportAssetFromApiGatewayApiResponseDetails Prelude.Text+importAssetFromApiGatewayApiResponseDetails_stage = Lens.lens (\ImportAssetFromApiGatewayApiResponseDetails' {stage} -> stage) (\s@ImportAssetFromApiGatewayApiResponseDetails' {} a -> s {stage = a} :: ImportAssetFromApiGatewayApiResponseDetails)++instance+  Data.FromJSON+    ImportAssetFromApiGatewayApiResponseDetails+  where+  parseJSON =+    Data.withObject+      "ImportAssetFromApiGatewayApiResponseDetails"+      ( \x ->+          ImportAssetFromApiGatewayApiResponseDetails'+            Prelude.<$> (x Data..:? "ApiDescription")+            Prelude.<*> (x Data..:? "ApiKey")+            Prelude.<*> (x Data..: "ApiId")+            Prelude.<*> (x Data..: "ApiName")+            Prelude.<*> (x Data..: "ApiSpecificationMd5Hash")+            Prelude.<*> (x Data..: "ApiSpecificationUploadUrl")+            Prelude.<*> (x Data..: "ApiSpecificationUploadUrlExpiresAt")+            Prelude.<*> (x Data..: "DataSetId")+            Prelude.<*> (x Data..: "ProtocolType")+            Prelude.<*> (x Data..: "RevisionId")+            Prelude.<*> (x Data..: "Stage")+      )++instance+  Prelude.Hashable+    ImportAssetFromApiGatewayApiResponseDetails+  where+  hashWithSalt+    _salt+    ImportAssetFromApiGatewayApiResponseDetails' {..} =+      _salt+        `Prelude.hashWithSalt` apiDescription+        `Prelude.hashWithSalt` apiKey+        `Prelude.hashWithSalt` apiId+        `Prelude.hashWithSalt` apiName+        `Prelude.hashWithSalt` apiSpecificationMd5Hash+        `Prelude.hashWithSalt` apiSpecificationUploadUrl+        `Prelude.hashWithSalt` apiSpecificationUploadUrlExpiresAt+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` protocolType+        `Prelude.hashWithSalt` revisionId+        `Prelude.hashWithSalt` stage++instance+  Prelude.NFData+    ImportAssetFromApiGatewayApiResponseDetails+  where+  rnf ImportAssetFromApiGatewayApiResponseDetails' {..} =+    Prelude.rnf apiDescription+      `Prelude.seq` Prelude.rnf apiKey+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf apiName+      `Prelude.seq` Prelude.rnf apiSpecificationMd5Hash+      `Prelude.seq` Prelude.rnf apiSpecificationUploadUrl+      `Prelude.seq` Prelude.rnf apiSpecificationUploadUrlExpiresAt+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf protocolType+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf stage
+ gen/Amazonka/DataExchange/Types/ImportAssetFromSignedUrlJobErrorDetails.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.DataExchange.Types.ImportAssetFromSignedUrlJobErrorDetails+-- 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.DataExchange.Types.ImportAssetFromSignedUrlJobErrorDetails 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++-- | Details about the job error.+--+-- /See:/ 'newImportAssetFromSignedUrlJobErrorDetails' smart constructor.+data ImportAssetFromSignedUrlJobErrorDetails = ImportAssetFromSignedUrlJobErrorDetails'+  { -- | Details about the job error.+    assetName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportAssetFromSignedUrlJobErrorDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assetName', 'importAssetFromSignedUrlJobErrorDetails_assetName' - Details about the job error.+newImportAssetFromSignedUrlJobErrorDetails ::+  -- | 'assetName'+  Prelude.Text ->+  ImportAssetFromSignedUrlJobErrorDetails+newImportAssetFromSignedUrlJobErrorDetails+  pAssetName_ =+    ImportAssetFromSignedUrlJobErrorDetails'+      { assetName =+          pAssetName_+      }++-- | Details about the job error.+importAssetFromSignedUrlJobErrorDetails_assetName :: Lens.Lens' ImportAssetFromSignedUrlJobErrorDetails Prelude.Text+importAssetFromSignedUrlJobErrorDetails_assetName = Lens.lens (\ImportAssetFromSignedUrlJobErrorDetails' {assetName} -> assetName) (\s@ImportAssetFromSignedUrlJobErrorDetails' {} a -> s {assetName = a} :: ImportAssetFromSignedUrlJobErrorDetails)++instance+  Data.FromJSON+    ImportAssetFromSignedUrlJobErrorDetails+  where+  parseJSON =+    Data.withObject+      "ImportAssetFromSignedUrlJobErrorDetails"+      ( \x ->+          ImportAssetFromSignedUrlJobErrorDetails'+            Prelude.<$> (x Data..: "AssetName")+      )++instance+  Prelude.Hashable+    ImportAssetFromSignedUrlJobErrorDetails+  where+  hashWithSalt+    _salt+    ImportAssetFromSignedUrlJobErrorDetails' {..} =+      _salt `Prelude.hashWithSalt` assetName++instance+  Prelude.NFData+    ImportAssetFromSignedUrlJobErrorDetails+  where+  rnf ImportAssetFromSignedUrlJobErrorDetails' {..} =+    Prelude.rnf assetName
+ gen/Amazonka/DataExchange/Types/ImportAssetFromSignedUrlRequestDetails.hs view
@@ -0,0 +1,140 @@+{-# 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.DataExchange.Types.ImportAssetFromSignedUrlRequestDetails+-- 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.DataExchange.Types.ImportAssetFromSignedUrlRequestDetails 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++-- | Details of the operation to be performed by the job.+--+-- /See:/ 'newImportAssetFromSignedUrlRequestDetails' smart constructor.+data ImportAssetFromSignedUrlRequestDetails = ImportAssetFromSignedUrlRequestDetails'+  { -- | The name of the asset. When importing from Amazon S3, the Amazon S3+    -- object key is used as the asset name.+    assetName :: Prelude.Text,+    -- | The unique identifier for the data set associated with this import job.+    dataSetId :: Prelude.Text,+    -- | The Base64-encoded Md5 hash for the asset, used to ensure the integrity+    -- of the file at that location.+    md5Hash :: Prelude.Text,+    -- | The unique identifier for the revision associated with this import+    -- request.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportAssetFromSignedUrlRequestDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assetName', 'importAssetFromSignedUrlRequestDetails_assetName' - The name of the asset. When importing from Amazon S3, the Amazon S3+-- object key is used as the asset name.+--+-- 'dataSetId', 'importAssetFromSignedUrlRequestDetails_dataSetId' - The unique identifier for the data set associated with this import job.+--+-- 'md5Hash', 'importAssetFromSignedUrlRequestDetails_md5Hash' - The Base64-encoded Md5 hash for the asset, used to ensure the integrity+-- of the file at that location.+--+-- 'revisionId', 'importAssetFromSignedUrlRequestDetails_revisionId' - The unique identifier for the revision associated with this import+-- request.+newImportAssetFromSignedUrlRequestDetails ::+  -- | 'assetName'+  Prelude.Text ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'md5Hash'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  ImportAssetFromSignedUrlRequestDetails+newImportAssetFromSignedUrlRequestDetails+  pAssetName_+  pDataSetId_+  pMd5Hash_+  pRevisionId_ =+    ImportAssetFromSignedUrlRequestDetails'+      { assetName =+          pAssetName_,+        dataSetId = pDataSetId_,+        md5Hash = pMd5Hash_,+        revisionId = pRevisionId_+      }++-- | The name of the asset. When importing from Amazon S3, the Amazon S3+-- object key is used as the asset name.+importAssetFromSignedUrlRequestDetails_assetName :: Lens.Lens' ImportAssetFromSignedUrlRequestDetails Prelude.Text+importAssetFromSignedUrlRequestDetails_assetName = Lens.lens (\ImportAssetFromSignedUrlRequestDetails' {assetName} -> assetName) (\s@ImportAssetFromSignedUrlRequestDetails' {} a -> s {assetName = a} :: ImportAssetFromSignedUrlRequestDetails)++-- | The unique identifier for the data set associated with this import job.+importAssetFromSignedUrlRequestDetails_dataSetId :: Lens.Lens' ImportAssetFromSignedUrlRequestDetails Prelude.Text+importAssetFromSignedUrlRequestDetails_dataSetId = Lens.lens (\ImportAssetFromSignedUrlRequestDetails' {dataSetId} -> dataSetId) (\s@ImportAssetFromSignedUrlRequestDetails' {} a -> s {dataSetId = a} :: ImportAssetFromSignedUrlRequestDetails)++-- | The Base64-encoded Md5 hash for the asset, used to ensure the integrity+-- of the file at that location.+importAssetFromSignedUrlRequestDetails_md5Hash :: Lens.Lens' ImportAssetFromSignedUrlRequestDetails Prelude.Text+importAssetFromSignedUrlRequestDetails_md5Hash = Lens.lens (\ImportAssetFromSignedUrlRequestDetails' {md5Hash} -> md5Hash) (\s@ImportAssetFromSignedUrlRequestDetails' {} a -> s {md5Hash = a} :: ImportAssetFromSignedUrlRequestDetails)++-- | The unique identifier for the revision associated with this import+-- request.+importAssetFromSignedUrlRequestDetails_revisionId :: Lens.Lens' ImportAssetFromSignedUrlRequestDetails Prelude.Text+importAssetFromSignedUrlRequestDetails_revisionId = Lens.lens (\ImportAssetFromSignedUrlRequestDetails' {revisionId} -> revisionId) (\s@ImportAssetFromSignedUrlRequestDetails' {} a -> s {revisionId = a} :: ImportAssetFromSignedUrlRequestDetails)++instance+  Prelude.Hashable+    ImportAssetFromSignedUrlRequestDetails+  where+  hashWithSalt+    _salt+    ImportAssetFromSignedUrlRequestDetails' {..} =+      _salt+        `Prelude.hashWithSalt` assetName+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` md5Hash+        `Prelude.hashWithSalt` revisionId++instance+  Prelude.NFData+    ImportAssetFromSignedUrlRequestDetails+  where+  rnf ImportAssetFromSignedUrlRequestDetails' {..} =+    Prelude.rnf assetName+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf md5Hash+      `Prelude.seq` Prelude.rnf revisionId++instance+  Data.ToJSON+    ImportAssetFromSignedUrlRequestDetails+  where+  toJSON ImportAssetFromSignedUrlRequestDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("AssetName" Data..= assetName),+            Prelude.Just ("DataSetId" Data..= dataSetId),+            Prelude.Just ("Md5Hash" Data..= md5Hash),+            Prelude.Just ("RevisionId" Data..= revisionId)+          ]+      )
+ gen/Amazonka/DataExchange/Types/ImportAssetFromSignedUrlResponseDetails.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.ImportAssetFromSignedUrlResponseDetails+-- 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.DataExchange.Types.ImportAssetFromSignedUrlResponseDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The details in the response for an import request, including the signed+-- URL and other information.+--+-- /See:/ 'newImportAssetFromSignedUrlResponseDetails' smart constructor.+data ImportAssetFromSignedUrlResponseDetails = ImportAssetFromSignedUrlResponseDetails'+  { -- | The Base64-encoded Md5 hash for the asset, used to ensure the integrity+    -- of the file at that location.+    md5Hash :: Prelude.Maybe Prelude.Text,+    -- | The signed URL.+    signedUrl :: Prelude.Maybe Prelude.Text,+    -- | The time and date at which the signed URL expires, in ISO 8601 format.+    signedUrlExpiresAt :: Prelude.Maybe Data.ISO8601,+    -- | The name for the asset associated with this import job.+    assetName :: Prelude.Text,+    -- | The unique identifier for the data set associated with this import job.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for the revision associated with this import+    -- response.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportAssetFromSignedUrlResponseDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'md5Hash', 'importAssetFromSignedUrlResponseDetails_md5Hash' - The Base64-encoded Md5 hash for the asset, used to ensure the integrity+-- of the file at that location.+--+-- 'signedUrl', 'importAssetFromSignedUrlResponseDetails_signedUrl' - The signed URL.+--+-- 'signedUrlExpiresAt', 'importAssetFromSignedUrlResponseDetails_signedUrlExpiresAt' - The time and date at which the signed URL expires, in ISO 8601 format.+--+-- 'assetName', 'importAssetFromSignedUrlResponseDetails_assetName' - The name for the asset associated with this import job.+--+-- 'dataSetId', 'importAssetFromSignedUrlResponseDetails_dataSetId' - The unique identifier for the data set associated with this import job.+--+-- 'revisionId', 'importAssetFromSignedUrlResponseDetails_revisionId' - The unique identifier for the revision associated with this import+-- response.+newImportAssetFromSignedUrlResponseDetails ::+  -- | 'assetName'+  Prelude.Text ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  ImportAssetFromSignedUrlResponseDetails+newImportAssetFromSignedUrlResponseDetails+  pAssetName_+  pDataSetId_+  pRevisionId_ =+    ImportAssetFromSignedUrlResponseDetails'+      { md5Hash =+          Prelude.Nothing,+        signedUrl = Prelude.Nothing,+        signedUrlExpiresAt =+          Prelude.Nothing,+        assetName = pAssetName_,+        dataSetId = pDataSetId_,+        revisionId = pRevisionId_+      }++-- | The Base64-encoded Md5 hash for the asset, used to ensure the integrity+-- of the file at that location.+importAssetFromSignedUrlResponseDetails_md5Hash :: Lens.Lens' ImportAssetFromSignedUrlResponseDetails (Prelude.Maybe Prelude.Text)+importAssetFromSignedUrlResponseDetails_md5Hash = Lens.lens (\ImportAssetFromSignedUrlResponseDetails' {md5Hash} -> md5Hash) (\s@ImportAssetFromSignedUrlResponseDetails' {} a -> s {md5Hash = a} :: ImportAssetFromSignedUrlResponseDetails)++-- | The signed URL.+importAssetFromSignedUrlResponseDetails_signedUrl :: Lens.Lens' ImportAssetFromSignedUrlResponseDetails (Prelude.Maybe Prelude.Text)+importAssetFromSignedUrlResponseDetails_signedUrl = Lens.lens (\ImportAssetFromSignedUrlResponseDetails' {signedUrl} -> signedUrl) (\s@ImportAssetFromSignedUrlResponseDetails' {} a -> s {signedUrl = a} :: ImportAssetFromSignedUrlResponseDetails)++-- | The time and date at which the signed URL expires, in ISO 8601 format.+importAssetFromSignedUrlResponseDetails_signedUrlExpiresAt :: Lens.Lens' ImportAssetFromSignedUrlResponseDetails (Prelude.Maybe Prelude.UTCTime)+importAssetFromSignedUrlResponseDetails_signedUrlExpiresAt = Lens.lens (\ImportAssetFromSignedUrlResponseDetails' {signedUrlExpiresAt} -> signedUrlExpiresAt) (\s@ImportAssetFromSignedUrlResponseDetails' {} a -> s {signedUrlExpiresAt = a} :: ImportAssetFromSignedUrlResponseDetails) Prelude.. Lens.mapping Data._Time++-- | The name for the asset associated with this import job.+importAssetFromSignedUrlResponseDetails_assetName :: Lens.Lens' ImportAssetFromSignedUrlResponseDetails Prelude.Text+importAssetFromSignedUrlResponseDetails_assetName = Lens.lens (\ImportAssetFromSignedUrlResponseDetails' {assetName} -> assetName) (\s@ImportAssetFromSignedUrlResponseDetails' {} a -> s {assetName = a} :: ImportAssetFromSignedUrlResponseDetails)++-- | The unique identifier for the data set associated with this import job.+importAssetFromSignedUrlResponseDetails_dataSetId :: Lens.Lens' ImportAssetFromSignedUrlResponseDetails Prelude.Text+importAssetFromSignedUrlResponseDetails_dataSetId = Lens.lens (\ImportAssetFromSignedUrlResponseDetails' {dataSetId} -> dataSetId) (\s@ImportAssetFromSignedUrlResponseDetails' {} a -> s {dataSetId = a} :: ImportAssetFromSignedUrlResponseDetails)++-- | The unique identifier for the revision associated with this import+-- response.+importAssetFromSignedUrlResponseDetails_revisionId :: Lens.Lens' ImportAssetFromSignedUrlResponseDetails Prelude.Text+importAssetFromSignedUrlResponseDetails_revisionId = Lens.lens (\ImportAssetFromSignedUrlResponseDetails' {revisionId} -> revisionId) (\s@ImportAssetFromSignedUrlResponseDetails' {} a -> s {revisionId = a} :: ImportAssetFromSignedUrlResponseDetails)++instance+  Data.FromJSON+    ImportAssetFromSignedUrlResponseDetails+  where+  parseJSON =+    Data.withObject+      "ImportAssetFromSignedUrlResponseDetails"+      ( \x ->+          ImportAssetFromSignedUrlResponseDetails'+            Prelude.<$> (x Data..:? "Md5Hash")+            Prelude.<*> (x Data..:? "SignedUrl")+            Prelude.<*> (x Data..:? "SignedUrlExpiresAt")+            Prelude.<*> (x Data..: "AssetName")+            Prelude.<*> (x Data..: "DataSetId")+            Prelude.<*> (x Data..: "RevisionId")+      )++instance+  Prelude.Hashable+    ImportAssetFromSignedUrlResponseDetails+  where+  hashWithSalt+    _salt+    ImportAssetFromSignedUrlResponseDetails' {..} =+      _salt+        `Prelude.hashWithSalt` md5Hash+        `Prelude.hashWithSalt` signedUrl+        `Prelude.hashWithSalt` signedUrlExpiresAt+        `Prelude.hashWithSalt` assetName+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` revisionId++instance+  Prelude.NFData+    ImportAssetFromSignedUrlResponseDetails+  where+  rnf ImportAssetFromSignedUrlResponseDetails' {..} =+    Prelude.rnf md5Hash+      `Prelude.seq` Prelude.rnf signedUrl+      `Prelude.seq` Prelude.rnf signedUrlExpiresAt+      `Prelude.seq` Prelude.rnf assetName+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId
+ gen/Amazonka/DataExchange/Types/ImportAssetsFromLakeFormationTagPolicyRequestDetails.hs view
@@ -0,0 +1,170 @@+{-# 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.DataExchange.Types.ImportAssetsFromLakeFormationTagPolicyRequestDetails+-- 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.DataExchange.Types.ImportAssetsFromLakeFormationTagPolicyRequestDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.DatabaseLFTagPolicyAndPermissions+import Amazonka.DataExchange.Types.TableLFTagPolicyAndPermissions+import qualified Amazonka.Prelude as Prelude++-- | Details about the assets imported from an AWS Lake Formation tag policy+-- request.+--+-- /See:/ 'newImportAssetsFromLakeFormationTagPolicyRequestDetails' smart constructor.+data ImportAssetsFromLakeFormationTagPolicyRequestDetails = ImportAssetsFromLakeFormationTagPolicyRequestDetails'+  { -- | A structure for the database object.+    database :: Prelude.Maybe DatabaseLFTagPolicyAndPermissions,+    -- | A structure for the table object.+    table :: Prelude.Maybe TableLFTagPolicyAndPermissions,+    -- | The identifier for the AWS Glue Data Catalog.+    catalogId :: Prelude.Text,+    -- | The IAM role\'s ARN that allows AWS Data Exchange to assume the role and+    -- grant and revoke permissions of subscribers to AWS Lake Formation data+    -- permissions.+    roleArn :: Prelude.Text,+    -- | The unique identifier for the data set associated with this import job.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for the revision associated with this import job.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportAssetsFromLakeFormationTagPolicyRequestDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'database', 'importAssetsFromLakeFormationTagPolicyRequestDetails_database' - A structure for the database object.+--+-- 'table', 'importAssetsFromLakeFormationTagPolicyRequestDetails_table' - A structure for the table object.+--+-- 'catalogId', 'importAssetsFromLakeFormationTagPolicyRequestDetails_catalogId' - The identifier for the AWS Glue Data Catalog.+--+-- 'roleArn', 'importAssetsFromLakeFormationTagPolicyRequestDetails_roleArn' - The IAM role\'s ARN that allows AWS Data Exchange to assume the role and+-- grant and revoke permissions of subscribers to AWS Lake Formation data+-- permissions.+--+-- 'dataSetId', 'importAssetsFromLakeFormationTagPolicyRequestDetails_dataSetId' - The unique identifier for the data set associated with this import job.+--+-- 'revisionId', 'importAssetsFromLakeFormationTagPolicyRequestDetails_revisionId' - The unique identifier for the revision associated with this import job.+newImportAssetsFromLakeFormationTagPolicyRequestDetails ::+  -- | 'catalogId'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  ImportAssetsFromLakeFormationTagPolicyRequestDetails+newImportAssetsFromLakeFormationTagPolicyRequestDetails+  pCatalogId_+  pRoleArn_+  pDataSetId_+  pRevisionId_ =+    ImportAssetsFromLakeFormationTagPolicyRequestDetails'+      { database =+          Prelude.Nothing,+        table =+          Prelude.Nothing,+        catalogId =+          pCatalogId_,+        roleArn = pRoleArn_,+        dataSetId =+          pDataSetId_,+        revisionId =+          pRevisionId_+      }++-- | A structure for the database object.+importAssetsFromLakeFormationTagPolicyRequestDetails_database :: Lens.Lens' ImportAssetsFromLakeFormationTagPolicyRequestDetails (Prelude.Maybe DatabaseLFTagPolicyAndPermissions)+importAssetsFromLakeFormationTagPolicyRequestDetails_database = Lens.lens (\ImportAssetsFromLakeFormationTagPolicyRequestDetails' {database} -> database) (\s@ImportAssetsFromLakeFormationTagPolicyRequestDetails' {} a -> s {database = a} :: ImportAssetsFromLakeFormationTagPolicyRequestDetails)++-- | A structure for the table object.+importAssetsFromLakeFormationTagPolicyRequestDetails_table :: Lens.Lens' ImportAssetsFromLakeFormationTagPolicyRequestDetails (Prelude.Maybe TableLFTagPolicyAndPermissions)+importAssetsFromLakeFormationTagPolicyRequestDetails_table = Lens.lens (\ImportAssetsFromLakeFormationTagPolicyRequestDetails' {table} -> table) (\s@ImportAssetsFromLakeFormationTagPolicyRequestDetails' {} a -> s {table = a} :: ImportAssetsFromLakeFormationTagPolicyRequestDetails)++-- | The identifier for the AWS Glue Data Catalog.+importAssetsFromLakeFormationTagPolicyRequestDetails_catalogId :: Lens.Lens' ImportAssetsFromLakeFormationTagPolicyRequestDetails Prelude.Text+importAssetsFromLakeFormationTagPolicyRequestDetails_catalogId = Lens.lens (\ImportAssetsFromLakeFormationTagPolicyRequestDetails' {catalogId} -> catalogId) (\s@ImportAssetsFromLakeFormationTagPolicyRequestDetails' {} a -> s {catalogId = a} :: ImportAssetsFromLakeFormationTagPolicyRequestDetails)++-- | The IAM role\'s ARN that allows AWS Data Exchange to assume the role and+-- grant and revoke permissions of subscribers to AWS Lake Formation data+-- permissions.+importAssetsFromLakeFormationTagPolicyRequestDetails_roleArn :: Lens.Lens' ImportAssetsFromLakeFormationTagPolicyRequestDetails Prelude.Text+importAssetsFromLakeFormationTagPolicyRequestDetails_roleArn = Lens.lens (\ImportAssetsFromLakeFormationTagPolicyRequestDetails' {roleArn} -> roleArn) (\s@ImportAssetsFromLakeFormationTagPolicyRequestDetails' {} a -> s {roleArn = a} :: ImportAssetsFromLakeFormationTagPolicyRequestDetails)++-- | The unique identifier for the data set associated with this import job.+importAssetsFromLakeFormationTagPolicyRequestDetails_dataSetId :: Lens.Lens' ImportAssetsFromLakeFormationTagPolicyRequestDetails Prelude.Text+importAssetsFromLakeFormationTagPolicyRequestDetails_dataSetId = Lens.lens (\ImportAssetsFromLakeFormationTagPolicyRequestDetails' {dataSetId} -> dataSetId) (\s@ImportAssetsFromLakeFormationTagPolicyRequestDetails' {} a -> s {dataSetId = a} :: ImportAssetsFromLakeFormationTagPolicyRequestDetails)++-- | The unique identifier for the revision associated with this import job.+importAssetsFromLakeFormationTagPolicyRequestDetails_revisionId :: Lens.Lens' ImportAssetsFromLakeFormationTagPolicyRequestDetails Prelude.Text+importAssetsFromLakeFormationTagPolicyRequestDetails_revisionId = Lens.lens (\ImportAssetsFromLakeFormationTagPolicyRequestDetails' {revisionId} -> revisionId) (\s@ImportAssetsFromLakeFormationTagPolicyRequestDetails' {} a -> s {revisionId = a} :: ImportAssetsFromLakeFormationTagPolicyRequestDetails)++instance+  Prelude.Hashable+    ImportAssetsFromLakeFormationTagPolicyRequestDetails+  where+  hashWithSalt+    _salt+    ImportAssetsFromLakeFormationTagPolicyRequestDetails' {..} =+      _salt+        `Prelude.hashWithSalt` database+        `Prelude.hashWithSalt` table+        `Prelude.hashWithSalt` catalogId+        `Prelude.hashWithSalt` roleArn+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` revisionId++instance+  Prelude.NFData+    ImportAssetsFromLakeFormationTagPolicyRequestDetails+  where+  rnf+    ImportAssetsFromLakeFormationTagPolicyRequestDetails' {..} =+      Prelude.rnf database+        `Prelude.seq` Prelude.rnf table+        `Prelude.seq` Prelude.rnf catalogId+        `Prelude.seq` Prelude.rnf roleArn+        `Prelude.seq` Prelude.rnf dataSetId+        `Prelude.seq` Prelude.rnf revisionId++instance+  Data.ToJSON+    ImportAssetsFromLakeFormationTagPolicyRequestDetails+  where+  toJSON+    ImportAssetsFromLakeFormationTagPolicyRequestDetails' {..} =+      Data.object+        ( Prelude.catMaybes+            [ ("Database" Data..=) Prelude.<$> database,+              ("Table" Data..=) Prelude.<$> table,+              Prelude.Just ("CatalogId" Data..= catalogId),+              Prelude.Just ("RoleArn" Data..= roleArn),+              Prelude.Just ("DataSetId" Data..= dataSetId),+              Prelude.Just ("RevisionId" Data..= revisionId)+            ]+        )
+ gen/Amazonka/DataExchange/Types/ImportAssetsFromLakeFormationTagPolicyResponseDetails.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.ImportAssetsFromLakeFormationTagPolicyResponseDetails+-- 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.DataExchange.Types.ImportAssetsFromLakeFormationTagPolicyResponseDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.DatabaseLFTagPolicyAndPermissions+import Amazonka.DataExchange.Types.TableLFTagPolicyAndPermissions+import qualified Amazonka.Prelude as Prelude++-- | Details from an import AWS Lake Formation tag policy job response.+--+-- /See:/ 'newImportAssetsFromLakeFormationTagPolicyResponseDetails' smart constructor.+data ImportAssetsFromLakeFormationTagPolicyResponseDetails = ImportAssetsFromLakeFormationTagPolicyResponseDetails'+  { -- | A structure for the database object.+    database :: Prelude.Maybe DatabaseLFTagPolicyAndPermissions,+    -- | A structure for the table object.+    table :: Prelude.Maybe TableLFTagPolicyAndPermissions,+    -- | The identifier for the AWS Glue Data Catalog.+    catalogId :: Prelude.Text,+    -- | The IAM role\'s ARN that allows AWS Data Exchange to assume the role and+    -- grant and revoke permissions to AWS Lake Formation data permissions.+    roleArn :: Prelude.Text,+    -- | The unique identifier for the data set associated with this import job.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for the revision associated with this import job.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportAssetsFromLakeFormationTagPolicyResponseDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'database', 'importAssetsFromLakeFormationTagPolicyResponseDetails_database' - A structure for the database object.+--+-- 'table', 'importAssetsFromLakeFormationTagPolicyResponseDetails_table' - A structure for the table object.+--+-- 'catalogId', 'importAssetsFromLakeFormationTagPolicyResponseDetails_catalogId' - The identifier for the AWS Glue Data Catalog.+--+-- 'roleArn', 'importAssetsFromLakeFormationTagPolicyResponseDetails_roleArn' - The IAM role\'s ARN that allows AWS Data Exchange to assume the role and+-- grant and revoke permissions to AWS Lake Formation data permissions.+--+-- 'dataSetId', 'importAssetsFromLakeFormationTagPolicyResponseDetails_dataSetId' - The unique identifier for the data set associated with this import job.+--+-- 'revisionId', 'importAssetsFromLakeFormationTagPolicyResponseDetails_revisionId' - The unique identifier for the revision associated with this import job.+newImportAssetsFromLakeFormationTagPolicyResponseDetails ::+  -- | 'catalogId'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  ImportAssetsFromLakeFormationTagPolicyResponseDetails+newImportAssetsFromLakeFormationTagPolicyResponseDetails+  pCatalogId_+  pRoleArn_+  pDataSetId_+  pRevisionId_ =+    ImportAssetsFromLakeFormationTagPolicyResponseDetails'+      { database =+          Prelude.Nothing,+        table =+          Prelude.Nothing,+        catalogId =+          pCatalogId_,+        roleArn = pRoleArn_,+        dataSetId =+          pDataSetId_,+        revisionId =+          pRevisionId_+      }++-- | A structure for the database object.+importAssetsFromLakeFormationTagPolicyResponseDetails_database :: Lens.Lens' ImportAssetsFromLakeFormationTagPolicyResponseDetails (Prelude.Maybe DatabaseLFTagPolicyAndPermissions)+importAssetsFromLakeFormationTagPolicyResponseDetails_database = Lens.lens (\ImportAssetsFromLakeFormationTagPolicyResponseDetails' {database} -> database) (\s@ImportAssetsFromLakeFormationTagPolicyResponseDetails' {} a -> s {database = a} :: ImportAssetsFromLakeFormationTagPolicyResponseDetails)++-- | A structure for the table object.+importAssetsFromLakeFormationTagPolicyResponseDetails_table :: Lens.Lens' ImportAssetsFromLakeFormationTagPolicyResponseDetails (Prelude.Maybe TableLFTagPolicyAndPermissions)+importAssetsFromLakeFormationTagPolicyResponseDetails_table = Lens.lens (\ImportAssetsFromLakeFormationTagPolicyResponseDetails' {table} -> table) (\s@ImportAssetsFromLakeFormationTagPolicyResponseDetails' {} a -> s {table = a} :: ImportAssetsFromLakeFormationTagPolicyResponseDetails)++-- | The identifier for the AWS Glue Data Catalog.+importAssetsFromLakeFormationTagPolicyResponseDetails_catalogId :: Lens.Lens' ImportAssetsFromLakeFormationTagPolicyResponseDetails Prelude.Text+importAssetsFromLakeFormationTagPolicyResponseDetails_catalogId = Lens.lens (\ImportAssetsFromLakeFormationTagPolicyResponseDetails' {catalogId} -> catalogId) (\s@ImportAssetsFromLakeFormationTagPolicyResponseDetails' {} a -> s {catalogId = a} :: ImportAssetsFromLakeFormationTagPolicyResponseDetails)++-- | The IAM role\'s ARN that allows AWS Data Exchange to assume the role and+-- grant and revoke permissions to AWS Lake Formation data permissions.+importAssetsFromLakeFormationTagPolicyResponseDetails_roleArn :: Lens.Lens' ImportAssetsFromLakeFormationTagPolicyResponseDetails Prelude.Text+importAssetsFromLakeFormationTagPolicyResponseDetails_roleArn = Lens.lens (\ImportAssetsFromLakeFormationTagPolicyResponseDetails' {roleArn} -> roleArn) (\s@ImportAssetsFromLakeFormationTagPolicyResponseDetails' {} a -> s {roleArn = a} :: ImportAssetsFromLakeFormationTagPolicyResponseDetails)++-- | The unique identifier for the data set associated with this import job.+importAssetsFromLakeFormationTagPolicyResponseDetails_dataSetId :: Lens.Lens' ImportAssetsFromLakeFormationTagPolicyResponseDetails Prelude.Text+importAssetsFromLakeFormationTagPolicyResponseDetails_dataSetId = Lens.lens (\ImportAssetsFromLakeFormationTagPolicyResponseDetails' {dataSetId} -> dataSetId) (\s@ImportAssetsFromLakeFormationTagPolicyResponseDetails' {} a -> s {dataSetId = a} :: ImportAssetsFromLakeFormationTagPolicyResponseDetails)++-- | The unique identifier for the revision associated with this import job.+importAssetsFromLakeFormationTagPolicyResponseDetails_revisionId :: Lens.Lens' ImportAssetsFromLakeFormationTagPolicyResponseDetails Prelude.Text+importAssetsFromLakeFormationTagPolicyResponseDetails_revisionId = Lens.lens (\ImportAssetsFromLakeFormationTagPolicyResponseDetails' {revisionId} -> revisionId) (\s@ImportAssetsFromLakeFormationTagPolicyResponseDetails' {} a -> s {revisionId = a} :: ImportAssetsFromLakeFormationTagPolicyResponseDetails)++instance+  Data.FromJSON+    ImportAssetsFromLakeFormationTagPolicyResponseDetails+  where+  parseJSON =+    Data.withObject+      "ImportAssetsFromLakeFormationTagPolicyResponseDetails"+      ( \x ->+          ImportAssetsFromLakeFormationTagPolicyResponseDetails'+            Prelude.<$> (x Data..:? "Database")+            Prelude.<*> (x Data..:? "Table")+            Prelude.<*> (x Data..: "CatalogId")+            Prelude.<*> (x Data..: "RoleArn")+            Prelude.<*> (x Data..: "DataSetId")+            Prelude.<*> (x Data..: "RevisionId")+      )++instance+  Prelude.Hashable+    ImportAssetsFromLakeFormationTagPolicyResponseDetails+  where+  hashWithSalt+    _salt+    ImportAssetsFromLakeFormationTagPolicyResponseDetails' {..} =+      _salt+        `Prelude.hashWithSalt` database+        `Prelude.hashWithSalt` table+        `Prelude.hashWithSalt` catalogId+        `Prelude.hashWithSalt` roleArn+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` revisionId++instance+  Prelude.NFData+    ImportAssetsFromLakeFormationTagPolicyResponseDetails+  where+  rnf+    ImportAssetsFromLakeFormationTagPolicyResponseDetails' {..} =+      Prelude.rnf database+        `Prelude.seq` Prelude.rnf table+        `Prelude.seq` Prelude.rnf catalogId+        `Prelude.seq` Prelude.rnf roleArn+        `Prelude.seq` Prelude.rnf dataSetId+        `Prelude.seq` Prelude.rnf revisionId
+ gen/Amazonka/DataExchange/Types/ImportAssetsFromRedshiftDataSharesRequestDetails.hs view
@@ -0,0 +1,116 @@+{-# 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.DataExchange.Types.ImportAssetsFromRedshiftDataSharesRequestDetails+-- 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.DataExchange.Types.ImportAssetsFromRedshiftDataSharesRequestDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.RedshiftDataShareAssetSourceEntry+import qualified Amazonka.Prelude as Prelude++-- | Details from an import from Amazon Redshift datashare request.+--+-- /See:/ 'newImportAssetsFromRedshiftDataSharesRequestDetails' smart constructor.+data ImportAssetsFromRedshiftDataSharesRequestDetails = ImportAssetsFromRedshiftDataSharesRequestDetails'+  { -- | A list of Amazon Redshift datashare assets.+    assetSources :: [RedshiftDataShareAssetSourceEntry],+    -- | The unique identifier for the data set associated with this import job.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for the revision associated with this import job.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportAssetsFromRedshiftDataSharesRequestDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assetSources', 'importAssetsFromRedshiftDataSharesRequestDetails_assetSources' - A list of Amazon Redshift datashare assets.+--+-- 'dataSetId', 'importAssetsFromRedshiftDataSharesRequestDetails_dataSetId' - The unique identifier for the data set associated with this import job.+--+-- 'revisionId', 'importAssetsFromRedshiftDataSharesRequestDetails_revisionId' - The unique identifier for the revision associated with this import job.+newImportAssetsFromRedshiftDataSharesRequestDetails ::+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  ImportAssetsFromRedshiftDataSharesRequestDetails+newImportAssetsFromRedshiftDataSharesRequestDetails+  pDataSetId_+  pRevisionId_ =+    ImportAssetsFromRedshiftDataSharesRequestDetails'+      { assetSources =+          Prelude.mempty,+        dataSetId = pDataSetId_,+        revisionId = pRevisionId_+      }++-- | A list of Amazon Redshift datashare assets.+importAssetsFromRedshiftDataSharesRequestDetails_assetSources :: Lens.Lens' ImportAssetsFromRedshiftDataSharesRequestDetails [RedshiftDataShareAssetSourceEntry]+importAssetsFromRedshiftDataSharesRequestDetails_assetSources = Lens.lens (\ImportAssetsFromRedshiftDataSharesRequestDetails' {assetSources} -> assetSources) (\s@ImportAssetsFromRedshiftDataSharesRequestDetails' {} a -> s {assetSources = a} :: ImportAssetsFromRedshiftDataSharesRequestDetails) Prelude.. Lens.coerced++-- | The unique identifier for the data set associated with this import job.+importAssetsFromRedshiftDataSharesRequestDetails_dataSetId :: Lens.Lens' ImportAssetsFromRedshiftDataSharesRequestDetails Prelude.Text+importAssetsFromRedshiftDataSharesRequestDetails_dataSetId = Lens.lens (\ImportAssetsFromRedshiftDataSharesRequestDetails' {dataSetId} -> dataSetId) (\s@ImportAssetsFromRedshiftDataSharesRequestDetails' {} a -> s {dataSetId = a} :: ImportAssetsFromRedshiftDataSharesRequestDetails)++-- | The unique identifier for the revision associated with this import job.+importAssetsFromRedshiftDataSharesRequestDetails_revisionId :: Lens.Lens' ImportAssetsFromRedshiftDataSharesRequestDetails Prelude.Text+importAssetsFromRedshiftDataSharesRequestDetails_revisionId = Lens.lens (\ImportAssetsFromRedshiftDataSharesRequestDetails' {revisionId} -> revisionId) (\s@ImportAssetsFromRedshiftDataSharesRequestDetails' {} a -> s {revisionId = a} :: ImportAssetsFromRedshiftDataSharesRequestDetails)++instance+  Prelude.Hashable+    ImportAssetsFromRedshiftDataSharesRequestDetails+  where+  hashWithSalt+    _salt+    ImportAssetsFromRedshiftDataSharesRequestDetails' {..} =+      _salt+        `Prelude.hashWithSalt` assetSources+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` revisionId++instance+  Prelude.NFData+    ImportAssetsFromRedshiftDataSharesRequestDetails+  where+  rnf+    ImportAssetsFromRedshiftDataSharesRequestDetails' {..} =+      Prelude.rnf assetSources+        `Prelude.seq` Prelude.rnf dataSetId+        `Prelude.seq` Prelude.rnf revisionId++instance+  Data.ToJSON+    ImportAssetsFromRedshiftDataSharesRequestDetails+  where+  toJSON+    ImportAssetsFromRedshiftDataSharesRequestDetails' {..} =+      Data.object+        ( Prelude.catMaybes+            [ Prelude.Just ("AssetSources" Data..= assetSources),+              Prelude.Just ("DataSetId" Data..= dataSetId),+              Prelude.Just ("RevisionId" Data..= revisionId)+            ]+        )
+ gen/Amazonka/DataExchange/Types/ImportAssetsFromRedshiftDataSharesResponseDetails.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.ImportAssetsFromRedshiftDataSharesResponseDetails+-- 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.DataExchange.Types.ImportAssetsFromRedshiftDataSharesResponseDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.RedshiftDataShareAssetSourceEntry+import qualified Amazonka.Prelude as Prelude++-- | Details from an import from Amazon Redshift datashare response.+--+-- /See:/ 'newImportAssetsFromRedshiftDataSharesResponseDetails' smart constructor.+data ImportAssetsFromRedshiftDataSharesResponseDetails = ImportAssetsFromRedshiftDataSharesResponseDetails'+  { -- | A list of Amazon Redshift datashare asset sources.+    assetSources :: [RedshiftDataShareAssetSourceEntry],+    -- | The unique identifier for the data set associated with this import job.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for the revision associated with this import job.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportAssetsFromRedshiftDataSharesResponseDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assetSources', 'importAssetsFromRedshiftDataSharesResponseDetails_assetSources' - A list of Amazon Redshift datashare asset sources.+--+-- 'dataSetId', 'importAssetsFromRedshiftDataSharesResponseDetails_dataSetId' - The unique identifier for the data set associated with this import job.+--+-- 'revisionId', 'importAssetsFromRedshiftDataSharesResponseDetails_revisionId' - The unique identifier for the revision associated with this import job.+newImportAssetsFromRedshiftDataSharesResponseDetails ::+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  ImportAssetsFromRedshiftDataSharesResponseDetails+newImportAssetsFromRedshiftDataSharesResponseDetails+  pDataSetId_+  pRevisionId_ =+    ImportAssetsFromRedshiftDataSharesResponseDetails'+      { assetSources =+          Prelude.mempty,+        dataSetId = pDataSetId_,+        revisionId =+          pRevisionId_+      }++-- | A list of Amazon Redshift datashare asset sources.+importAssetsFromRedshiftDataSharesResponseDetails_assetSources :: Lens.Lens' ImportAssetsFromRedshiftDataSharesResponseDetails [RedshiftDataShareAssetSourceEntry]+importAssetsFromRedshiftDataSharesResponseDetails_assetSources = Lens.lens (\ImportAssetsFromRedshiftDataSharesResponseDetails' {assetSources} -> assetSources) (\s@ImportAssetsFromRedshiftDataSharesResponseDetails' {} a -> s {assetSources = a} :: ImportAssetsFromRedshiftDataSharesResponseDetails) Prelude.. Lens.coerced++-- | The unique identifier for the data set associated with this import job.+importAssetsFromRedshiftDataSharesResponseDetails_dataSetId :: Lens.Lens' ImportAssetsFromRedshiftDataSharesResponseDetails Prelude.Text+importAssetsFromRedshiftDataSharesResponseDetails_dataSetId = Lens.lens (\ImportAssetsFromRedshiftDataSharesResponseDetails' {dataSetId} -> dataSetId) (\s@ImportAssetsFromRedshiftDataSharesResponseDetails' {} a -> s {dataSetId = a} :: ImportAssetsFromRedshiftDataSharesResponseDetails)++-- | The unique identifier for the revision associated with this import job.+importAssetsFromRedshiftDataSharesResponseDetails_revisionId :: Lens.Lens' ImportAssetsFromRedshiftDataSharesResponseDetails Prelude.Text+importAssetsFromRedshiftDataSharesResponseDetails_revisionId = Lens.lens (\ImportAssetsFromRedshiftDataSharesResponseDetails' {revisionId} -> revisionId) (\s@ImportAssetsFromRedshiftDataSharesResponseDetails' {} a -> s {revisionId = a} :: ImportAssetsFromRedshiftDataSharesResponseDetails)++instance+  Data.FromJSON+    ImportAssetsFromRedshiftDataSharesResponseDetails+  where+  parseJSON =+    Data.withObject+      "ImportAssetsFromRedshiftDataSharesResponseDetails"+      ( \x ->+          ImportAssetsFromRedshiftDataSharesResponseDetails'+            Prelude.<$> (x Data..:? "AssetSources" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "DataSetId")+            Prelude.<*> (x Data..: "RevisionId")+      )++instance+  Prelude.Hashable+    ImportAssetsFromRedshiftDataSharesResponseDetails+  where+  hashWithSalt+    _salt+    ImportAssetsFromRedshiftDataSharesResponseDetails' {..} =+      _salt+        `Prelude.hashWithSalt` assetSources+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` revisionId++instance+  Prelude.NFData+    ImportAssetsFromRedshiftDataSharesResponseDetails+  where+  rnf+    ImportAssetsFromRedshiftDataSharesResponseDetails' {..} =+      Prelude.rnf assetSources+        `Prelude.seq` Prelude.rnf dataSetId+        `Prelude.seq` Prelude.rnf revisionId
+ gen/Amazonka/DataExchange/Types/ImportAssetsFromS3RequestDetails.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.ImportAssetsFromS3RequestDetails+-- 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.DataExchange.Types.ImportAssetsFromS3RequestDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.AssetSourceEntry+import qualified Amazonka.Prelude as Prelude++-- | Details of the operation to be performed by the job.+--+-- /See:/ 'newImportAssetsFromS3RequestDetails' smart constructor.+data ImportAssetsFromS3RequestDetails = ImportAssetsFromS3RequestDetails'+  { -- | Is a list of Amazon S3 bucket and object key pairs.+    assetSources :: [AssetSourceEntry],+    -- | The unique identifier for the data set associated with this import job.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for the revision associated with this import+    -- request.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportAssetsFromS3RequestDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assetSources', 'importAssetsFromS3RequestDetails_assetSources' - Is a list of Amazon S3 bucket and object key pairs.+--+-- 'dataSetId', 'importAssetsFromS3RequestDetails_dataSetId' - The unique identifier for the data set associated with this import job.+--+-- 'revisionId', 'importAssetsFromS3RequestDetails_revisionId' - The unique identifier for the revision associated with this import+-- request.+newImportAssetsFromS3RequestDetails ::+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  ImportAssetsFromS3RequestDetails+newImportAssetsFromS3RequestDetails+  pDataSetId_+  pRevisionId_ =+    ImportAssetsFromS3RequestDetails'+      { assetSources =+          Prelude.mempty,+        dataSetId = pDataSetId_,+        revisionId = pRevisionId_+      }++-- | Is a list of Amazon S3 bucket and object key pairs.+importAssetsFromS3RequestDetails_assetSources :: Lens.Lens' ImportAssetsFromS3RequestDetails [AssetSourceEntry]+importAssetsFromS3RequestDetails_assetSources = Lens.lens (\ImportAssetsFromS3RequestDetails' {assetSources} -> assetSources) (\s@ImportAssetsFromS3RequestDetails' {} a -> s {assetSources = a} :: ImportAssetsFromS3RequestDetails) Prelude.. Lens.coerced++-- | The unique identifier for the data set associated with this import job.+importAssetsFromS3RequestDetails_dataSetId :: Lens.Lens' ImportAssetsFromS3RequestDetails Prelude.Text+importAssetsFromS3RequestDetails_dataSetId = Lens.lens (\ImportAssetsFromS3RequestDetails' {dataSetId} -> dataSetId) (\s@ImportAssetsFromS3RequestDetails' {} a -> s {dataSetId = a} :: ImportAssetsFromS3RequestDetails)++-- | The unique identifier for the revision associated with this import+-- request.+importAssetsFromS3RequestDetails_revisionId :: Lens.Lens' ImportAssetsFromS3RequestDetails Prelude.Text+importAssetsFromS3RequestDetails_revisionId = Lens.lens (\ImportAssetsFromS3RequestDetails' {revisionId} -> revisionId) (\s@ImportAssetsFromS3RequestDetails' {} a -> s {revisionId = a} :: ImportAssetsFromS3RequestDetails)++instance+  Prelude.Hashable+    ImportAssetsFromS3RequestDetails+  where+  hashWithSalt+    _salt+    ImportAssetsFromS3RequestDetails' {..} =+      _salt+        `Prelude.hashWithSalt` assetSources+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` revisionId++instance+  Prelude.NFData+    ImportAssetsFromS3RequestDetails+  where+  rnf ImportAssetsFromS3RequestDetails' {..} =+    Prelude.rnf assetSources+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId++instance Data.ToJSON ImportAssetsFromS3RequestDetails where+  toJSON ImportAssetsFromS3RequestDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("AssetSources" Data..= assetSources),+            Prelude.Just ("DataSetId" Data..= dataSetId),+            Prelude.Just ("RevisionId" Data..= revisionId)+          ]+      )
+ gen/Amazonka/DataExchange/Types/ImportAssetsFromS3ResponseDetails.hs view
@@ -0,0 +1,118 @@+{-# 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.DataExchange.Types.ImportAssetsFromS3ResponseDetails+-- 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.DataExchange.Types.ImportAssetsFromS3ResponseDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.AssetSourceEntry+import qualified Amazonka.Prelude as Prelude++-- | Details from an import from Amazon S3 response.+--+-- /See:/ 'newImportAssetsFromS3ResponseDetails' smart constructor.+data ImportAssetsFromS3ResponseDetails = ImportAssetsFromS3ResponseDetails'+  { -- | Is a list of Amazon S3 bucket and object key pairs.+    assetSources :: [AssetSourceEntry],+    -- | The unique identifier for the data set associated with this import job.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for the revision associated with this import+    -- response.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportAssetsFromS3ResponseDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assetSources', 'importAssetsFromS3ResponseDetails_assetSources' - Is a list of Amazon S3 bucket and object key pairs.+--+-- 'dataSetId', 'importAssetsFromS3ResponseDetails_dataSetId' - The unique identifier for the data set associated with this import job.+--+-- 'revisionId', 'importAssetsFromS3ResponseDetails_revisionId' - The unique identifier for the revision associated with this import+-- response.+newImportAssetsFromS3ResponseDetails ::+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  ImportAssetsFromS3ResponseDetails+newImportAssetsFromS3ResponseDetails+  pDataSetId_+  pRevisionId_ =+    ImportAssetsFromS3ResponseDetails'+      { assetSources =+          Prelude.mempty,+        dataSetId = pDataSetId_,+        revisionId = pRevisionId_+      }++-- | Is a list of Amazon S3 bucket and object key pairs.+importAssetsFromS3ResponseDetails_assetSources :: Lens.Lens' ImportAssetsFromS3ResponseDetails [AssetSourceEntry]+importAssetsFromS3ResponseDetails_assetSources = Lens.lens (\ImportAssetsFromS3ResponseDetails' {assetSources} -> assetSources) (\s@ImportAssetsFromS3ResponseDetails' {} a -> s {assetSources = a} :: ImportAssetsFromS3ResponseDetails) Prelude.. Lens.coerced++-- | The unique identifier for the data set associated with this import job.+importAssetsFromS3ResponseDetails_dataSetId :: Lens.Lens' ImportAssetsFromS3ResponseDetails Prelude.Text+importAssetsFromS3ResponseDetails_dataSetId = Lens.lens (\ImportAssetsFromS3ResponseDetails' {dataSetId} -> dataSetId) (\s@ImportAssetsFromS3ResponseDetails' {} a -> s {dataSetId = a} :: ImportAssetsFromS3ResponseDetails)++-- | The unique identifier for the revision associated with this import+-- response.+importAssetsFromS3ResponseDetails_revisionId :: Lens.Lens' ImportAssetsFromS3ResponseDetails Prelude.Text+importAssetsFromS3ResponseDetails_revisionId = Lens.lens (\ImportAssetsFromS3ResponseDetails' {revisionId} -> revisionId) (\s@ImportAssetsFromS3ResponseDetails' {} a -> s {revisionId = a} :: ImportAssetsFromS3ResponseDetails)++instance+  Data.FromJSON+    ImportAssetsFromS3ResponseDetails+  where+  parseJSON =+    Data.withObject+      "ImportAssetsFromS3ResponseDetails"+      ( \x ->+          ImportAssetsFromS3ResponseDetails'+            Prelude.<$> (x Data..:? "AssetSources" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "DataSetId")+            Prelude.<*> (x Data..: "RevisionId")+      )++instance+  Prelude.Hashable+    ImportAssetsFromS3ResponseDetails+  where+  hashWithSalt+    _salt+    ImportAssetsFromS3ResponseDetails' {..} =+      _salt+        `Prelude.hashWithSalt` assetSources+        `Prelude.hashWithSalt` dataSetId+        `Prelude.hashWithSalt` revisionId++instance+  Prelude.NFData+    ImportAssetsFromS3ResponseDetails+  where+  rnf ImportAssetsFromS3ResponseDetails' {..} =+    Prelude.rnf assetSources+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId
+ gen/Amazonka/DataExchange/Types/JobEntry.hs view
@@ -0,0 +1,187 @@+{-# 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.DataExchange.Types.JobEntry+-- 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.DataExchange.Types.JobEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.JobError+import Amazonka.DataExchange.Types.ResponseDetails+import Amazonka.DataExchange.Types.State+import Amazonka.DataExchange.Types.Type+import qualified Amazonka.Prelude as Prelude++-- | AWS Data Exchange Jobs are asynchronous import or export operations used+-- to create or copy assets. A data set owner can both import and export as+-- they see fit. Someone with an entitlement to a data set can only export.+-- Jobs are deleted 90 days after they are created.+--+-- /See:/ 'newJobEntry' smart constructor.+data JobEntry = JobEntry'+  { -- | Errors for jobs.+    errors :: Prelude.Maybe [JobError],+    -- | The ARN for the job.+    arn :: Prelude.Text,+    -- | The date and time that the job was created, in ISO 8601 format.+    createdAt :: Data.ISO8601,+    -- | Details of the operation to be performed by the job, such as export+    -- destination details or import source details.+    details :: ResponseDetails,+    -- | The unique identifier for the job.+    id :: Prelude.Text,+    -- | The state of the job.+    state :: State,+    -- | The job type.+    type' :: Type,+    -- | The date and time that the job was last updated, in ISO 8601 format.+    updatedAt :: Data.ISO8601+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errors', 'jobEntry_errors' - Errors for jobs.+--+-- 'arn', 'jobEntry_arn' - The ARN for the job.+--+-- 'createdAt', 'jobEntry_createdAt' - The date and time that the job was created, in ISO 8601 format.+--+-- 'details', 'jobEntry_details' - Details of the operation to be performed by the job, such as export+-- destination details or import source details.+--+-- 'id', 'jobEntry_id' - The unique identifier for the job.+--+-- 'state', 'jobEntry_state' - The state of the job.+--+-- 'type'', 'jobEntry_type' - The job type.+--+-- 'updatedAt', 'jobEntry_updatedAt' - The date and time that the job was last updated, in ISO 8601 format.+newJobEntry ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'createdAt'+  Prelude.UTCTime ->+  -- | 'details'+  ResponseDetails ->+  -- | 'id'+  Prelude.Text ->+  -- | 'state'+  State ->+  -- | 'type''+  Type ->+  -- | 'updatedAt'+  Prelude.UTCTime ->+  JobEntry+newJobEntry+  pArn_+  pCreatedAt_+  pDetails_+  pId_+  pState_+  pType_+  pUpdatedAt_ =+    JobEntry'+      { errors = Prelude.Nothing,+        arn = pArn_,+        createdAt = Data._Time Lens.# pCreatedAt_,+        details = pDetails_,+        id = pId_,+        state = pState_,+        type' = pType_,+        updatedAt = Data._Time Lens.# pUpdatedAt_+      }++-- | Errors for jobs.+jobEntry_errors :: Lens.Lens' JobEntry (Prelude.Maybe [JobError])+jobEntry_errors = Lens.lens (\JobEntry' {errors} -> errors) (\s@JobEntry' {} a -> s {errors = a} :: JobEntry) Prelude.. Lens.mapping Lens.coerced++-- | The ARN for the job.+jobEntry_arn :: Lens.Lens' JobEntry Prelude.Text+jobEntry_arn = Lens.lens (\JobEntry' {arn} -> arn) (\s@JobEntry' {} a -> s {arn = a} :: JobEntry)++-- | The date and time that the job was created, in ISO 8601 format.+jobEntry_createdAt :: Lens.Lens' JobEntry Prelude.UTCTime+jobEntry_createdAt = Lens.lens (\JobEntry' {createdAt} -> createdAt) (\s@JobEntry' {} a -> s {createdAt = a} :: JobEntry) Prelude.. Data._Time++-- | Details of the operation to be performed by the job, such as export+-- destination details or import source details.+jobEntry_details :: Lens.Lens' JobEntry ResponseDetails+jobEntry_details = Lens.lens (\JobEntry' {details} -> details) (\s@JobEntry' {} a -> s {details = a} :: JobEntry)++-- | The unique identifier for the job.+jobEntry_id :: Lens.Lens' JobEntry Prelude.Text+jobEntry_id = Lens.lens (\JobEntry' {id} -> id) (\s@JobEntry' {} a -> s {id = a} :: JobEntry)++-- | The state of the job.+jobEntry_state :: Lens.Lens' JobEntry State+jobEntry_state = Lens.lens (\JobEntry' {state} -> state) (\s@JobEntry' {} a -> s {state = a} :: JobEntry)++-- | The job type.+jobEntry_type :: Lens.Lens' JobEntry Type+jobEntry_type = Lens.lens (\JobEntry' {type'} -> type') (\s@JobEntry' {} a -> s {type' = a} :: JobEntry)++-- | The date and time that the job was last updated, in ISO 8601 format.+jobEntry_updatedAt :: Lens.Lens' JobEntry Prelude.UTCTime+jobEntry_updatedAt = Lens.lens (\JobEntry' {updatedAt} -> updatedAt) (\s@JobEntry' {} a -> s {updatedAt = a} :: JobEntry) Prelude.. Data._Time++instance Data.FromJSON JobEntry where+  parseJSON =+    Data.withObject+      "JobEntry"+      ( \x ->+          JobEntry'+            Prelude.<$> (x Data..:? "Errors" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Arn")+            Prelude.<*> (x Data..: "CreatedAt")+            Prelude.<*> (x Data..: "Details")+            Prelude.<*> (x Data..: "Id")+            Prelude.<*> (x Data..: "State")+            Prelude.<*> (x Data..: "Type")+            Prelude.<*> (x Data..: "UpdatedAt")+      )++instance Prelude.Hashable JobEntry where+  hashWithSalt _salt JobEntry' {..} =+    _salt+      `Prelude.hashWithSalt` errors+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` details+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData JobEntry where+  rnf JobEntry' {..} =+    Prelude.rnf errors+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf details+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/DataExchange/Types/JobError.hs view
@@ -0,0 +1,152 @@+{-# 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.DataExchange.Types.JobError+-- 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.DataExchange.Types.JobError where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.Code+import Amazonka.DataExchange.Types.Details+import Amazonka.DataExchange.Types.JobErrorLimitName+import Amazonka.DataExchange.Types.JobErrorResourceTypes+import qualified Amazonka.Prelude as Prelude++-- | An error that occurred with the job request.+--+-- /See:/ 'newJobError' smart constructor.+data JobError = JobError'+  { -- | The details about the job error.+    details :: Prelude.Maybe Details,+    -- | The name of the limit that was reached.+    limitName :: Prelude.Maybe JobErrorLimitName,+    -- | The value of the exceeded limit.+    limitValue :: Prelude.Maybe Prelude.Double,+    -- | The unique identifier for the resource related to the error.+    resourceId :: Prelude.Maybe Prelude.Text,+    -- | The type of resource related to the error.+    resourceType :: Prelude.Maybe JobErrorResourceTypes,+    -- | The code for the job error.+    code :: Code,+    -- | The message related to the job error.+    message :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobError' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'details', 'jobError_details' - The details about the job error.+--+-- 'limitName', 'jobError_limitName' - The name of the limit that was reached.+--+-- 'limitValue', 'jobError_limitValue' - The value of the exceeded limit.+--+-- 'resourceId', 'jobError_resourceId' - The unique identifier for the resource related to the error.+--+-- 'resourceType', 'jobError_resourceType' - The type of resource related to the error.+--+-- 'code', 'jobError_code' - The code for the job error.+--+-- 'message', 'jobError_message' - The message related to the job error.+newJobError ::+  -- | 'code'+  Code ->+  -- | 'message'+  Prelude.Text ->+  JobError+newJobError pCode_ pMessage_ =+  JobError'+    { details = Prelude.Nothing,+      limitName = Prelude.Nothing,+      limitValue = Prelude.Nothing,+      resourceId = Prelude.Nothing,+      resourceType = Prelude.Nothing,+      code = pCode_,+      message = pMessage_+    }++-- | The details about the job error.+jobError_details :: Lens.Lens' JobError (Prelude.Maybe Details)+jobError_details = Lens.lens (\JobError' {details} -> details) (\s@JobError' {} a -> s {details = a} :: JobError)++-- | The name of the limit that was reached.+jobError_limitName :: Lens.Lens' JobError (Prelude.Maybe JobErrorLimitName)+jobError_limitName = Lens.lens (\JobError' {limitName} -> limitName) (\s@JobError' {} a -> s {limitName = a} :: JobError)++-- | The value of the exceeded limit.+jobError_limitValue :: Lens.Lens' JobError (Prelude.Maybe Prelude.Double)+jobError_limitValue = Lens.lens (\JobError' {limitValue} -> limitValue) (\s@JobError' {} a -> s {limitValue = a} :: JobError)++-- | The unique identifier for the resource related to the error.+jobError_resourceId :: Lens.Lens' JobError (Prelude.Maybe Prelude.Text)+jobError_resourceId = Lens.lens (\JobError' {resourceId} -> resourceId) (\s@JobError' {} a -> s {resourceId = a} :: JobError)++-- | The type of resource related to the error.+jobError_resourceType :: Lens.Lens' JobError (Prelude.Maybe JobErrorResourceTypes)+jobError_resourceType = Lens.lens (\JobError' {resourceType} -> resourceType) (\s@JobError' {} a -> s {resourceType = a} :: JobError)++-- | The code for the job error.+jobError_code :: Lens.Lens' JobError Code+jobError_code = Lens.lens (\JobError' {code} -> code) (\s@JobError' {} a -> s {code = a} :: JobError)++-- | The message related to the job error.+jobError_message :: Lens.Lens' JobError Prelude.Text+jobError_message = Lens.lens (\JobError' {message} -> message) (\s@JobError' {} a -> s {message = a} :: JobError)++instance Data.FromJSON JobError where+  parseJSON =+    Data.withObject+      "JobError"+      ( \x ->+          JobError'+            Prelude.<$> (x Data..:? "Details")+            Prelude.<*> (x Data..:? "LimitName")+            Prelude.<*> (x Data..:? "LimitValue")+            Prelude.<*> (x Data..:? "ResourceId")+            Prelude.<*> (x Data..:? "ResourceType")+            Prelude.<*> (x Data..: "Code")+            Prelude.<*> (x Data..: "Message")+      )++instance Prelude.Hashable JobError where+  hashWithSalt _salt JobError' {..} =+    _salt+      `Prelude.hashWithSalt` details+      `Prelude.hashWithSalt` limitName+      `Prelude.hashWithSalt` limitValue+      `Prelude.hashWithSalt` resourceId+      `Prelude.hashWithSalt` resourceType+      `Prelude.hashWithSalt` code+      `Prelude.hashWithSalt` message++instance Prelude.NFData JobError where+  rnf JobError' {..} =+    Prelude.rnf details+      `Prelude.seq` Prelude.rnf limitName+      `Prelude.seq` Prelude.rnf limitValue+      `Prelude.seq` Prelude.rnf resourceId+      `Prelude.seq` Prelude.rnf resourceType+      `Prelude.seq` Prelude.rnf code+      `Prelude.seq` Prelude.rnf message
+ gen/Amazonka/DataExchange/Types/JobErrorLimitName.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.DataExchange.Types.JobErrorLimitName+-- 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.DataExchange.Types.JobErrorLimitName+  ( JobErrorLimitName+      ( ..,+        JobErrorLimitName_AWS_Lake_Formation_data_permission_assets_per_revision,+        JobErrorLimitName_Amazon_Redshift_datashare_assets_per_revision,+        JobErrorLimitName_Amazon_S3_data_access_assets_per_revision,+        JobErrorLimitName_Asset_size_in_GB,+        JobErrorLimitName_Assets_per_revision+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype JobErrorLimitName = JobErrorLimitName'+  { fromJobErrorLimitName ::+      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 JobErrorLimitName_AWS_Lake_Formation_data_permission_assets_per_revision :: JobErrorLimitName+pattern JobErrorLimitName_AWS_Lake_Formation_data_permission_assets_per_revision = JobErrorLimitName' "AWS Lake Formation data permission assets per revision"++pattern JobErrorLimitName_Amazon_Redshift_datashare_assets_per_revision :: JobErrorLimitName+pattern JobErrorLimitName_Amazon_Redshift_datashare_assets_per_revision = JobErrorLimitName' "Amazon Redshift datashare assets per revision"++pattern JobErrorLimitName_Amazon_S3_data_access_assets_per_revision :: JobErrorLimitName+pattern JobErrorLimitName_Amazon_S3_data_access_assets_per_revision = JobErrorLimitName' "Amazon S3 data access assets per revision"++pattern JobErrorLimitName_Asset_size_in_GB :: JobErrorLimitName+pattern JobErrorLimitName_Asset_size_in_GB = JobErrorLimitName' "Asset size in GB"++pattern JobErrorLimitName_Assets_per_revision :: JobErrorLimitName+pattern JobErrorLimitName_Assets_per_revision = JobErrorLimitName' "Assets per revision"++{-# COMPLETE+  JobErrorLimitName_AWS_Lake_Formation_data_permission_assets_per_revision,+  JobErrorLimitName_Amazon_Redshift_datashare_assets_per_revision,+  JobErrorLimitName_Amazon_S3_data_access_assets_per_revision,+  JobErrorLimitName_Asset_size_in_GB,+  JobErrorLimitName_Assets_per_revision,+  JobErrorLimitName'+  #-}
+ gen/Amazonka/DataExchange/Types/JobErrorResourceTypes.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.DataExchange.Types.JobErrorResourceTypes+-- 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.DataExchange.Types.JobErrorResourceTypes+  ( JobErrorResourceTypes+      ( ..,+        JobErrorResourceTypes_ASSET,+        JobErrorResourceTypes_DATA_SET,+        JobErrorResourceTypes_REVISION+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype JobErrorResourceTypes = JobErrorResourceTypes'+  { fromJobErrorResourceTypes ::+      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 JobErrorResourceTypes_ASSET :: JobErrorResourceTypes+pattern JobErrorResourceTypes_ASSET = JobErrorResourceTypes' "ASSET"++pattern JobErrorResourceTypes_DATA_SET :: JobErrorResourceTypes+pattern JobErrorResourceTypes_DATA_SET = JobErrorResourceTypes' "DATA_SET"++pattern JobErrorResourceTypes_REVISION :: JobErrorResourceTypes+pattern JobErrorResourceTypes_REVISION = JobErrorResourceTypes' "REVISION"++{-# COMPLETE+  JobErrorResourceTypes_ASSET,+  JobErrorResourceTypes_DATA_SET,+  JobErrorResourceTypes_REVISION,+  JobErrorResourceTypes'+  #-}
+ gen/Amazonka/DataExchange/Types/LFPermission.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.DataExchange.Types.LFPermission+-- 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.DataExchange.Types.LFPermission+  ( LFPermission+      ( ..,+        LFPermission_DESCRIBE,+        LFPermission_SELECT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LFPermission = LFPermission'+  { fromLFPermission ::+      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 LFPermission_DESCRIBE :: LFPermission+pattern LFPermission_DESCRIBE = LFPermission' "DESCRIBE"++pattern LFPermission_SELECT :: LFPermission+pattern LFPermission_SELECT = LFPermission' "SELECT"++{-# COMPLETE+  LFPermission_DESCRIBE,+  LFPermission_SELECT,+  LFPermission'+  #-}
+ gen/Amazonka/DataExchange/Types/LFResourceDetails.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.LFResourceDetails+-- 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.DataExchange.Types.LFResourceDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.DatabaseLFTagPolicy+import Amazonka.DataExchange.Types.TableLFTagPolicy+import qualified Amazonka.Prelude as Prelude++-- | Details about the AWS Lake Formation resource (Table or Database)+-- included in the AWS Lake Formation data permission.+--+-- /See:/ 'newLFResourceDetails' smart constructor.+data LFResourceDetails = LFResourceDetails'+  { -- | Details about the database resource included in the AWS Lake Formation+    -- data permission.+    database :: Prelude.Maybe DatabaseLFTagPolicy,+    -- | Details about the table resource included in the AWS Lake Formation data+    -- permission.+    table :: Prelude.Maybe TableLFTagPolicy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LFResourceDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'database', 'lFResourceDetails_database' - Details about the database resource included in the AWS Lake Formation+-- data permission.+--+-- 'table', 'lFResourceDetails_table' - Details about the table resource included in the AWS Lake Formation data+-- permission.+newLFResourceDetails ::+  LFResourceDetails+newLFResourceDetails =+  LFResourceDetails'+    { database = Prelude.Nothing,+      table = Prelude.Nothing+    }++-- | Details about the database resource included in the AWS Lake Formation+-- data permission.+lFResourceDetails_database :: Lens.Lens' LFResourceDetails (Prelude.Maybe DatabaseLFTagPolicy)+lFResourceDetails_database = Lens.lens (\LFResourceDetails' {database} -> database) (\s@LFResourceDetails' {} a -> s {database = a} :: LFResourceDetails)++-- | Details about the table resource included in the AWS Lake Formation data+-- permission.+lFResourceDetails_table :: Lens.Lens' LFResourceDetails (Prelude.Maybe TableLFTagPolicy)+lFResourceDetails_table = Lens.lens (\LFResourceDetails' {table} -> table) (\s@LFResourceDetails' {} a -> s {table = a} :: LFResourceDetails)++instance Data.FromJSON LFResourceDetails where+  parseJSON =+    Data.withObject+      "LFResourceDetails"+      ( \x ->+          LFResourceDetails'+            Prelude.<$> (x Data..:? "Database")+            Prelude.<*> (x Data..:? "Table")+      )++instance Prelude.Hashable LFResourceDetails where+  hashWithSalt _salt LFResourceDetails' {..} =+    _salt+      `Prelude.hashWithSalt` database+      `Prelude.hashWithSalt` table++instance Prelude.NFData LFResourceDetails where+  rnf LFResourceDetails' {..} =+    Prelude.rnf database+      `Prelude.seq` Prelude.rnf table
+ gen/Amazonka/DataExchange/Types/LFResourceType.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.DataExchange.Types.LFResourceType+-- 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.DataExchange.Types.LFResourceType+  ( LFResourceType+      ( ..,+        LFResourceType_DATABASE,+        LFResourceType_TABLE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LFResourceType = LFResourceType'+  { fromLFResourceType ::+      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 LFResourceType_DATABASE :: LFResourceType+pattern LFResourceType_DATABASE = LFResourceType' "DATABASE"++pattern LFResourceType_TABLE :: LFResourceType+pattern LFResourceType_TABLE = LFResourceType' "TABLE"++{-# COMPLETE+  LFResourceType_DATABASE,+  LFResourceType_TABLE,+  LFResourceType'+  #-}
+ gen/Amazonka/DataExchange/Types/LFTag.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.LFTag+-- 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.DataExchange.Types.LFTag 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 structure that allows an LF-admin to grant permissions on certain+-- conditions.+--+-- /See:/ 'newLFTag' smart constructor.+data LFTag = LFTag'+  { -- | The key name for the LF-tag.+    tagKey :: Prelude.Text,+    -- | A list of LF-tag values.+    tagValues :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LFTag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tagKey', 'lFTag_tagKey' - The key name for the LF-tag.+--+-- 'tagValues', 'lFTag_tagValues' - A list of LF-tag values.+newLFTag ::+  -- | 'tagKey'+  Prelude.Text ->+  LFTag+newLFTag pTagKey_ =+  LFTag'+    { tagKey = pTagKey_,+      tagValues = Prelude.mempty+    }++-- | The key name for the LF-tag.+lFTag_tagKey :: Lens.Lens' LFTag Prelude.Text+lFTag_tagKey = Lens.lens (\LFTag' {tagKey} -> tagKey) (\s@LFTag' {} a -> s {tagKey = a} :: LFTag)++-- | A list of LF-tag values.+lFTag_tagValues :: Lens.Lens' LFTag [Prelude.Text]+lFTag_tagValues = Lens.lens (\LFTag' {tagValues} -> tagValues) (\s@LFTag' {} a -> s {tagValues = a} :: LFTag) Prelude.. Lens.coerced++instance Data.FromJSON LFTag where+  parseJSON =+    Data.withObject+      "LFTag"+      ( \x ->+          LFTag'+            Prelude.<$> (x Data..: "TagKey")+            Prelude.<*> (x Data..:? "TagValues" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable LFTag where+  hashWithSalt _salt LFTag' {..} =+    _salt+      `Prelude.hashWithSalt` tagKey+      `Prelude.hashWithSalt` tagValues++instance Prelude.NFData LFTag where+  rnf LFTag' {..} =+    Prelude.rnf tagKey+      `Prelude.seq` Prelude.rnf tagValues++instance Data.ToJSON LFTag where+  toJSON LFTag' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("TagKey" Data..= tagKey),+            Prelude.Just ("TagValues" Data..= tagValues)+          ]+      )
+ gen/Amazonka/DataExchange/Types/LFTagPolicyDetails.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.LFTagPolicyDetails+-- 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.DataExchange.Types.LFTagPolicyDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.LFResourceDetails+import Amazonka.DataExchange.Types.LFResourceType+import qualified Amazonka.Prelude as Prelude++-- | Details about the LF-tag policy.+--+-- /See:/ 'newLFTagPolicyDetails' smart constructor.+data LFTagPolicyDetails = LFTagPolicyDetails'+  { -- | The identifier for the AWS Glue Data Catalog.+    catalogId :: Prelude.Text,+    -- | The resource type for which the LF-tag policy applies.+    resourceType :: LFResourceType,+    -- | Details for the Lake Formation Resources included in the LF-tag policy.+    resourceDetails :: LFResourceDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LFTagPolicyDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'lFTagPolicyDetails_catalogId' - The identifier for the AWS Glue Data Catalog.+--+-- 'resourceType', 'lFTagPolicyDetails_resourceType' - The resource type for which the LF-tag policy applies.+--+-- 'resourceDetails', 'lFTagPolicyDetails_resourceDetails' - Details for the Lake Formation Resources included in the LF-tag policy.+newLFTagPolicyDetails ::+  -- | 'catalogId'+  Prelude.Text ->+  -- | 'resourceType'+  LFResourceType ->+  -- | 'resourceDetails'+  LFResourceDetails ->+  LFTagPolicyDetails+newLFTagPolicyDetails+  pCatalogId_+  pResourceType_+  pResourceDetails_ =+    LFTagPolicyDetails'+      { catalogId = pCatalogId_,+        resourceType = pResourceType_,+        resourceDetails = pResourceDetails_+      }++-- | The identifier for the AWS Glue Data Catalog.+lFTagPolicyDetails_catalogId :: Lens.Lens' LFTagPolicyDetails Prelude.Text+lFTagPolicyDetails_catalogId = Lens.lens (\LFTagPolicyDetails' {catalogId} -> catalogId) (\s@LFTagPolicyDetails' {} a -> s {catalogId = a} :: LFTagPolicyDetails)++-- | The resource type for which the LF-tag policy applies.+lFTagPolicyDetails_resourceType :: Lens.Lens' LFTagPolicyDetails LFResourceType+lFTagPolicyDetails_resourceType = Lens.lens (\LFTagPolicyDetails' {resourceType} -> resourceType) (\s@LFTagPolicyDetails' {} a -> s {resourceType = a} :: LFTagPolicyDetails)++-- | Details for the Lake Formation Resources included in the LF-tag policy.+lFTagPolicyDetails_resourceDetails :: Lens.Lens' LFTagPolicyDetails LFResourceDetails+lFTagPolicyDetails_resourceDetails = Lens.lens (\LFTagPolicyDetails' {resourceDetails} -> resourceDetails) (\s@LFTagPolicyDetails' {} a -> s {resourceDetails = a} :: LFTagPolicyDetails)++instance Data.FromJSON LFTagPolicyDetails where+  parseJSON =+    Data.withObject+      "LFTagPolicyDetails"+      ( \x ->+          LFTagPolicyDetails'+            Prelude.<$> (x Data..: "CatalogId")+            Prelude.<*> (x Data..: "ResourceType")+            Prelude.<*> (x Data..: "ResourceDetails")+      )++instance Prelude.Hashable LFTagPolicyDetails where+  hashWithSalt _salt LFTagPolicyDetails' {..} =+    _salt+      `Prelude.hashWithSalt` catalogId+      `Prelude.hashWithSalt` resourceType+      `Prelude.hashWithSalt` resourceDetails++instance Prelude.NFData LFTagPolicyDetails where+  rnf LFTagPolicyDetails' {..} =+    Prelude.rnf catalogId+      `Prelude.seq` Prelude.rnf resourceType+      `Prelude.seq` Prelude.rnf resourceDetails
+ gen/Amazonka/DataExchange/Types/LakeFormationDataPermissionAsset.hs view
@@ -0,0 +1,134 @@+{-# 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.DataExchange.Types.LakeFormationDataPermissionAsset+-- 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.DataExchange.Types.LakeFormationDataPermissionAsset where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.LFPermission+import Amazonka.DataExchange.Types.LakeFormationDataPermissionDetails+import Amazonka.DataExchange.Types.LakeFormationDataPermissionType+import qualified Amazonka.Prelude as Prelude++-- | The AWS Lake Formation data permission asset.+--+-- /See:/ 'newLakeFormationDataPermissionAsset' smart constructor.+data LakeFormationDataPermissionAsset = LakeFormationDataPermissionAsset'+  { -- | The IAM role\'s ARN that allows AWS Data Exchange to assume the role and+    -- grant and revoke permissions to AWS Lake Formation data permissions.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | Details about the AWS Lake Formation data permission.+    lakeFormationDataPermissionDetails :: LakeFormationDataPermissionDetails,+    -- | The data permission type.+    lakeFormationDataPermissionType :: LakeFormationDataPermissionType,+    -- | The permissions granted to the subscribers on the resource.+    permissions :: [LFPermission]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LakeFormationDataPermissionAsset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'roleArn', 'lakeFormationDataPermissionAsset_roleArn' - The IAM role\'s ARN that allows AWS Data Exchange to assume the role and+-- grant and revoke permissions to AWS Lake Formation data permissions.+--+-- 'lakeFormationDataPermissionDetails', 'lakeFormationDataPermissionAsset_lakeFormationDataPermissionDetails' - Details about the AWS Lake Formation data permission.+--+-- 'lakeFormationDataPermissionType', 'lakeFormationDataPermissionAsset_lakeFormationDataPermissionType' - The data permission type.+--+-- 'permissions', 'lakeFormationDataPermissionAsset_permissions' - The permissions granted to the subscribers on the resource.+newLakeFormationDataPermissionAsset ::+  -- | 'lakeFormationDataPermissionDetails'+  LakeFormationDataPermissionDetails ->+  -- | 'lakeFormationDataPermissionType'+  LakeFormationDataPermissionType ->+  LakeFormationDataPermissionAsset+newLakeFormationDataPermissionAsset+  pLakeFormationDataPermissionDetails_+  pLakeFormationDataPermissionType_ =+    LakeFormationDataPermissionAsset'+      { roleArn =+          Prelude.Nothing,+        lakeFormationDataPermissionDetails =+          pLakeFormationDataPermissionDetails_,+        lakeFormationDataPermissionType =+          pLakeFormationDataPermissionType_,+        permissions = Prelude.mempty+      }++-- | The IAM role\'s ARN that allows AWS Data Exchange to assume the role and+-- grant and revoke permissions to AWS Lake Formation data permissions.+lakeFormationDataPermissionAsset_roleArn :: Lens.Lens' LakeFormationDataPermissionAsset (Prelude.Maybe Prelude.Text)+lakeFormationDataPermissionAsset_roleArn = Lens.lens (\LakeFormationDataPermissionAsset' {roleArn} -> roleArn) (\s@LakeFormationDataPermissionAsset' {} a -> s {roleArn = a} :: LakeFormationDataPermissionAsset)++-- | Details about the AWS Lake Formation data permission.+lakeFormationDataPermissionAsset_lakeFormationDataPermissionDetails :: Lens.Lens' LakeFormationDataPermissionAsset LakeFormationDataPermissionDetails+lakeFormationDataPermissionAsset_lakeFormationDataPermissionDetails = Lens.lens (\LakeFormationDataPermissionAsset' {lakeFormationDataPermissionDetails} -> lakeFormationDataPermissionDetails) (\s@LakeFormationDataPermissionAsset' {} a -> s {lakeFormationDataPermissionDetails = a} :: LakeFormationDataPermissionAsset)++-- | The data permission type.+lakeFormationDataPermissionAsset_lakeFormationDataPermissionType :: Lens.Lens' LakeFormationDataPermissionAsset LakeFormationDataPermissionType+lakeFormationDataPermissionAsset_lakeFormationDataPermissionType = Lens.lens (\LakeFormationDataPermissionAsset' {lakeFormationDataPermissionType} -> lakeFormationDataPermissionType) (\s@LakeFormationDataPermissionAsset' {} a -> s {lakeFormationDataPermissionType = a} :: LakeFormationDataPermissionAsset)++-- | The permissions granted to the subscribers on the resource.+lakeFormationDataPermissionAsset_permissions :: Lens.Lens' LakeFormationDataPermissionAsset [LFPermission]+lakeFormationDataPermissionAsset_permissions = Lens.lens (\LakeFormationDataPermissionAsset' {permissions} -> permissions) (\s@LakeFormationDataPermissionAsset' {} a -> s {permissions = a} :: LakeFormationDataPermissionAsset) Prelude.. Lens.coerced++instance+  Data.FromJSON+    LakeFormationDataPermissionAsset+  where+  parseJSON =+    Data.withObject+      "LakeFormationDataPermissionAsset"+      ( \x ->+          LakeFormationDataPermissionAsset'+            Prelude.<$> (x Data..:? "RoleArn")+            Prelude.<*> (x Data..: "LakeFormationDataPermissionDetails")+            Prelude.<*> (x Data..: "LakeFormationDataPermissionType")+            Prelude.<*> (x Data..:? "Permissions" Data..!= Prelude.mempty)+      )++instance+  Prelude.Hashable+    LakeFormationDataPermissionAsset+  where+  hashWithSalt+    _salt+    LakeFormationDataPermissionAsset' {..} =+      _salt+        `Prelude.hashWithSalt` roleArn+        `Prelude.hashWithSalt` lakeFormationDataPermissionDetails+        `Prelude.hashWithSalt` lakeFormationDataPermissionType+        `Prelude.hashWithSalt` permissions++instance+  Prelude.NFData+    LakeFormationDataPermissionAsset+  where+  rnf LakeFormationDataPermissionAsset' {..} =+    Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf lakeFormationDataPermissionDetails+      `Prelude.seq` Prelude.rnf lakeFormationDataPermissionType+      `Prelude.seq` Prelude.rnf permissions
+ gen/Amazonka/DataExchange/Types/LakeFormationDataPermissionDetails.hs view
@@ -0,0 +1,84 @@+{-# 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.DataExchange.Types.LakeFormationDataPermissionDetails+-- 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.DataExchange.Types.LakeFormationDataPermissionDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.LFTagPolicyDetails+import qualified Amazonka.Prelude as Prelude++-- | Details about the AWS Lake Formation data permission.+--+-- /See:/ 'newLakeFormationDataPermissionDetails' smart constructor.+data LakeFormationDataPermissionDetails = LakeFormationDataPermissionDetails'+  { -- | Details about the LF-tag policy.+    lFTagPolicy :: Prelude.Maybe LFTagPolicyDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LakeFormationDataPermissionDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lFTagPolicy', 'lakeFormationDataPermissionDetails_lFTagPolicy' - Details about the LF-tag policy.+newLakeFormationDataPermissionDetails ::+  LakeFormationDataPermissionDetails+newLakeFormationDataPermissionDetails =+  LakeFormationDataPermissionDetails'+    { lFTagPolicy =+        Prelude.Nothing+    }++-- | Details about the LF-tag policy.+lakeFormationDataPermissionDetails_lFTagPolicy :: Lens.Lens' LakeFormationDataPermissionDetails (Prelude.Maybe LFTagPolicyDetails)+lakeFormationDataPermissionDetails_lFTagPolicy = Lens.lens (\LakeFormationDataPermissionDetails' {lFTagPolicy} -> lFTagPolicy) (\s@LakeFormationDataPermissionDetails' {} a -> s {lFTagPolicy = a} :: LakeFormationDataPermissionDetails)++instance+  Data.FromJSON+    LakeFormationDataPermissionDetails+  where+  parseJSON =+    Data.withObject+      "LakeFormationDataPermissionDetails"+      ( \x ->+          LakeFormationDataPermissionDetails'+            Prelude.<$> (x Data..:? "LFTagPolicy")+      )++instance+  Prelude.Hashable+    LakeFormationDataPermissionDetails+  where+  hashWithSalt+    _salt+    LakeFormationDataPermissionDetails' {..} =+      _salt `Prelude.hashWithSalt` lFTagPolicy++instance+  Prelude.NFData+    LakeFormationDataPermissionDetails+  where+  rnf LakeFormationDataPermissionDetails' {..} =+    Prelude.rnf lFTagPolicy
+ gen/Amazonka/DataExchange/Types/LakeFormationDataPermissionType.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.DataExchange.Types.LakeFormationDataPermissionType+-- 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.DataExchange.Types.LakeFormationDataPermissionType+  ( LakeFormationDataPermissionType+      ( ..,+        LakeFormationDataPermissionType_LFTagPolicy+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LakeFormationDataPermissionType = LakeFormationDataPermissionType'+  { fromLakeFormationDataPermissionType ::+      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 LakeFormationDataPermissionType_LFTagPolicy :: LakeFormationDataPermissionType+pattern LakeFormationDataPermissionType_LFTagPolicy = LakeFormationDataPermissionType' "LFTagPolicy"++{-# COMPLETE+  LakeFormationDataPermissionType_LFTagPolicy,+  LakeFormationDataPermissionType'+  #-}
+ gen/Amazonka/DataExchange/Types/Origin.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.DataExchange.Types.Origin+-- 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.DataExchange.Types.Origin+  ( Origin+      ( ..,+        Origin_ENTITLED,+        Origin_OWNED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Origin = Origin' {fromOrigin :: 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 Origin_ENTITLED :: Origin+pattern Origin_ENTITLED = Origin' "ENTITLED"++pattern Origin_OWNED :: Origin+pattern Origin_OWNED = Origin' "OWNED"++{-# COMPLETE+  Origin_ENTITLED,+  Origin_OWNED,+  Origin'+  #-}
+ gen/Amazonka/DataExchange/Types/OriginDetails.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.OriginDetails+-- 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.DataExchange.Types.OriginDetails 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++-- | Details about the origin of the data set.+--+-- /See:/ 'newOriginDetails' smart constructor.+data OriginDetails = OriginDetails'+  { -- | The product ID of the origin of the data set.+    productId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OriginDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'productId', 'originDetails_productId' - The product ID of the origin of the data set.+newOriginDetails ::+  -- | 'productId'+  Prelude.Text ->+  OriginDetails+newOriginDetails pProductId_ =+  OriginDetails' {productId = pProductId_}++-- | The product ID of the origin of the data set.+originDetails_productId :: Lens.Lens' OriginDetails Prelude.Text+originDetails_productId = Lens.lens (\OriginDetails' {productId} -> productId) (\s@OriginDetails' {} a -> s {productId = a} :: OriginDetails)++instance Data.FromJSON OriginDetails where+  parseJSON =+    Data.withObject+      "OriginDetails"+      ( \x ->+          OriginDetails' Prelude.<$> (x Data..: "ProductId")+      )++instance Prelude.Hashable OriginDetails where+  hashWithSalt _salt OriginDetails' {..} =+    _salt `Prelude.hashWithSalt` productId++instance Prelude.NFData OriginDetails where+  rnf OriginDetails' {..} = Prelude.rnf productId
+ gen/Amazonka/DataExchange/Types/ProtocolType.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.DataExchange.Types.ProtocolType+-- 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.DataExchange.Types.ProtocolType+  ( ProtocolType+      ( ..,+        ProtocolType_REST+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ProtocolType = ProtocolType'+  { fromProtocolType ::+      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 ProtocolType_REST :: ProtocolType+pattern ProtocolType_REST = ProtocolType' "REST"++{-# COMPLETE+  ProtocolType_REST,+  ProtocolType'+  #-}
+ gen/Amazonka/DataExchange/Types/RedshiftDataShareAsset.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.RedshiftDataShareAsset+-- 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.DataExchange.Types.RedshiftDataShareAsset where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Amazon Redshift datashare asset.+--+-- /See:/ 'newRedshiftDataShareAsset' smart constructor.+data RedshiftDataShareAsset = RedshiftDataShareAsset'+  { -- | The Amazon Resource Name (ARN) of the datashare asset.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RedshiftDataShareAsset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'redshiftDataShareAsset_arn' - The Amazon Resource Name (ARN) of the datashare asset.+newRedshiftDataShareAsset ::+  -- | 'arn'+  Prelude.Text ->+  RedshiftDataShareAsset+newRedshiftDataShareAsset pArn_ =+  RedshiftDataShareAsset' {arn = pArn_}++-- | The Amazon Resource Name (ARN) of the datashare asset.+redshiftDataShareAsset_arn :: Lens.Lens' RedshiftDataShareAsset Prelude.Text+redshiftDataShareAsset_arn = Lens.lens (\RedshiftDataShareAsset' {arn} -> arn) (\s@RedshiftDataShareAsset' {} a -> s {arn = a} :: RedshiftDataShareAsset)++instance Data.FromJSON RedshiftDataShareAsset where+  parseJSON =+    Data.withObject+      "RedshiftDataShareAsset"+      ( \x ->+          RedshiftDataShareAsset'+            Prelude.<$> (x Data..: "Arn")+      )++instance Prelude.Hashable RedshiftDataShareAsset where+  hashWithSalt _salt RedshiftDataShareAsset' {..} =+    _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData RedshiftDataShareAsset where+  rnf RedshiftDataShareAsset' {..} = Prelude.rnf arn
+ gen/Amazonka/DataExchange/Types/RedshiftDataShareAssetSourceEntry.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.DataExchange.Types.RedshiftDataShareAssetSourceEntry+-- 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.DataExchange.Types.RedshiftDataShareAssetSourceEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The source of the Amazon Redshift datashare asset.+--+-- /See:/ 'newRedshiftDataShareAssetSourceEntry' smart constructor.+data RedshiftDataShareAssetSourceEntry = RedshiftDataShareAssetSourceEntry'+  { -- | The Amazon Resource Name (ARN) of the datashare asset.+    dataShareArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RedshiftDataShareAssetSourceEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataShareArn', 'redshiftDataShareAssetSourceEntry_dataShareArn' - The Amazon Resource Name (ARN) of the datashare asset.+newRedshiftDataShareAssetSourceEntry ::+  -- | 'dataShareArn'+  Prelude.Text ->+  RedshiftDataShareAssetSourceEntry+newRedshiftDataShareAssetSourceEntry pDataShareArn_ =+  RedshiftDataShareAssetSourceEntry'+    { dataShareArn =+        pDataShareArn_+    }++-- | The Amazon Resource Name (ARN) of the datashare asset.+redshiftDataShareAssetSourceEntry_dataShareArn :: Lens.Lens' RedshiftDataShareAssetSourceEntry Prelude.Text+redshiftDataShareAssetSourceEntry_dataShareArn = Lens.lens (\RedshiftDataShareAssetSourceEntry' {dataShareArn} -> dataShareArn) (\s@RedshiftDataShareAssetSourceEntry' {} a -> s {dataShareArn = a} :: RedshiftDataShareAssetSourceEntry)++instance+  Data.FromJSON+    RedshiftDataShareAssetSourceEntry+  where+  parseJSON =+    Data.withObject+      "RedshiftDataShareAssetSourceEntry"+      ( \x ->+          RedshiftDataShareAssetSourceEntry'+            Prelude.<$> (x Data..: "DataShareArn")+      )++instance+  Prelude.Hashable+    RedshiftDataShareAssetSourceEntry+  where+  hashWithSalt+    _salt+    RedshiftDataShareAssetSourceEntry' {..} =+      _salt `Prelude.hashWithSalt` dataShareArn++instance+  Prelude.NFData+    RedshiftDataShareAssetSourceEntry+  where+  rnf RedshiftDataShareAssetSourceEntry' {..} =+    Prelude.rnf dataShareArn++instance+  Data.ToJSON+    RedshiftDataShareAssetSourceEntry+  where+  toJSON RedshiftDataShareAssetSourceEntry' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("DataShareArn" Data..= dataShareArn)]+      )
+ gen/Amazonka/DataExchange/Types/RequestDetails.hs view
@@ -0,0 +1,190 @@+{-# 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.DataExchange.Types.RequestDetails+-- 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.DataExchange.Types.RequestDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.CreateS3DataAccessFromS3BucketRequestDetails+import Amazonka.DataExchange.Types.ExportAssetToSignedUrlRequestDetails+import Amazonka.DataExchange.Types.ExportAssetsToS3RequestDetails+import Amazonka.DataExchange.Types.ExportRevisionsToS3RequestDetails+import Amazonka.DataExchange.Types.ImportAssetFromApiGatewayApiRequestDetails+import Amazonka.DataExchange.Types.ImportAssetFromSignedUrlRequestDetails+import Amazonka.DataExchange.Types.ImportAssetsFromLakeFormationTagPolicyRequestDetails+import Amazonka.DataExchange.Types.ImportAssetsFromRedshiftDataSharesRequestDetails+import Amazonka.DataExchange.Types.ImportAssetsFromS3RequestDetails+import qualified Amazonka.Prelude as Prelude++-- | The details for the request.+--+-- /See:/ 'newRequestDetails' smart constructor.+data RequestDetails = RequestDetails'+  { -- | Details of the request to create S3 data access from the Amazon S3+    -- bucket.+    createS3DataAccessFromS3Bucket :: Prelude.Maybe CreateS3DataAccessFromS3BucketRequestDetails,+    -- | Details about the export to signed URL request.+    exportAssetToSignedUrl :: Prelude.Maybe ExportAssetToSignedUrlRequestDetails,+    -- | Details about the export to Amazon S3 request.+    exportAssetsToS3 :: Prelude.Maybe ExportAssetsToS3RequestDetails,+    -- | Details about the export to Amazon S3 request.+    exportRevisionsToS3 :: Prelude.Maybe ExportRevisionsToS3RequestDetails,+    -- | Details about the import from signed URL request.+    importAssetFromApiGatewayApi :: Prelude.Maybe ImportAssetFromApiGatewayApiRequestDetails,+    -- | Details about the import from Amazon S3 request.+    importAssetFromSignedUrl :: Prelude.Maybe ImportAssetFromSignedUrlRequestDetails,+    -- | Request details for the ImportAssetsFromLakeFormationTagPolicy job.+    importAssetsFromLakeFormationTagPolicy :: Prelude.Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails,+    -- | Details from an import from Amazon Redshift datashare request.+    importAssetsFromRedshiftDataShares :: Prelude.Maybe ImportAssetsFromRedshiftDataSharesRequestDetails,+    -- | Details about the import asset from API Gateway API request.+    importAssetsFromS3 :: Prelude.Maybe ImportAssetsFromS3RequestDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RequestDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createS3DataAccessFromS3Bucket', 'requestDetails_createS3DataAccessFromS3Bucket' - Details of the request to create S3 data access from the Amazon S3+-- bucket.+--+-- 'exportAssetToSignedUrl', 'requestDetails_exportAssetToSignedUrl' - Details about the export to signed URL request.+--+-- 'exportAssetsToS3', 'requestDetails_exportAssetsToS3' - Details about the export to Amazon S3 request.+--+-- 'exportRevisionsToS3', 'requestDetails_exportRevisionsToS3' - Details about the export to Amazon S3 request.+--+-- 'importAssetFromApiGatewayApi', 'requestDetails_importAssetFromApiGatewayApi' - Details about the import from signed URL request.+--+-- 'importAssetFromSignedUrl', 'requestDetails_importAssetFromSignedUrl' - Details about the import from Amazon S3 request.+--+-- 'importAssetsFromLakeFormationTagPolicy', 'requestDetails_importAssetsFromLakeFormationTagPolicy' - Request details for the ImportAssetsFromLakeFormationTagPolicy job.+--+-- 'importAssetsFromRedshiftDataShares', 'requestDetails_importAssetsFromRedshiftDataShares' - Details from an import from Amazon Redshift datashare request.+--+-- 'importAssetsFromS3', 'requestDetails_importAssetsFromS3' - Details about the import asset from API Gateway API request.+newRequestDetails ::+  RequestDetails+newRequestDetails =+  RequestDetails'+    { createS3DataAccessFromS3Bucket =+        Prelude.Nothing,+      exportAssetToSignedUrl = Prelude.Nothing,+      exportAssetsToS3 = Prelude.Nothing,+      exportRevisionsToS3 = Prelude.Nothing,+      importAssetFromApiGatewayApi = Prelude.Nothing,+      importAssetFromSignedUrl = Prelude.Nothing,+      importAssetsFromLakeFormationTagPolicy =+        Prelude.Nothing,+      importAssetsFromRedshiftDataShares = Prelude.Nothing,+      importAssetsFromS3 = Prelude.Nothing+    }++-- | Details of the request to create S3 data access from the Amazon S3+-- bucket.+requestDetails_createS3DataAccessFromS3Bucket :: Lens.Lens' RequestDetails (Prelude.Maybe CreateS3DataAccessFromS3BucketRequestDetails)+requestDetails_createS3DataAccessFromS3Bucket = Lens.lens (\RequestDetails' {createS3DataAccessFromS3Bucket} -> createS3DataAccessFromS3Bucket) (\s@RequestDetails' {} a -> s {createS3DataAccessFromS3Bucket = a} :: RequestDetails)++-- | Details about the export to signed URL request.+requestDetails_exportAssetToSignedUrl :: Lens.Lens' RequestDetails (Prelude.Maybe ExportAssetToSignedUrlRequestDetails)+requestDetails_exportAssetToSignedUrl = Lens.lens (\RequestDetails' {exportAssetToSignedUrl} -> exportAssetToSignedUrl) (\s@RequestDetails' {} a -> s {exportAssetToSignedUrl = a} :: RequestDetails)++-- | Details about the export to Amazon S3 request.+requestDetails_exportAssetsToS3 :: Lens.Lens' RequestDetails (Prelude.Maybe ExportAssetsToS3RequestDetails)+requestDetails_exportAssetsToS3 = Lens.lens (\RequestDetails' {exportAssetsToS3} -> exportAssetsToS3) (\s@RequestDetails' {} a -> s {exportAssetsToS3 = a} :: RequestDetails)++-- | Details about the export to Amazon S3 request.+requestDetails_exportRevisionsToS3 :: Lens.Lens' RequestDetails (Prelude.Maybe ExportRevisionsToS3RequestDetails)+requestDetails_exportRevisionsToS3 = Lens.lens (\RequestDetails' {exportRevisionsToS3} -> exportRevisionsToS3) (\s@RequestDetails' {} a -> s {exportRevisionsToS3 = a} :: RequestDetails)++-- | Details about the import from signed URL request.+requestDetails_importAssetFromApiGatewayApi :: Lens.Lens' RequestDetails (Prelude.Maybe ImportAssetFromApiGatewayApiRequestDetails)+requestDetails_importAssetFromApiGatewayApi = Lens.lens (\RequestDetails' {importAssetFromApiGatewayApi} -> importAssetFromApiGatewayApi) (\s@RequestDetails' {} a -> s {importAssetFromApiGatewayApi = a} :: RequestDetails)++-- | Details about the import from Amazon S3 request.+requestDetails_importAssetFromSignedUrl :: Lens.Lens' RequestDetails (Prelude.Maybe ImportAssetFromSignedUrlRequestDetails)+requestDetails_importAssetFromSignedUrl = Lens.lens (\RequestDetails' {importAssetFromSignedUrl} -> importAssetFromSignedUrl) (\s@RequestDetails' {} a -> s {importAssetFromSignedUrl = a} :: RequestDetails)++-- | Request details for the ImportAssetsFromLakeFormationTagPolicy job.+requestDetails_importAssetsFromLakeFormationTagPolicy :: Lens.Lens' RequestDetails (Prelude.Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails)+requestDetails_importAssetsFromLakeFormationTagPolicy = Lens.lens (\RequestDetails' {importAssetsFromLakeFormationTagPolicy} -> importAssetsFromLakeFormationTagPolicy) (\s@RequestDetails' {} a -> s {importAssetsFromLakeFormationTagPolicy = a} :: RequestDetails)++-- | Details from an import from Amazon Redshift datashare request.+requestDetails_importAssetsFromRedshiftDataShares :: Lens.Lens' RequestDetails (Prelude.Maybe ImportAssetsFromRedshiftDataSharesRequestDetails)+requestDetails_importAssetsFromRedshiftDataShares = Lens.lens (\RequestDetails' {importAssetsFromRedshiftDataShares} -> importAssetsFromRedshiftDataShares) (\s@RequestDetails' {} a -> s {importAssetsFromRedshiftDataShares = a} :: RequestDetails)++-- | Details about the import asset from API Gateway API request.+requestDetails_importAssetsFromS3 :: Lens.Lens' RequestDetails (Prelude.Maybe ImportAssetsFromS3RequestDetails)+requestDetails_importAssetsFromS3 = Lens.lens (\RequestDetails' {importAssetsFromS3} -> importAssetsFromS3) (\s@RequestDetails' {} a -> s {importAssetsFromS3 = a} :: RequestDetails)++instance Prelude.Hashable RequestDetails where+  hashWithSalt _salt RequestDetails' {..} =+    _salt+      `Prelude.hashWithSalt` createS3DataAccessFromS3Bucket+      `Prelude.hashWithSalt` exportAssetToSignedUrl+      `Prelude.hashWithSalt` exportAssetsToS3+      `Prelude.hashWithSalt` exportRevisionsToS3+      `Prelude.hashWithSalt` importAssetFromApiGatewayApi+      `Prelude.hashWithSalt` importAssetFromSignedUrl+      `Prelude.hashWithSalt` importAssetsFromLakeFormationTagPolicy+      `Prelude.hashWithSalt` importAssetsFromRedshiftDataShares+      `Prelude.hashWithSalt` importAssetsFromS3++instance Prelude.NFData RequestDetails where+  rnf RequestDetails' {..} =+    Prelude.rnf createS3DataAccessFromS3Bucket+      `Prelude.seq` Prelude.rnf exportAssetToSignedUrl+      `Prelude.seq` Prelude.rnf exportAssetsToS3+      `Prelude.seq` Prelude.rnf exportRevisionsToS3+      `Prelude.seq` Prelude.rnf importAssetFromApiGatewayApi+      `Prelude.seq` Prelude.rnf importAssetFromSignedUrl+      `Prelude.seq` Prelude.rnf importAssetsFromLakeFormationTagPolicy+      `Prelude.seq` Prelude.rnf importAssetsFromRedshiftDataShares+      `Prelude.seq` Prelude.rnf importAssetsFromS3++instance Data.ToJSON RequestDetails where+  toJSON RequestDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CreateS3DataAccessFromS3Bucket" Data..=)+              Prelude.<$> createS3DataAccessFromS3Bucket,+            ("ExportAssetToSignedUrl" Data..=)+              Prelude.<$> exportAssetToSignedUrl,+            ("ExportAssetsToS3" Data..=)+              Prelude.<$> exportAssetsToS3,+            ("ExportRevisionsToS3" Data..=)+              Prelude.<$> exportRevisionsToS3,+            ("ImportAssetFromApiGatewayApi" Data..=)+              Prelude.<$> importAssetFromApiGatewayApi,+            ("ImportAssetFromSignedUrl" Data..=)+              Prelude.<$> importAssetFromSignedUrl,+            ("ImportAssetsFromLakeFormationTagPolicy" Data..=)+              Prelude.<$> importAssetsFromLakeFormationTagPolicy,+            ("ImportAssetsFromRedshiftDataShares" Data..=)+              Prelude.<$> importAssetsFromRedshiftDataShares,+            ("ImportAssetsFromS3" Data..=)+              Prelude.<$> importAssetsFromS3+          ]+      )
+ gen/Amazonka/DataExchange/Types/ResponseDetails.hs view
@@ -0,0 +1,179 @@+{-# 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.DataExchange.Types.ResponseDetails+-- 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.DataExchange.Types.ResponseDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.CreateS3DataAccessFromS3BucketResponseDetails+import Amazonka.DataExchange.Types.ExportAssetToSignedUrlResponseDetails+import Amazonka.DataExchange.Types.ExportAssetsToS3ResponseDetails+import Amazonka.DataExchange.Types.ExportRevisionsToS3ResponseDetails+import Amazonka.DataExchange.Types.ImportAssetFromApiGatewayApiResponseDetails+import Amazonka.DataExchange.Types.ImportAssetFromSignedUrlResponseDetails+import Amazonka.DataExchange.Types.ImportAssetsFromLakeFormationTagPolicyResponseDetails+import Amazonka.DataExchange.Types.ImportAssetsFromRedshiftDataSharesResponseDetails+import Amazonka.DataExchange.Types.ImportAssetsFromS3ResponseDetails+import qualified Amazonka.Prelude as Prelude++-- | Details for the response.+--+-- /See:/ 'newResponseDetails' smart constructor.+data ResponseDetails = ResponseDetails'+  { -- | Response details from the CreateS3DataAccessFromS3Bucket job.+    createS3DataAccessFromS3Bucket :: Prelude.Maybe CreateS3DataAccessFromS3BucketResponseDetails,+    -- | Details for the export to signed URL response.+    exportAssetToSignedUrl :: Prelude.Maybe ExportAssetToSignedUrlResponseDetails,+    -- | Details for the export to Amazon S3 response.+    exportAssetsToS3 :: Prelude.Maybe ExportAssetsToS3ResponseDetails,+    -- | Details for the export revisions to Amazon S3 response.+    exportRevisionsToS3 :: Prelude.Maybe ExportRevisionsToS3ResponseDetails,+    -- | The response details.+    importAssetFromApiGatewayApi :: Prelude.Maybe ImportAssetFromApiGatewayApiResponseDetails,+    -- | Details for the import from signed URL response.+    importAssetFromSignedUrl :: Prelude.Maybe ImportAssetFromSignedUrlResponseDetails,+    -- | Response details from the ImportAssetsFromLakeFormationTagPolicy job.+    importAssetsFromLakeFormationTagPolicy :: Prelude.Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails,+    -- | Details from an import from Amazon Redshift datashare response.+    importAssetsFromRedshiftDataShares :: Prelude.Maybe ImportAssetsFromRedshiftDataSharesResponseDetails,+    -- | Details for the import from Amazon S3 response.+    importAssetsFromS3 :: Prelude.Maybe ImportAssetsFromS3ResponseDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResponseDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createS3DataAccessFromS3Bucket', 'responseDetails_createS3DataAccessFromS3Bucket' - Response details from the CreateS3DataAccessFromS3Bucket job.+--+-- 'exportAssetToSignedUrl', 'responseDetails_exportAssetToSignedUrl' - Details for the export to signed URL response.+--+-- 'exportAssetsToS3', 'responseDetails_exportAssetsToS3' - Details for the export to Amazon S3 response.+--+-- 'exportRevisionsToS3', 'responseDetails_exportRevisionsToS3' - Details for the export revisions to Amazon S3 response.+--+-- 'importAssetFromApiGatewayApi', 'responseDetails_importAssetFromApiGatewayApi' - The response details.+--+-- 'importAssetFromSignedUrl', 'responseDetails_importAssetFromSignedUrl' - Details for the import from signed URL response.+--+-- 'importAssetsFromLakeFormationTagPolicy', 'responseDetails_importAssetsFromLakeFormationTagPolicy' - Response details from the ImportAssetsFromLakeFormationTagPolicy job.+--+-- 'importAssetsFromRedshiftDataShares', 'responseDetails_importAssetsFromRedshiftDataShares' - Details from an import from Amazon Redshift datashare response.+--+-- 'importAssetsFromS3', 'responseDetails_importAssetsFromS3' - Details for the import from Amazon S3 response.+newResponseDetails ::+  ResponseDetails+newResponseDetails =+  ResponseDetails'+    { createS3DataAccessFromS3Bucket =+        Prelude.Nothing,+      exportAssetToSignedUrl = Prelude.Nothing,+      exportAssetsToS3 = Prelude.Nothing,+      exportRevisionsToS3 = Prelude.Nothing,+      importAssetFromApiGatewayApi = Prelude.Nothing,+      importAssetFromSignedUrl = Prelude.Nothing,+      importAssetsFromLakeFormationTagPolicy =+        Prelude.Nothing,+      importAssetsFromRedshiftDataShares = Prelude.Nothing,+      importAssetsFromS3 = Prelude.Nothing+    }++-- | Response details from the CreateS3DataAccessFromS3Bucket job.+responseDetails_createS3DataAccessFromS3Bucket :: Lens.Lens' ResponseDetails (Prelude.Maybe CreateS3DataAccessFromS3BucketResponseDetails)+responseDetails_createS3DataAccessFromS3Bucket = Lens.lens (\ResponseDetails' {createS3DataAccessFromS3Bucket} -> createS3DataAccessFromS3Bucket) (\s@ResponseDetails' {} a -> s {createS3DataAccessFromS3Bucket = a} :: ResponseDetails)++-- | Details for the export to signed URL response.+responseDetails_exportAssetToSignedUrl :: Lens.Lens' ResponseDetails (Prelude.Maybe ExportAssetToSignedUrlResponseDetails)+responseDetails_exportAssetToSignedUrl = Lens.lens (\ResponseDetails' {exportAssetToSignedUrl} -> exportAssetToSignedUrl) (\s@ResponseDetails' {} a -> s {exportAssetToSignedUrl = a} :: ResponseDetails)++-- | Details for the export to Amazon S3 response.+responseDetails_exportAssetsToS3 :: Lens.Lens' ResponseDetails (Prelude.Maybe ExportAssetsToS3ResponseDetails)+responseDetails_exportAssetsToS3 = Lens.lens (\ResponseDetails' {exportAssetsToS3} -> exportAssetsToS3) (\s@ResponseDetails' {} a -> s {exportAssetsToS3 = a} :: ResponseDetails)++-- | Details for the export revisions to Amazon S3 response.+responseDetails_exportRevisionsToS3 :: Lens.Lens' ResponseDetails (Prelude.Maybe ExportRevisionsToS3ResponseDetails)+responseDetails_exportRevisionsToS3 = Lens.lens (\ResponseDetails' {exportRevisionsToS3} -> exportRevisionsToS3) (\s@ResponseDetails' {} a -> s {exportRevisionsToS3 = a} :: ResponseDetails)++-- | The response details.+responseDetails_importAssetFromApiGatewayApi :: Lens.Lens' ResponseDetails (Prelude.Maybe ImportAssetFromApiGatewayApiResponseDetails)+responseDetails_importAssetFromApiGatewayApi = Lens.lens (\ResponseDetails' {importAssetFromApiGatewayApi} -> importAssetFromApiGatewayApi) (\s@ResponseDetails' {} a -> s {importAssetFromApiGatewayApi = a} :: ResponseDetails)++-- | Details for the import from signed URL response.+responseDetails_importAssetFromSignedUrl :: Lens.Lens' ResponseDetails (Prelude.Maybe ImportAssetFromSignedUrlResponseDetails)+responseDetails_importAssetFromSignedUrl = Lens.lens (\ResponseDetails' {importAssetFromSignedUrl} -> importAssetFromSignedUrl) (\s@ResponseDetails' {} a -> s {importAssetFromSignedUrl = a} :: ResponseDetails)++-- | Response details from the ImportAssetsFromLakeFormationTagPolicy job.+responseDetails_importAssetsFromLakeFormationTagPolicy :: Lens.Lens' ResponseDetails (Prelude.Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails)+responseDetails_importAssetsFromLakeFormationTagPolicy = Lens.lens (\ResponseDetails' {importAssetsFromLakeFormationTagPolicy} -> importAssetsFromLakeFormationTagPolicy) (\s@ResponseDetails' {} a -> s {importAssetsFromLakeFormationTagPolicy = a} :: ResponseDetails)++-- | Details from an import from Amazon Redshift datashare response.+responseDetails_importAssetsFromRedshiftDataShares :: Lens.Lens' ResponseDetails (Prelude.Maybe ImportAssetsFromRedshiftDataSharesResponseDetails)+responseDetails_importAssetsFromRedshiftDataShares = Lens.lens (\ResponseDetails' {importAssetsFromRedshiftDataShares} -> importAssetsFromRedshiftDataShares) (\s@ResponseDetails' {} a -> s {importAssetsFromRedshiftDataShares = a} :: ResponseDetails)++-- | Details for the import from Amazon S3 response.+responseDetails_importAssetsFromS3 :: Lens.Lens' ResponseDetails (Prelude.Maybe ImportAssetsFromS3ResponseDetails)+responseDetails_importAssetsFromS3 = Lens.lens (\ResponseDetails' {importAssetsFromS3} -> importAssetsFromS3) (\s@ResponseDetails' {} a -> s {importAssetsFromS3 = a} :: ResponseDetails)++instance Data.FromJSON ResponseDetails where+  parseJSON =+    Data.withObject+      "ResponseDetails"+      ( \x ->+          ResponseDetails'+            Prelude.<$> (x Data..:? "CreateS3DataAccessFromS3Bucket")+            Prelude.<*> (x Data..:? "ExportAssetToSignedUrl")+            Prelude.<*> (x Data..:? "ExportAssetsToS3")+            Prelude.<*> (x Data..:? "ExportRevisionsToS3")+            Prelude.<*> (x Data..:? "ImportAssetFromApiGatewayApi")+            Prelude.<*> (x Data..:? "ImportAssetFromSignedUrl")+            Prelude.<*> (x Data..:? "ImportAssetsFromLakeFormationTagPolicy")+            Prelude.<*> (x Data..:? "ImportAssetsFromRedshiftDataShares")+            Prelude.<*> (x Data..:? "ImportAssetsFromS3")+      )++instance Prelude.Hashable ResponseDetails where+  hashWithSalt _salt ResponseDetails' {..} =+    _salt+      `Prelude.hashWithSalt` createS3DataAccessFromS3Bucket+      `Prelude.hashWithSalt` exportAssetToSignedUrl+      `Prelude.hashWithSalt` exportAssetsToS3+      `Prelude.hashWithSalt` exportRevisionsToS3+      `Prelude.hashWithSalt` importAssetFromApiGatewayApi+      `Prelude.hashWithSalt` importAssetFromSignedUrl+      `Prelude.hashWithSalt` importAssetsFromLakeFormationTagPolicy+      `Prelude.hashWithSalt` importAssetsFromRedshiftDataShares+      `Prelude.hashWithSalt` importAssetsFromS3++instance Prelude.NFData ResponseDetails where+  rnf ResponseDetails' {..} =+    Prelude.rnf createS3DataAccessFromS3Bucket+      `Prelude.seq` Prelude.rnf exportAssetToSignedUrl+      `Prelude.seq` Prelude.rnf exportAssetsToS3+      `Prelude.seq` Prelude.rnf exportRevisionsToS3+      `Prelude.seq` Prelude.rnf importAssetFromApiGatewayApi+      `Prelude.seq` Prelude.rnf importAssetFromSignedUrl+      `Prelude.seq` Prelude.rnf importAssetsFromLakeFormationTagPolicy+      `Prelude.seq` Prelude.rnf importAssetsFromRedshiftDataShares+      `Prelude.seq` Prelude.rnf importAssetsFromS3
+ gen/Amazonka/DataExchange/Types/RevisionDestinationEntry.hs view
@@ -0,0 +1,120 @@+{-# 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.DataExchange.Types.RevisionDestinationEntry+-- 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.DataExchange.Types.RevisionDestinationEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The destination where the assets in the revision will be exported.+--+-- /See:/ 'newRevisionDestinationEntry' smart constructor.+data RevisionDestinationEntry = RevisionDestinationEntry'+  { -- | A string representing the pattern for generated names of the individual+    -- assets in the revision. For more information about key patterns, see+    -- <https://docs.aws.amazon.com/data-exchange/latest/userguide/jobs.html#revision-export-keypatterns Key patterns when exporting revisions>.+    keyPattern :: Prelude.Maybe Prelude.Text,+    -- | The Amazon S3 bucket that is the destination for the assets in the+    -- revision.+    bucket :: Prelude.Text,+    -- | The unique identifier for the revision.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RevisionDestinationEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyPattern', 'revisionDestinationEntry_keyPattern' - A string representing the pattern for generated names of the individual+-- assets in the revision. For more information about key patterns, see+-- <https://docs.aws.amazon.com/data-exchange/latest/userguide/jobs.html#revision-export-keypatterns Key patterns when exporting revisions>.+--+-- 'bucket', 'revisionDestinationEntry_bucket' - The Amazon S3 bucket that is the destination for the assets in the+-- revision.+--+-- 'revisionId', 'revisionDestinationEntry_revisionId' - The unique identifier for the revision.+newRevisionDestinationEntry ::+  -- | 'bucket'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  RevisionDestinationEntry+newRevisionDestinationEntry pBucket_ pRevisionId_ =+  RevisionDestinationEntry'+    { keyPattern =+        Prelude.Nothing,+      bucket = pBucket_,+      revisionId = pRevisionId_+    }++-- | A string representing the pattern for generated names of the individual+-- assets in the revision. For more information about key patterns, see+-- <https://docs.aws.amazon.com/data-exchange/latest/userguide/jobs.html#revision-export-keypatterns Key patterns when exporting revisions>.+revisionDestinationEntry_keyPattern :: Lens.Lens' RevisionDestinationEntry (Prelude.Maybe Prelude.Text)+revisionDestinationEntry_keyPattern = Lens.lens (\RevisionDestinationEntry' {keyPattern} -> keyPattern) (\s@RevisionDestinationEntry' {} a -> s {keyPattern = a} :: RevisionDestinationEntry)++-- | The Amazon S3 bucket that is the destination for the assets in the+-- revision.+revisionDestinationEntry_bucket :: Lens.Lens' RevisionDestinationEntry Prelude.Text+revisionDestinationEntry_bucket = Lens.lens (\RevisionDestinationEntry' {bucket} -> bucket) (\s@RevisionDestinationEntry' {} a -> s {bucket = a} :: RevisionDestinationEntry)++-- | The unique identifier for the revision.+revisionDestinationEntry_revisionId :: Lens.Lens' RevisionDestinationEntry Prelude.Text+revisionDestinationEntry_revisionId = Lens.lens (\RevisionDestinationEntry' {revisionId} -> revisionId) (\s@RevisionDestinationEntry' {} a -> s {revisionId = a} :: RevisionDestinationEntry)++instance Data.FromJSON RevisionDestinationEntry where+  parseJSON =+    Data.withObject+      "RevisionDestinationEntry"+      ( \x ->+          RevisionDestinationEntry'+            Prelude.<$> (x Data..:? "KeyPattern")+            Prelude.<*> (x Data..: "Bucket")+            Prelude.<*> (x Data..: "RevisionId")+      )++instance Prelude.Hashable RevisionDestinationEntry where+  hashWithSalt _salt RevisionDestinationEntry' {..} =+    _salt+      `Prelude.hashWithSalt` keyPattern+      `Prelude.hashWithSalt` bucket+      `Prelude.hashWithSalt` revisionId++instance Prelude.NFData RevisionDestinationEntry where+  rnf RevisionDestinationEntry' {..} =+    Prelude.rnf keyPattern+      `Prelude.seq` Prelude.rnf bucket+      `Prelude.seq` Prelude.rnf revisionId++instance Data.ToJSON RevisionDestinationEntry where+  toJSON RevisionDestinationEntry' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("KeyPattern" Data..=) Prelude.<$> keyPattern,+            Prelude.Just ("Bucket" Data..= bucket),+            Prelude.Just ("RevisionId" Data..= revisionId)+          ]+      )
+ gen/Amazonka/DataExchange/Types/RevisionEntry.hs view
@@ -0,0 +1,246 @@+{-# 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.DataExchange.Types.RevisionEntry+-- 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.DataExchange.Types.RevisionEntry 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 revision is a container for one or more assets.+--+-- /See:/ 'newRevisionEntry' smart constructor.+data RevisionEntry = RevisionEntry'+  { -- | An optional comment about the revision.+    comment :: Prelude.Maybe Prelude.Text,+    -- | To publish a revision to a data set in a product, the revision must+    -- first be finalized. Finalizing a revision tells AWS Data Exchange that+    -- your changes to the assets in the revision are complete. After it\'s in+    -- this read-only state, you can publish the revision to your products.+    -- Finalized revisions can be published through the AWS Data Exchange+    -- console or the AWS Marketplace Catalog API, using the StartChangeSet AWS+    -- Marketplace Catalog API action. When using the API, revisions are+    -- uniquely identified by their ARN.+    finalized :: Prelude.Maybe Prelude.Bool,+    -- | A required comment to inform subscribers of the reason their access to+    -- the revision was revoked.+    revocationComment :: Prelude.Maybe Prelude.Text,+    -- | A status indicating that subscribers\' access to the revision was+    -- revoked.+    revoked :: Prelude.Maybe Prelude.Bool,+    -- | The date and time that the revision was revoked, in ISO 8601 format.+    revokedAt :: Prelude.Maybe Data.ISO8601,+    -- | The revision ID of the owned revision corresponding to the entitled+    -- revision being viewed. This parameter is returned when a revision owner+    -- is viewing the entitled copy of its owned revision.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | The ARN for the revision.+    arn :: Prelude.Text,+    -- | The date and time that the revision was created, in ISO 8601 format.+    createdAt :: Data.ISO8601,+    -- | The unique identifier for the data set associated with the data set+    -- revision.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for the revision.+    id :: Prelude.Text,+    -- | The date and time that the revision was last updated, in ISO 8601+    -- format.+    updatedAt :: Data.ISO8601+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RevisionEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'comment', 'revisionEntry_comment' - An optional comment about the revision.+--+-- 'finalized', 'revisionEntry_finalized' - To publish a revision to a data set in a product, the revision must+-- first be finalized. Finalizing a revision tells AWS Data Exchange that+-- your changes to the assets in the revision are complete. After it\'s in+-- this read-only state, you can publish the revision to your products.+-- Finalized revisions can be published through the AWS Data Exchange+-- console or the AWS Marketplace Catalog API, using the StartChangeSet AWS+-- Marketplace Catalog API action. When using the API, revisions are+-- uniquely identified by their ARN.+--+-- 'revocationComment', 'revisionEntry_revocationComment' - A required comment to inform subscribers of the reason their access to+-- the revision was revoked.+--+-- 'revoked', 'revisionEntry_revoked' - A status indicating that subscribers\' access to the revision was+-- revoked.+--+-- 'revokedAt', 'revisionEntry_revokedAt' - The date and time that the revision was revoked, in ISO 8601 format.+--+-- 'sourceId', 'revisionEntry_sourceId' - The revision ID of the owned revision corresponding to the entitled+-- revision being viewed. This parameter is returned when a revision owner+-- is viewing the entitled copy of its owned revision.+--+-- 'arn', 'revisionEntry_arn' - The ARN for the revision.+--+-- 'createdAt', 'revisionEntry_createdAt' - The date and time that the revision was created, in ISO 8601 format.+--+-- 'dataSetId', 'revisionEntry_dataSetId' - The unique identifier for the data set associated with the data set+-- revision.+--+-- 'id', 'revisionEntry_id' - The unique identifier for the revision.+--+-- 'updatedAt', 'revisionEntry_updatedAt' - The date and time that the revision was last updated, in ISO 8601+-- format.+newRevisionEntry ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'createdAt'+  Prelude.UTCTime ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  -- | 'updatedAt'+  Prelude.UTCTime ->+  RevisionEntry+newRevisionEntry+  pArn_+  pCreatedAt_+  pDataSetId_+  pId_+  pUpdatedAt_ =+    RevisionEntry'+      { comment = Prelude.Nothing,+        finalized = Prelude.Nothing,+        revocationComment = Prelude.Nothing,+        revoked = Prelude.Nothing,+        revokedAt = Prelude.Nothing,+        sourceId = Prelude.Nothing,+        arn = pArn_,+        createdAt = Data._Time Lens.# pCreatedAt_,+        dataSetId = pDataSetId_,+        id = pId_,+        updatedAt = Data._Time Lens.# pUpdatedAt_+      }++-- | An optional comment about the revision.+revisionEntry_comment :: Lens.Lens' RevisionEntry (Prelude.Maybe Prelude.Text)+revisionEntry_comment = Lens.lens (\RevisionEntry' {comment} -> comment) (\s@RevisionEntry' {} a -> s {comment = a} :: RevisionEntry)++-- | To publish a revision to a data set in a product, the revision must+-- first be finalized. Finalizing a revision tells AWS Data Exchange that+-- your changes to the assets in the revision are complete. After it\'s in+-- this read-only state, you can publish the revision to your products.+-- Finalized revisions can be published through the AWS Data Exchange+-- console or the AWS Marketplace Catalog API, using the StartChangeSet AWS+-- Marketplace Catalog API action. When using the API, revisions are+-- uniquely identified by their ARN.+revisionEntry_finalized :: Lens.Lens' RevisionEntry (Prelude.Maybe Prelude.Bool)+revisionEntry_finalized = Lens.lens (\RevisionEntry' {finalized} -> finalized) (\s@RevisionEntry' {} a -> s {finalized = a} :: RevisionEntry)++-- | A required comment to inform subscribers of the reason their access to+-- the revision was revoked.+revisionEntry_revocationComment :: Lens.Lens' RevisionEntry (Prelude.Maybe Prelude.Text)+revisionEntry_revocationComment = Lens.lens (\RevisionEntry' {revocationComment} -> revocationComment) (\s@RevisionEntry' {} a -> s {revocationComment = a} :: RevisionEntry)++-- | A status indicating that subscribers\' access to the revision was+-- revoked.+revisionEntry_revoked :: Lens.Lens' RevisionEntry (Prelude.Maybe Prelude.Bool)+revisionEntry_revoked = Lens.lens (\RevisionEntry' {revoked} -> revoked) (\s@RevisionEntry' {} a -> s {revoked = a} :: RevisionEntry)++-- | The date and time that the revision was revoked, in ISO 8601 format.+revisionEntry_revokedAt :: Lens.Lens' RevisionEntry (Prelude.Maybe Prelude.UTCTime)+revisionEntry_revokedAt = Lens.lens (\RevisionEntry' {revokedAt} -> revokedAt) (\s@RevisionEntry' {} a -> s {revokedAt = a} :: RevisionEntry) Prelude.. Lens.mapping Data._Time++-- | The revision ID of the owned revision corresponding to the entitled+-- revision being viewed. This parameter is returned when a revision owner+-- is viewing the entitled copy of its owned revision.+revisionEntry_sourceId :: Lens.Lens' RevisionEntry (Prelude.Maybe Prelude.Text)+revisionEntry_sourceId = Lens.lens (\RevisionEntry' {sourceId} -> sourceId) (\s@RevisionEntry' {} a -> s {sourceId = a} :: RevisionEntry)++-- | The ARN for the revision.+revisionEntry_arn :: Lens.Lens' RevisionEntry Prelude.Text+revisionEntry_arn = Lens.lens (\RevisionEntry' {arn} -> arn) (\s@RevisionEntry' {} a -> s {arn = a} :: RevisionEntry)++-- | The date and time that the revision was created, in ISO 8601 format.+revisionEntry_createdAt :: Lens.Lens' RevisionEntry Prelude.UTCTime+revisionEntry_createdAt = Lens.lens (\RevisionEntry' {createdAt} -> createdAt) (\s@RevisionEntry' {} a -> s {createdAt = a} :: RevisionEntry) Prelude.. Data._Time++-- | The unique identifier for the data set associated with the data set+-- revision.+revisionEntry_dataSetId :: Lens.Lens' RevisionEntry Prelude.Text+revisionEntry_dataSetId = Lens.lens (\RevisionEntry' {dataSetId} -> dataSetId) (\s@RevisionEntry' {} a -> s {dataSetId = a} :: RevisionEntry)++-- | The unique identifier for the revision.+revisionEntry_id :: Lens.Lens' RevisionEntry Prelude.Text+revisionEntry_id = Lens.lens (\RevisionEntry' {id} -> id) (\s@RevisionEntry' {} a -> s {id = a} :: RevisionEntry)++-- | The date and time that the revision was last updated, in ISO 8601+-- format.+revisionEntry_updatedAt :: Lens.Lens' RevisionEntry Prelude.UTCTime+revisionEntry_updatedAt = Lens.lens (\RevisionEntry' {updatedAt} -> updatedAt) (\s@RevisionEntry' {} a -> s {updatedAt = a} :: RevisionEntry) Prelude.. Data._Time++instance Data.FromJSON RevisionEntry where+  parseJSON =+    Data.withObject+      "RevisionEntry"+      ( \x ->+          RevisionEntry'+            Prelude.<$> (x Data..:? "Comment")+            Prelude.<*> (x Data..:? "Finalized")+            Prelude.<*> (x Data..:? "RevocationComment")+            Prelude.<*> (x Data..:? "Revoked")+            Prelude.<*> (x Data..:? "RevokedAt")+            Prelude.<*> (x Data..:? "SourceId")+            Prelude.<*> (x Data..: "Arn")+            Prelude.<*> (x Data..: "CreatedAt")+            Prelude.<*> (x Data..: "DataSetId")+            Prelude.<*> (x Data..: "Id")+            Prelude.<*> (x Data..: "UpdatedAt")+      )++instance Prelude.Hashable RevisionEntry where+  hashWithSalt _salt RevisionEntry' {..} =+    _salt+      `Prelude.hashWithSalt` comment+      `Prelude.hashWithSalt` finalized+      `Prelude.hashWithSalt` revocationComment+      `Prelude.hashWithSalt` revoked+      `Prelude.hashWithSalt` revokedAt+      `Prelude.hashWithSalt` sourceId+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` dataSetId+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData RevisionEntry where+  rnf RevisionEntry' {..} =+    Prelude.rnf comment+      `Prelude.seq` Prelude.rnf finalized+      `Prelude.seq` Prelude.rnf revocationComment+      `Prelude.seq` Prelude.rnf revoked+      `Prelude.seq` Prelude.rnf revokedAt+      `Prelude.seq` Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/DataExchange/Types/RevisionPublished.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.DataExchange.Types.RevisionPublished+-- 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.DataExchange.Types.RevisionPublished where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the published revision.+--+-- /See:/ 'newRevisionPublished' smart constructor.+data RevisionPublished = RevisionPublished'+  { -- | The data set ID of the published revision.+    dataSetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RevisionPublished' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSetId', 'revisionPublished_dataSetId' - The data set ID of the published revision.+newRevisionPublished ::+  -- | 'dataSetId'+  Prelude.Text ->+  RevisionPublished+newRevisionPublished pDataSetId_ =+  RevisionPublished' {dataSetId = pDataSetId_}++-- | The data set ID of the published revision.+revisionPublished_dataSetId :: Lens.Lens' RevisionPublished Prelude.Text+revisionPublished_dataSetId = Lens.lens (\RevisionPublished' {dataSetId} -> dataSetId) (\s@RevisionPublished' {} a -> s {dataSetId = a} :: RevisionPublished)++instance Data.FromJSON RevisionPublished where+  parseJSON =+    Data.withObject+      "RevisionPublished"+      ( \x ->+          RevisionPublished'+            Prelude.<$> (x Data..: "DataSetId")+      )++instance Prelude.Hashable RevisionPublished where+  hashWithSalt _salt RevisionPublished' {..} =+    _salt `Prelude.hashWithSalt` dataSetId++instance Prelude.NFData RevisionPublished where+  rnf RevisionPublished' {..} = Prelude.rnf dataSetId++instance Data.ToJSON RevisionPublished where+  toJSON RevisionPublished' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("DataSetId" Data..= dataSetId)]+      )
+ gen/Amazonka/DataExchange/Types/S3DataAccessAsset.hs view
@@ -0,0 +1,134 @@+{-# 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.DataExchange.Types.S3DataAccessAsset+-- 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.DataExchange.Types.S3DataAccessAsset where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Amazon S3 data access that is the asset.+--+-- /See:/ 'newS3DataAccessAsset' smart constructor.+data S3DataAccessAsset = S3DataAccessAsset'+  { -- | The Amazon S3 bucket used for hosting shared data in the Amazon S3 data+    -- access.+    keyPrefixes :: Prelude.Maybe [Prelude.Text],+    -- | S3 keys made available using this asset.+    keys :: Prelude.Maybe [Prelude.Text],+    -- | The automatically-generated bucket-style alias for your Amazon S3 Access+    -- Point. Customers can access their entitled data using the S3 Access+    -- Point alias.+    s3AccessPointAlias :: Prelude.Maybe Prelude.Text,+    -- | The ARN for your Amazon S3 Access Point. Customers can also access their+    -- entitled data using the S3 Access Point ARN.+    s3AccessPointArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon S3 bucket hosting data to be shared in the S3 data access.+    bucket :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3DataAccessAsset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyPrefixes', 's3DataAccessAsset_keyPrefixes' - The Amazon S3 bucket used for hosting shared data in the Amazon S3 data+-- access.+--+-- 'keys', 's3DataAccessAsset_keys' - S3 keys made available using this asset.+--+-- 's3AccessPointAlias', 's3DataAccessAsset_s3AccessPointAlias' - The automatically-generated bucket-style alias for your Amazon S3 Access+-- Point. Customers can access their entitled data using the S3 Access+-- Point alias.+--+-- 's3AccessPointArn', 's3DataAccessAsset_s3AccessPointArn' - The ARN for your Amazon S3 Access Point. Customers can also access their+-- entitled data using the S3 Access Point ARN.+--+-- 'bucket', 's3DataAccessAsset_bucket' - The Amazon S3 bucket hosting data to be shared in the S3 data access.+newS3DataAccessAsset ::+  -- | 'bucket'+  Prelude.Text ->+  S3DataAccessAsset+newS3DataAccessAsset pBucket_ =+  S3DataAccessAsset'+    { keyPrefixes = Prelude.Nothing,+      keys = Prelude.Nothing,+      s3AccessPointAlias = Prelude.Nothing,+      s3AccessPointArn = Prelude.Nothing,+      bucket = pBucket_+    }++-- | The Amazon S3 bucket used for hosting shared data in the Amazon S3 data+-- access.+s3DataAccessAsset_keyPrefixes :: Lens.Lens' S3DataAccessAsset (Prelude.Maybe [Prelude.Text])+s3DataAccessAsset_keyPrefixes = Lens.lens (\S3DataAccessAsset' {keyPrefixes} -> keyPrefixes) (\s@S3DataAccessAsset' {} a -> s {keyPrefixes = a} :: S3DataAccessAsset) Prelude.. Lens.mapping Lens.coerced++-- | S3 keys made available using this asset.+s3DataAccessAsset_keys :: Lens.Lens' S3DataAccessAsset (Prelude.Maybe [Prelude.Text])+s3DataAccessAsset_keys = Lens.lens (\S3DataAccessAsset' {keys} -> keys) (\s@S3DataAccessAsset' {} a -> s {keys = a} :: S3DataAccessAsset) Prelude.. Lens.mapping Lens.coerced++-- | The automatically-generated bucket-style alias for your Amazon S3 Access+-- Point. Customers can access their entitled data using the S3 Access+-- Point alias.+s3DataAccessAsset_s3AccessPointAlias :: Lens.Lens' S3DataAccessAsset (Prelude.Maybe Prelude.Text)+s3DataAccessAsset_s3AccessPointAlias = Lens.lens (\S3DataAccessAsset' {s3AccessPointAlias} -> s3AccessPointAlias) (\s@S3DataAccessAsset' {} a -> s {s3AccessPointAlias = a} :: S3DataAccessAsset)++-- | The ARN for your Amazon S3 Access Point. Customers can also access their+-- entitled data using the S3 Access Point ARN.+s3DataAccessAsset_s3AccessPointArn :: Lens.Lens' S3DataAccessAsset (Prelude.Maybe Prelude.Text)+s3DataAccessAsset_s3AccessPointArn = Lens.lens (\S3DataAccessAsset' {s3AccessPointArn} -> s3AccessPointArn) (\s@S3DataAccessAsset' {} a -> s {s3AccessPointArn = a} :: S3DataAccessAsset)++-- | The Amazon S3 bucket hosting data to be shared in the S3 data access.+s3DataAccessAsset_bucket :: Lens.Lens' S3DataAccessAsset Prelude.Text+s3DataAccessAsset_bucket = Lens.lens (\S3DataAccessAsset' {bucket} -> bucket) (\s@S3DataAccessAsset' {} a -> s {bucket = a} :: S3DataAccessAsset)++instance Data.FromJSON S3DataAccessAsset where+  parseJSON =+    Data.withObject+      "S3DataAccessAsset"+      ( \x ->+          S3DataAccessAsset'+            Prelude.<$> (x Data..:? "KeyPrefixes" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Keys" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "S3AccessPointAlias")+            Prelude.<*> (x Data..:? "S3AccessPointArn")+            Prelude.<*> (x Data..: "Bucket")+      )++instance Prelude.Hashable S3DataAccessAsset where+  hashWithSalt _salt S3DataAccessAsset' {..} =+    _salt+      `Prelude.hashWithSalt` keyPrefixes+      `Prelude.hashWithSalt` keys+      `Prelude.hashWithSalt` s3AccessPointAlias+      `Prelude.hashWithSalt` s3AccessPointArn+      `Prelude.hashWithSalt` bucket++instance Prelude.NFData S3DataAccessAsset where+  rnf S3DataAccessAsset' {..} =+    Prelude.rnf keyPrefixes+      `Prelude.seq` Prelude.rnf keys+      `Prelude.seq` Prelude.rnf s3AccessPointAlias+      `Prelude.seq` Prelude.rnf s3AccessPointArn+      `Prelude.seq` Prelude.rnf bucket
+ gen/Amazonka/DataExchange/Types/S3DataAccessAssetSourceEntry.hs view
@@ -0,0 +1,115 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.S3DataAccessAssetSourceEntry+-- 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.DataExchange.Types.S3DataAccessAssetSourceEntry 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++-- | Source details for an Amazon S3 data access asset.+--+-- /See:/ 'newS3DataAccessAssetSourceEntry' smart constructor.+data S3DataAccessAssetSourceEntry = S3DataAccessAssetSourceEntry'+  { -- | Organizes Amazon S3 asset key prefixes stored in an Amazon S3 bucket.+    keyPrefixes :: Prelude.Maybe [Prelude.Text],+    -- | The keys used to create the Amazon S3 data access.+    keys :: Prelude.Maybe [Prelude.Text],+    -- | The Amazon S3 bucket used for hosting shared data in the Amazon S3 data+    -- access.+    bucket :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3DataAccessAssetSourceEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyPrefixes', 's3DataAccessAssetSourceEntry_keyPrefixes' - Organizes Amazon S3 asset key prefixes stored in an Amazon S3 bucket.+--+-- 'keys', 's3DataAccessAssetSourceEntry_keys' - The keys used to create the Amazon S3 data access.+--+-- 'bucket', 's3DataAccessAssetSourceEntry_bucket' - The Amazon S3 bucket used for hosting shared data in the Amazon S3 data+-- access.+newS3DataAccessAssetSourceEntry ::+  -- | 'bucket'+  Prelude.Text ->+  S3DataAccessAssetSourceEntry+newS3DataAccessAssetSourceEntry pBucket_ =+  S3DataAccessAssetSourceEntry'+    { keyPrefixes =+        Prelude.Nothing,+      keys = Prelude.Nothing,+      bucket = pBucket_+    }++-- | Organizes Amazon S3 asset key prefixes stored in an Amazon S3 bucket.+s3DataAccessAssetSourceEntry_keyPrefixes :: Lens.Lens' S3DataAccessAssetSourceEntry (Prelude.Maybe [Prelude.Text])+s3DataAccessAssetSourceEntry_keyPrefixes = Lens.lens (\S3DataAccessAssetSourceEntry' {keyPrefixes} -> keyPrefixes) (\s@S3DataAccessAssetSourceEntry' {} a -> s {keyPrefixes = a} :: S3DataAccessAssetSourceEntry) Prelude.. Lens.mapping Lens.coerced++-- | The keys used to create the Amazon S3 data access.+s3DataAccessAssetSourceEntry_keys :: Lens.Lens' S3DataAccessAssetSourceEntry (Prelude.Maybe [Prelude.Text])+s3DataAccessAssetSourceEntry_keys = Lens.lens (\S3DataAccessAssetSourceEntry' {keys} -> keys) (\s@S3DataAccessAssetSourceEntry' {} a -> s {keys = a} :: S3DataAccessAssetSourceEntry) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon S3 bucket used for hosting shared data in the Amazon S3 data+-- access.+s3DataAccessAssetSourceEntry_bucket :: Lens.Lens' S3DataAccessAssetSourceEntry Prelude.Text+s3DataAccessAssetSourceEntry_bucket = Lens.lens (\S3DataAccessAssetSourceEntry' {bucket} -> bucket) (\s@S3DataAccessAssetSourceEntry' {} a -> s {bucket = a} :: S3DataAccessAssetSourceEntry)++instance Data.FromJSON S3DataAccessAssetSourceEntry where+  parseJSON =+    Data.withObject+      "S3DataAccessAssetSourceEntry"+      ( \x ->+          S3DataAccessAssetSourceEntry'+            Prelude.<$> (x Data..:? "KeyPrefixes" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Keys" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Bucket")+      )++instance+  Prelude.Hashable+    S3DataAccessAssetSourceEntry+  where+  hashWithSalt _salt S3DataAccessAssetSourceEntry' {..} =+    _salt+      `Prelude.hashWithSalt` keyPrefixes+      `Prelude.hashWithSalt` keys+      `Prelude.hashWithSalt` bucket++instance Prelude.NFData S3DataAccessAssetSourceEntry where+  rnf S3DataAccessAssetSourceEntry' {..} =+    Prelude.rnf keyPrefixes+      `Prelude.seq` Prelude.rnf keys+      `Prelude.seq` Prelude.rnf bucket++instance Data.ToJSON S3DataAccessAssetSourceEntry where+  toJSON S3DataAccessAssetSourceEntry' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("KeyPrefixes" Data..=) Prelude.<$> keyPrefixes,+            ("Keys" Data..=) Prelude.<$> keys,+            Prelude.Just ("Bucket" Data..= bucket)+          ]+      )
+ gen/Amazonka/DataExchange/Types/S3SnapshotAsset.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.S3SnapshotAsset+-- 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.DataExchange.Types.S3SnapshotAsset where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Amazon S3 object that is the asset.+--+-- /See:/ 'newS3SnapshotAsset' smart constructor.+data S3SnapshotAsset = S3SnapshotAsset'+  { -- | The size of the Amazon S3 object that is the object.+    size :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3SnapshotAsset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'size', 's3SnapshotAsset_size' - The size of the Amazon S3 object that is the object.+newS3SnapshotAsset ::+  -- | 'size'+  Prelude.Double ->+  S3SnapshotAsset+newS3SnapshotAsset pSize_ =+  S3SnapshotAsset' {size = pSize_}++-- | The size of the Amazon S3 object that is the object.+s3SnapshotAsset_size :: Lens.Lens' S3SnapshotAsset Prelude.Double+s3SnapshotAsset_size = Lens.lens (\S3SnapshotAsset' {size} -> size) (\s@S3SnapshotAsset' {} a -> s {size = a} :: S3SnapshotAsset)++instance Data.FromJSON S3SnapshotAsset where+  parseJSON =+    Data.withObject+      "S3SnapshotAsset"+      ( \x ->+          S3SnapshotAsset' Prelude.<$> (x Data..: "Size")+      )++instance Prelude.Hashable S3SnapshotAsset where+  hashWithSalt _salt S3SnapshotAsset' {..} =+    _salt `Prelude.hashWithSalt` size++instance Prelude.NFData S3SnapshotAsset where+  rnf S3SnapshotAsset' {..} = Prelude.rnf size
+ gen/Amazonka/DataExchange/Types/ServerSideEncryptionTypes.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.DataExchange.Types.ServerSideEncryptionTypes+-- 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.DataExchange.Types.ServerSideEncryptionTypes+  ( ServerSideEncryptionTypes+      ( ..,+        ServerSideEncryptionTypes_AES256,+        ServerSideEncryptionTypes_Aws_kms+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ServerSideEncryptionTypes = ServerSideEncryptionTypes'+  { fromServerSideEncryptionTypes ::+      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 ServerSideEncryptionTypes_AES256 :: ServerSideEncryptionTypes+pattern ServerSideEncryptionTypes_AES256 = ServerSideEncryptionTypes' "AES256"++pattern ServerSideEncryptionTypes_Aws_kms :: ServerSideEncryptionTypes+pattern ServerSideEncryptionTypes_Aws_kms = ServerSideEncryptionTypes' "aws:kms"++{-# COMPLETE+  ServerSideEncryptionTypes_AES256,+  ServerSideEncryptionTypes_Aws_kms,+  ServerSideEncryptionTypes'+  #-}
+ gen/Amazonka/DataExchange/Types/State.hs view
@@ -0,0 +1,88 @@+{-# 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.DataExchange.Types.State+-- 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.DataExchange.Types.State+  ( State+      ( ..,+        State_CANCELLED,+        State_COMPLETED,+        State_ERROR,+        State_IN_PROGRESS,+        State_TIMED_OUT,+        State_WAITING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype State = State' {fromState :: 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 State_CANCELLED :: State+pattern State_CANCELLED = State' "CANCELLED"++pattern State_COMPLETED :: State+pattern State_COMPLETED = State' "COMPLETED"++pattern State_ERROR :: State+pattern State_ERROR = State' "ERROR"++pattern State_IN_PROGRESS :: State+pattern State_IN_PROGRESS = State' "IN_PROGRESS"++pattern State_TIMED_OUT :: State+pattern State_TIMED_OUT = State' "TIMED_OUT"++pattern State_WAITING :: State+pattern State_WAITING = State' "WAITING"++{-# COMPLETE+  State_CANCELLED,+  State_COMPLETED,+  State_ERROR,+  State_IN_PROGRESS,+  State_TIMED_OUT,+  State_WAITING,+  State'+  #-}
+ gen/Amazonka/DataExchange/Types/TableLFTagPolicy.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.Types.TableLFTagPolicy+-- 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.DataExchange.Types.TableLFTagPolicy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.LFTag+import qualified Amazonka.Prelude as Prelude++-- | The LF-tag policy for a table resource.+--+-- /See:/ 'newTableLFTagPolicy' smart constructor.+data TableLFTagPolicy = TableLFTagPolicy'+  { -- | A list of LF-tag conditions that apply to table resources.+    expression :: [LFTag]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TableLFTagPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'expression', 'tableLFTagPolicy_expression' - A list of LF-tag conditions that apply to table resources.+newTableLFTagPolicy ::+  TableLFTagPolicy+newTableLFTagPolicy =+  TableLFTagPolicy' {expression = Prelude.mempty}++-- | A list of LF-tag conditions that apply to table resources.+tableLFTagPolicy_expression :: Lens.Lens' TableLFTagPolicy [LFTag]+tableLFTagPolicy_expression = Lens.lens (\TableLFTagPolicy' {expression} -> expression) (\s@TableLFTagPolicy' {} a -> s {expression = a} :: TableLFTagPolicy) Prelude.. Lens.coerced++instance Data.FromJSON TableLFTagPolicy where+  parseJSON =+    Data.withObject+      "TableLFTagPolicy"+      ( \x ->+          TableLFTagPolicy'+            Prelude.<$> (x Data..:? "Expression" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable TableLFTagPolicy where+  hashWithSalt _salt TableLFTagPolicy' {..} =+    _salt `Prelude.hashWithSalt` expression++instance Prelude.NFData TableLFTagPolicy where+  rnf TableLFTagPolicy' {..} = Prelude.rnf expression
+ gen/Amazonka/DataExchange/Types/TableLFTagPolicyAndPermissions.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.DataExchange.Types.TableLFTagPolicyAndPermissions+-- 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.DataExchange.Types.TableLFTagPolicyAndPermissions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types.LFTag+import Amazonka.DataExchange.Types.TableTagPolicyLFPermission+import qualified Amazonka.Prelude as Prelude++-- | The LF-tag policy and permissions that apply to table resources.+--+-- /See:/ 'newTableLFTagPolicyAndPermissions' smart constructor.+data TableLFTagPolicyAndPermissions = TableLFTagPolicyAndPermissions'+  { -- | A list of LF-tag conditions that apply to table resources.+    expression :: [LFTag],+    -- | The permissions granted to subscribers on table resources.+    permissions :: [TableTagPolicyLFPermission]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TableLFTagPolicyAndPermissions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'expression', 'tableLFTagPolicyAndPermissions_expression' - A list of LF-tag conditions that apply to table resources.+--+-- 'permissions', 'tableLFTagPolicyAndPermissions_permissions' - The permissions granted to subscribers on table resources.+newTableLFTagPolicyAndPermissions ::+  TableLFTagPolicyAndPermissions+newTableLFTagPolicyAndPermissions =+  TableLFTagPolicyAndPermissions'+    { expression =+        Prelude.mempty,+      permissions = Prelude.mempty+    }++-- | A list of LF-tag conditions that apply to table resources.+tableLFTagPolicyAndPermissions_expression :: Lens.Lens' TableLFTagPolicyAndPermissions [LFTag]+tableLFTagPolicyAndPermissions_expression = Lens.lens (\TableLFTagPolicyAndPermissions' {expression} -> expression) (\s@TableLFTagPolicyAndPermissions' {} a -> s {expression = a} :: TableLFTagPolicyAndPermissions) Prelude.. Lens.coerced++-- | The permissions granted to subscribers on table resources.+tableLFTagPolicyAndPermissions_permissions :: Lens.Lens' TableLFTagPolicyAndPermissions [TableTagPolicyLFPermission]+tableLFTagPolicyAndPermissions_permissions = Lens.lens (\TableLFTagPolicyAndPermissions' {permissions} -> permissions) (\s@TableLFTagPolicyAndPermissions' {} a -> s {permissions = a} :: TableLFTagPolicyAndPermissions) Prelude.. Lens.coerced++instance Data.FromJSON TableLFTagPolicyAndPermissions where+  parseJSON =+    Data.withObject+      "TableLFTagPolicyAndPermissions"+      ( \x ->+          TableLFTagPolicyAndPermissions'+            Prelude.<$> (x Data..:? "Expression" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Permissions" Data..!= Prelude.mempty)+      )++instance+  Prelude.Hashable+    TableLFTagPolicyAndPermissions+  where+  hashWithSalt+    _salt+    TableLFTagPolicyAndPermissions' {..} =+      _salt+        `Prelude.hashWithSalt` expression+        `Prelude.hashWithSalt` permissions++instance+  Prelude.NFData+    TableLFTagPolicyAndPermissions+  where+  rnf TableLFTagPolicyAndPermissions' {..} =+    Prelude.rnf expression+      `Prelude.seq` Prelude.rnf permissions++instance Data.ToJSON TableLFTagPolicyAndPermissions where+  toJSON TableLFTagPolicyAndPermissions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Expression" Data..= expression),+            Prelude.Just ("Permissions" Data..= permissions)+          ]+      )
+ gen/Amazonka/DataExchange/Types/TableTagPolicyLFPermission.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.DataExchange.Types.TableTagPolicyLFPermission+-- 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.DataExchange.Types.TableTagPolicyLFPermission+  ( TableTagPolicyLFPermission+      ( ..,+        TableTagPolicyLFPermission_DESCRIBE,+        TableTagPolicyLFPermission_SELECT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TableTagPolicyLFPermission = TableTagPolicyLFPermission'+  { fromTableTagPolicyLFPermission ::+      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 TableTagPolicyLFPermission_DESCRIBE :: TableTagPolicyLFPermission+pattern TableTagPolicyLFPermission_DESCRIBE = TableTagPolicyLFPermission' "DESCRIBE"++pattern TableTagPolicyLFPermission_SELECT :: TableTagPolicyLFPermission+pattern TableTagPolicyLFPermission_SELECT = TableTagPolicyLFPermission' "SELECT"++{-# COMPLETE+  TableTagPolicyLFPermission_DESCRIBE,+  TableTagPolicyLFPermission_SELECT,+  TableTagPolicyLFPermission'+  #-}
+ gen/Amazonka/DataExchange/Types/Type.hs view
@@ -0,0 +1,103 @@+{-# 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.DataExchange.Types.Type+-- 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.DataExchange.Types.Type+  ( Type+      ( ..,+        Type_CREATE_S3_DATA_ACCESS_FROM_S3_BUCKET,+        Type_EXPORT_ASSETS_TO_S3,+        Type_EXPORT_ASSET_TO_SIGNED_URL,+        Type_EXPORT_REVISIONS_TO_S3,+        Type_IMPORT_ASSETS_FROM_LAKE_FORMATION_TAG_POLICY,+        Type_IMPORT_ASSETS_FROM_REDSHIFT_DATA_SHARES,+        Type_IMPORT_ASSETS_FROM_S3,+        Type_IMPORT_ASSET_FROM_API_GATEWAY_API,+        Type_IMPORT_ASSET_FROM_SIGNED_URL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Type = Type' {fromType :: 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 Type_CREATE_S3_DATA_ACCESS_FROM_S3_BUCKET :: Type+pattern Type_CREATE_S3_DATA_ACCESS_FROM_S3_BUCKET = Type' "CREATE_S3_DATA_ACCESS_FROM_S3_BUCKET"++pattern Type_EXPORT_ASSETS_TO_S3 :: Type+pattern Type_EXPORT_ASSETS_TO_S3 = Type' "EXPORT_ASSETS_TO_S3"++pattern Type_EXPORT_ASSET_TO_SIGNED_URL :: Type+pattern Type_EXPORT_ASSET_TO_SIGNED_URL = Type' "EXPORT_ASSET_TO_SIGNED_URL"++pattern Type_EXPORT_REVISIONS_TO_S3 :: Type+pattern Type_EXPORT_REVISIONS_TO_S3 = Type' "EXPORT_REVISIONS_TO_S3"++pattern Type_IMPORT_ASSETS_FROM_LAKE_FORMATION_TAG_POLICY :: Type+pattern Type_IMPORT_ASSETS_FROM_LAKE_FORMATION_TAG_POLICY = Type' "IMPORT_ASSETS_FROM_LAKE_FORMATION_TAG_POLICY"++pattern Type_IMPORT_ASSETS_FROM_REDSHIFT_DATA_SHARES :: Type+pattern Type_IMPORT_ASSETS_FROM_REDSHIFT_DATA_SHARES = Type' "IMPORT_ASSETS_FROM_REDSHIFT_DATA_SHARES"++pattern Type_IMPORT_ASSETS_FROM_S3 :: Type+pattern Type_IMPORT_ASSETS_FROM_S3 = Type' "IMPORT_ASSETS_FROM_S3"++pattern Type_IMPORT_ASSET_FROM_API_GATEWAY_API :: Type+pattern Type_IMPORT_ASSET_FROM_API_GATEWAY_API = Type' "IMPORT_ASSET_FROM_API_GATEWAY_API"++pattern Type_IMPORT_ASSET_FROM_SIGNED_URL :: Type+pattern Type_IMPORT_ASSET_FROM_SIGNED_URL = Type' "IMPORT_ASSET_FROM_SIGNED_URL"++{-# COMPLETE+  Type_CREATE_S3_DATA_ACCESS_FROM_S3_BUCKET,+  Type_EXPORT_ASSETS_TO_S3,+  Type_EXPORT_ASSET_TO_SIGNED_URL,+  Type_EXPORT_REVISIONS_TO_S3,+  Type_IMPORT_ASSETS_FROM_LAKE_FORMATION_TAG_POLICY,+  Type_IMPORT_ASSETS_FROM_REDSHIFT_DATA_SHARES,+  Type_IMPORT_ASSETS_FROM_S3,+  Type_IMPORT_ASSET_FROM_API_GATEWAY_API,+  Type_IMPORT_ASSET_FROM_SIGNED_URL,+  Type'+  #-}
+ gen/Amazonka/DataExchange/UntagResource.hs view
@@ -0,0 +1,140 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataExchange.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)+--+-- This operation removes one or more tags from a resource.+module Amazonka.DataExchange.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.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'+  { -- | An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.+    resourceArn :: Prelude.Text,+    -- | The key tags.+    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' - An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.+--+-- 'tagKeys', 'untagResource_tagKeys' - The key tags.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++-- | An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The key tags.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull UntagResourceResponse'++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newUntagResourceResponse ::+  UntagResourceResponse+newUntagResourceResponse = UntagResourceResponse'++instance Prelude.NFData UntagResourceResponse where+  rnf _ = ()
+ gen/Amazonka/DataExchange/UpdateAsset.hs view
@@ -0,0 +1,375 @@+{-# 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.DataExchange.UpdateAsset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation updates an asset.+module Amazonka.DataExchange.UpdateAsset+  ( -- * Creating a Request+    UpdateAsset (..),+    newUpdateAsset,++    -- * Request Lenses+    updateAsset_assetId,+    updateAsset_dataSetId,+    updateAsset_name,+    updateAsset_revisionId,++    -- * Destructuring the Response+    UpdateAssetResponse (..),+    newUpdateAssetResponse,++    -- * Response Lenses+    updateAssetResponse_arn,+    updateAssetResponse_assetDetails,+    updateAssetResponse_assetType,+    updateAssetResponse_createdAt,+    updateAssetResponse_dataSetId,+    updateAssetResponse_id,+    updateAssetResponse_name,+    updateAssetResponse_revisionId,+    updateAssetResponse_sourceId,+    updateAssetResponse_updatedAt,+    updateAssetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateAsset' smart constructor.+data UpdateAsset = UpdateAsset'+  { -- | The unique identifier for an asset.+    assetId :: Prelude.Text,+    -- | The unique identifier for a data set.+    dataSetId :: Prelude.Text,+    -- | The name of the asset. When importing from Amazon S3, the Amazon S3+    -- object key is used as the asset name. When exporting to Amazon S3, the+    -- asset name is used as default target Amazon S3 object key. When+    -- importing from Amazon API Gateway API, the API name is used as the asset+    -- name. When importing from Amazon Redshift, the datashare name is used as+    -- the asset name. When importing from AWS Lake Formation, the static+    -- values of \"Database(s) included in the LF-tag policy\" or \"Table(s)+    -- included in LF-tag policy\" are used as the name.+    name :: Prelude.Text,+    -- | The unique identifier for a revision.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAsset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assetId', 'updateAsset_assetId' - The unique identifier for an asset.+--+-- 'dataSetId', 'updateAsset_dataSetId' - The unique identifier for a data set.+--+-- 'name', 'updateAsset_name' - The name of the asset. When importing from Amazon S3, the Amazon S3+-- object key is used as the asset name. When exporting to Amazon S3, the+-- asset name is used as default target Amazon S3 object key. When+-- importing from Amazon API Gateway API, the API name is used as the asset+-- name. When importing from Amazon Redshift, the datashare name is used as+-- the asset name. When importing from AWS Lake Formation, the static+-- values of \"Database(s) included in the LF-tag policy\" or \"Table(s)+-- included in LF-tag policy\" are used as the name.+--+-- 'revisionId', 'updateAsset_revisionId' - The unique identifier for a revision.+newUpdateAsset ::+  -- | 'assetId'+  Prelude.Text ->+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  UpdateAsset+newUpdateAsset+  pAssetId_+  pDataSetId_+  pName_+  pRevisionId_ =+    UpdateAsset'+      { assetId = pAssetId_,+        dataSetId = pDataSetId_,+        name = pName_,+        revisionId = pRevisionId_+      }++-- | The unique identifier for an asset.+updateAsset_assetId :: Lens.Lens' UpdateAsset Prelude.Text+updateAsset_assetId = Lens.lens (\UpdateAsset' {assetId} -> assetId) (\s@UpdateAsset' {} a -> s {assetId = a} :: UpdateAsset)++-- | The unique identifier for a data set.+updateAsset_dataSetId :: Lens.Lens' UpdateAsset Prelude.Text+updateAsset_dataSetId = Lens.lens (\UpdateAsset' {dataSetId} -> dataSetId) (\s@UpdateAsset' {} a -> s {dataSetId = a} :: UpdateAsset)++-- | The name of the asset. When importing from Amazon S3, the Amazon S3+-- object key is used as the asset name. When exporting to Amazon S3, the+-- asset name is used as default target Amazon S3 object key. When+-- importing from Amazon API Gateway API, the API name is used as the asset+-- name. When importing from Amazon Redshift, the datashare name is used as+-- the asset name. When importing from AWS Lake Formation, the static+-- values of \"Database(s) included in the LF-tag policy\" or \"Table(s)+-- included in LF-tag policy\" are used as the name.+updateAsset_name :: Lens.Lens' UpdateAsset Prelude.Text+updateAsset_name = Lens.lens (\UpdateAsset' {name} -> name) (\s@UpdateAsset' {} a -> s {name = a} :: UpdateAsset)++-- | The unique identifier for a revision.+updateAsset_revisionId :: Lens.Lens' UpdateAsset Prelude.Text+updateAsset_revisionId = Lens.lens (\UpdateAsset' {revisionId} -> revisionId) (\s@UpdateAsset' {} a -> s {revisionId = a} :: UpdateAsset)++instance Core.AWSRequest UpdateAsset where+  type AWSResponse UpdateAsset = UpdateAssetResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateAssetResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "AssetDetails")+            Prelude.<*> (x Data..?> "AssetType")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "DataSetId")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "RevisionId")+            Prelude.<*> (x Data..?> "SourceId")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateAsset where+  hashWithSalt _salt UpdateAsset' {..} =+    _salt+      `Prelude.hashWithSalt` assetId+      `Prelude.hashWithSalt` dataSetId+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` revisionId++instance Prelude.NFData UpdateAsset where+  rnf UpdateAsset' {..} =+    Prelude.rnf assetId+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf revisionId++instance Data.ToHeaders UpdateAsset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateAsset where+  toJSON UpdateAsset' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Name" Data..= name)]+      )++instance Data.ToPath UpdateAsset where+  toPath UpdateAsset' {..} =+    Prelude.mconcat+      [ "/v1/data-sets/",+        Data.toBS dataSetId,+        "/revisions/",+        Data.toBS revisionId,+        "/assets/",+        Data.toBS assetId+      ]++instance Data.ToQuery UpdateAsset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAssetResponse' smart constructor.+data UpdateAssetResponse = UpdateAssetResponse'+  { -- | The ARN for the asset.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Details about the asset.+    assetDetails :: Prelude.Maybe AssetDetails,+    -- | The type of asset that is added to a data set.+    assetType :: Prelude.Maybe AssetType,+    -- | The date and time that the asset was created, in ISO 8601 format.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The unique identifier for the data set associated with this asset.+    dataSetId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the asset.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the asset. When importing from Amazon S3, the Amazon S3+    -- object key is used as the asset name. When exporting to Amazon S3, the+    -- asset name is used as default target Amazon S3 object key. When+    -- importing from Amazon API Gateway API, the API name is used as the asset+    -- name. When importing from Amazon Redshift, the datashare name is used as+    -- the asset name. When importing from AWS Lake Formation, the static+    -- values of \"Database(s) included in the LF-tag policy\"- or \"Table(s)+    -- included in LF-tag policy\" are used as the asset name.+    name :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the revision associated with this asset.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | The asset ID of the owned asset corresponding to the entitled asset+    -- being viewed. This parameter is returned when an asset owner is viewing+    -- the entitled copy of its owned asset.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the asset was last updated, in ISO 8601 format.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAssetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateAssetResponse_arn' - The ARN for the asset.+--+-- 'assetDetails', 'updateAssetResponse_assetDetails' - Details about the asset.+--+-- 'assetType', 'updateAssetResponse_assetType' - The type of asset that is added to a data set.+--+-- 'createdAt', 'updateAssetResponse_createdAt' - The date and time that the asset was created, in ISO 8601 format.+--+-- 'dataSetId', 'updateAssetResponse_dataSetId' - The unique identifier for the data set associated with this asset.+--+-- 'id', 'updateAssetResponse_id' - The unique identifier for the asset.+--+-- 'name', 'updateAssetResponse_name' - The name of the asset. When importing from Amazon S3, the Amazon S3+-- object key is used as the asset name. When exporting to Amazon S3, the+-- asset name is used as default target Amazon S3 object key. When+-- importing from Amazon API Gateway API, the API name is used as the asset+-- name. When importing from Amazon Redshift, the datashare name is used as+-- the asset name. When importing from AWS Lake Formation, the static+-- values of \"Database(s) included in the LF-tag policy\"- or \"Table(s)+-- included in LF-tag policy\" are used as the asset name.+--+-- 'revisionId', 'updateAssetResponse_revisionId' - The unique identifier for the revision associated with this asset.+--+-- 'sourceId', 'updateAssetResponse_sourceId' - The asset ID of the owned asset corresponding to the entitled asset+-- being viewed. This parameter is returned when an asset owner is viewing+-- the entitled copy of its owned asset.+--+-- 'updatedAt', 'updateAssetResponse_updatedAt' - The date and time that the asset was last updated, in ISO 8601 format.+--+-- 'httpStatus', 'updateAssetResponse_httpStatus' - The response's http status code.+newUpdateAssetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateAssetResponse+newUpdateAssetResponse pHttpStatus_ =+  UpdateAssetResponse'+    { arn = Prelude.Nothing,+      assetDetails = Prelude.Nothing,+      assetType = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      dataSetId = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      revisionId = Prelude.Nothing,+      sourceId = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN for the asset.+updateAssetResponse_arn :: Lens.Lens' UpdateAssetResponse (Prelude.Maybe Prelude.Text)+updateAssetResponse_arn = Lens.lens (\UpdateAssetResponse' {arn} -> arn) (\s@UpdateAssetResponse' {} a -> s {arn = a} :: UpdateAssetResponse)++-- | Details about the asset.+updateAssetResponse_assetDetails :: Lens.Lens' UpdateAssetResponse (Prelude.Maybe AssetDetails)+updateAssetResponse_assetDetails = Lens.lens (\UpdateAssetResponse' {assetDetails} -> assetDetails) (\s@UpdateAssetResponse' {} a -> s {assetDetails = a} :: UpdateAssetResponse)++-- | The type of asset that is added to a data set.+updateAssetResponse_assetType :: Lens.Lens' UpdateAssetResponse (Prelude.Maybe AssetType)+updateAssetResponse_assetType = Lens.lens (\UpdateAssetResponse' {assetType} -> assetType) (\s@UpdateAssetResponse' {} a -> s {assetType = a} :: UpdateAssetResponse)++-- | The date and time that the asset was created, in ISO 8601 format.+updateAssetResponse_createdAt :: Lens.Lens' UpdateAssetResponse (Prelude.Maybe Prelude.UTCTime)+updateAssetResponse_createdAt = Lens.lens (\UpdateAssetResponse' {createdAt} -> createdAt) (\s@UpdateAssetResponse' {} a -> s {createdAt = a} :: UpdateAssetResponse) Prelude.. Lens.mapping Data._Time++-- | The unique identifier for the data set associated with this asset.+updateAssetResponse_dataSetId :: Lens.Lens' UpdateAssetResponse (Prelude.Maybe Prelude.Text)+updateAssetResponse_dataSetId = Lens.lens (\UpdateAssetResponse' {dataSetId} -> dataSetId) (\s@UpdateAssetResponse' {} a -> s {dataSetId = a} :: UpdateAssetResponse)++-- | The unique identifier for the asset.+updateAssetResponse_id :: Lens.Lens' UpdateAssetResponse (Prelude.Maybe Prelude.Text)+updateAssetResponse_id = Lens.lens (\UpdateAssetResponse' {id} -> id) (\s@UpdateAssetResponse' {} a -> s {id = a} :: UpdateAssetResponse)++-- | The name of the asset. When importing from Amazon S3, the Amazon S3+-- object key is used as the asset name. When exporting to Amazon S3, the+-- asset name is used as default target Amazon S3 object key. When+-- importing from Amazon API Gateway API, the API name is used as the asset+-- name. When importing from Amazon Redshift, the datashare name is used as+-- the asset name. When importing from AWS Lake Formation, the static+-- values of \"Database(s) included in the LF-tag policy\"- or \"Table(s)+-- included in LF-tag policy\" are used as the asset name.+updateAssetResponse_name :: Lens.Lens' UpdateAssetResponse (Prelude.Maybe Prelude.Text)+updateAssetResponse_name = Lens.lens (\UpdateAssetResponse' {name} -> name) (\s@UpdateAssetResponse' {} a -> s {name = a} :: UpdateAssetResponse)++-- | The unique identifier for the revision associated with this asset.+updateAssetResponse_revisionId :: Lens.Lens' UpdateAssetResponse (Prelude.Maybe Prelude.Text)+updateAssetResponse_revisionId = Lens.lens (\UpdateAssetResponse' {revisionId} -> revisionId) (\s@UpdateAssetResponse' {} a -> s {revisionId = a} :: UpdateAssetResponse)++-- | The asset ID of the owned asset corresponding to the entitled asset+-- being viewed. This parameter is returned when an asset owner is viewing+-- the entitled copy of its owned asset.+updateAssetResponse_sourceId :: Lens.Lens' UpdateAssetResponse (Prelude.Maybe Prelude.Text)+updateAssetResponse_sourceId = Lens.lens (\UpdateAssetResponse' {sourceId} -> sourceId) (\s@UpdateAssetResponse' {} a -> s {sourceId = a} :: UpdateAssetResponse)++-- | The date and time that the asset was last updated, in ISO 8601 format.+updateAssetResponse_updatedAt :: Lens.Lens' UpdateAssetResponse (Prelude.Maybe Prelude.UTCTime)+updateAssetResponse_updatedAt = Lens.lens (\UpdateAssetResponse' {updatedAt} -> updatedAt) (\s@UpdateAssetResponse' {} a -> s {updatedAt = a} :: UpdateAssetResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+updateAssetResponse_httpStatus :: Lens.Lens' UpdateAssetResponse Prelude.Int+updateAssetResponse_httpStatus = Lens.lens (\UpdateAssetResponse' {httpStatus} -> httpStatus) (\s@UpdateAssetResponse' {} a -> s {httpStatus = a} :: UpdateAssetResponse)++instance Prelude.NFData UpdateAssetResponse where+  rnf UpdateAssetResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf assetDetails+      `Prelude.seq` Prelude.rnf assetType+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/UpdateDataSet.hs view
@@ -0,0 +1,318 @@+{-# 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.DataExchange.UpdateDataSet+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation updates a data set.+module Amazonka.DataExchange.UpdateDataSet+  ( -- * Creating a Request+    UpdateDataSet (..),+    newUpdateDataSet,++    -- * Request Lenses+    updateDataSet_description,+    updateDataSet_name,+    updateDataSet_dataSetId,++    -- * Destructuring the Response+    UpdateDataSetResponse (..),+    newUpdateDataSetResponse,++    -- * Response Lenses+    updateDataSetResponse_arn,+    updateDataSetResponse_assetType,+    updateDataSetResponse_createdAt,+    updateDataSetResponse_description,+    updateDataSetResponse_id,+    updateDataSetResponse_name,+    updateDataSetResponse_origin,+    updateDataSetResponse_originDetails,+    updateDataSetResponse_sourceId,+    updateDataSetResponse_updatedAt,+    updateDataSetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateDataSet' smart constructor.+data UpdateDataSet = UpdateDataSet'+  { -- | The description for the data set.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the data set.+    name :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for a data set.+    dataSetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDataSet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateDataSet_description' - The description for the data set.+--+-- 'name', 'updateDataSet_name' - The name of the data set.+--+-- 'dataSetId', 'updateDataSet_dataSetId' - The unique identifier for a data set.+newUpdateDataSet ::+  -- | 'dataSetId'+  Prelude.Text ->+  UpdateDataSet+newUpdateDataSet pDataSetId_ =+  UpdateDataSet'+    { description = Prelude.Nothing,+      name = Prelude.Nothing,+      dataSetId = pDataSetId_+    }++-- | The description for the data set.+updateDataSet_description :: Lens.Lens' UpdateDataSet (Prelude.Maybe Prelude.Text)+updateDataSet_description = Lens.lens (\UpdateDataSet' {description} -> description) (\s@UpdateDataSet' {} a -> s {description = a} :: UpdateDataSet)++-- | The name of the data set.+updateDataSet_name :: Lens.Lens' UpdateDataSet (Prelude.Maybe Prelude.Text)+updateDataSet_name = Lens.lens (\UpdateDataSet' {name} -> name) (\s@UpdateDataSet' {} a -> s {name = a} :: UpdateDataSet)++-- | The unique identifier for a data set.+updateDataSet_dataSetId :: Lens.Lens' UpdateDataSet Prelude.Text+updateDataSet_dataSetId = Lens.lens (\UpdateDataSet' {dataSetId} -> dataSetId) (\s@UpdateDataSet' {} a -> s {dataSetId = a} :: UpdateDataSet)++instance Core.AWSRequest UpdateDataSet where+  type+    AWSResponse UpdateDataSet =+      UpdateDataSetResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateDataSetResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "AssetType")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "Origin")+            Prelude.<*> (x Data..?> "OriginDetails")+            Prelude.<*> (x Data..?> "SourceId")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateDataSet where+  hashWithSalt _salt UpdateDataSet' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` dataSetId++instance Prelude.NFData UpdateDataSet where+  rnf UpdateDataSet' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf dataSetId++instance Data.ToHeaders UpdateDataSet where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateDataSet where+  toJSON UpdateDataSet' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Name" Data..=) Prelude.<$> name+          ]+      )++instance Data.ToPath UpdateDataSet where+  toPath UpdateDataSet' {..} =+    Prelude.mconcat+      ["/v1/data-sets/", Data.toBS dataSetId]++instance Data.ToQuery UpdateDataSet where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateDataSetResponse' smart constructor.+data UpdateDataSetResponse = UpdateDataSetResponse'+  { -- | The ARN for the data set.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The type of asset that is added to a data set.+    assetType :: Prelude.Maybe AssetType,+    -- | The date and time that the data set was created, in ISO 8601 format.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The description for the data set.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the data set.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the data set.+    name :: Prelude.Maybe Prelude.Text,+    -- | A property that defines the data set as OWNED by the account (for+    -- providers) or ENTITLED to the account (for subscribers).+    origin :: Prelude.Maybe Origin,+    -- | If the origin of this data set is ENTITLED, includes the details for the+    -- product on AWS Marketplace.+    originDetails :: Prelude.Maybe OriginDetails,+    -- | The data set ID of the owned data set corresponding to the entitled data+    -- set being viewed. This parameter is returned when a data set owner is+    -- viewing the entitled copy of its owned data set.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the data set was last updated, in ISO 8601+    -- format.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDataSetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateDataSetResponse_arn' - The ARN for the data set.+--+-- 'assetType', 'updateDataSetResponse_assetType' - The type of asset that is added to a data set.+--+-- 'createdAt', 'updateDataSetResponse_createdAt' - The date and time that the data set was created, in ISO 8601 format.+--+-- 'description', 'updateDataSetResponse_description' - The description for the data set.+--+-- 'id', 'updateDataSetResponse_id' - The unique identifier for the data set.+--+-- 'name', 'updateDataSetResponse_name' - The name of the data set.+--+-- 'origin', 'updateDataSetResponse_origin' - A property that defines the data set as OWNED by the account (for+-- providers) or ENTITLED to the account (for subscribers).+--+-- 'originDetails', 'updateDataSetResponse_originDetails' - If the origin of this data set is ENTITLED, includes the details for the+-- product on AWS Marketplace.+--+-- 'sourceId', 'updateDataSetResponse_sourceId' - The data set ID of the owned data set corresponding to the entitled data+-- set being viewed. This parameter is returned when a data set owner is+-- viewing the entitled copy of its owned data set.+--+-- 'updatedAt', 'updateDataSetResponse_updatedAt' - The date and time that the data set was last updated, in ISO 8601+-- format.+--+-- 'httpStatus', 'updateDataSetResponse_httpStatus' - The response's http status code.+newUpdateDataSetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateDataSetResponse+newUpdateDataSetResponse pHttpStatus_ =+  UpdateDataSetResponse'+    { arn = Prelude.Nothing,+      assetType = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      origin = Prelude.Nothing,+      originDetails = Prelude.Nothing,+      sourceId = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN for the data set.+updateDataSetResponse_arn :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Prelude.Text)+updateDataSetResponse_arn = Lens.lens (\UpdateDataSetResponse' {arn} -> arn) (\s@UpdateDataSetResponse' {} a -> s {arn = a} :: UpdateDataSetResponse)++-- | The type of asset that is added to a data set.+updateDataSetResponse_assetType :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe AssetType)+updateDataSetResponse_assetType = Lens.lens (\UpdateDataSetResponse' {assetType} -> assetType) (\s@UpdateDataSetResponse' {} a -> s {assetType = a} :: UpdateDataSetResponse)++-- | The date and time that the data set was created, in ISO 8601 format.+updateDataSetResponse_createdAt :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Prelude.UTCTime)+updateDataSetResponse_createdAt = Lens.lens (\UpdateDataSetResponse' {createdAt} -> createdAt) (\s@UpdateDataSetResponse' {} a -> s {createdAt = a} :: UpdateDataSetResponse) Prelude.. Lens.mapping Data._Time++-- | The description for the data set.+updateDataSetResponse_description :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Prelude.Text)+updateDataSetResponse_description = Lens.lens (\UpdateDataSetResponse' {description} -> description) (\s@UpdateDataSetResponse' {} a -> s {description = a} :: UpdateDataSetResponse)++-- | The unique identifier for the data set.+updateDataSetResponse_id :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Prelude.Text)+updateDataSetResponse_id = Lens.lens (\UpdateDataSetResponse' {id} -> id) (\s@UpdateDataSetResponse' {} a -> s {id = a} :: UpdateDataSetResponse)++-- | The name of the data set.+updateDataSetResponse_name :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Prelude.Text)+updateDataSetResponse_name = Lens.lens (\UpdateDataSetResponse' {name} -> name) (\s@UpdateDataSetResponse' {} a -> s {name = a} :: UpdateDataSetResponse)++-- | A property that defines the data set as OWNED by the account (for+-- providers) or ENTITLED to the account (for subscribers).+updateDataSetResponse_origin :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Origin)+updateDataSetResponse_origin = Lens.lens (\UpdateDataSetResponse' {origin} -> origin) (\s@UpdateDataSetResponse' {} a -> s {origin = a} :: UpdateDataSetResponse)++-- | If the origin of this data set is ENTITLED, includes the details for the+-- product on AWS Marketplace.+updateDataSetResponse_originDetails :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe OriginDetails)+updateDataSetResponse_originDetails = Lens.lens (\UpdateDataSetResponse' {originDetails} -> originDetails) (\s@UpdateDataSetResponse' {} a -> s {originDetails = a} :: UpdateDataSetResponse)++-- | The data set ID of the owned data set corresponding to the entitled data+-- set being viewed. This parameter is returned when a data set owner is+-- viewing the entitled copy of its owned data set.+updateDataSetResponse_sourceId :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Prelude.Text)+updateDataSetResponse_sourceId = Lens.lens (\UpdateDataSetResponse' {sourceId} -> sourceId) (\s@UpdateDataSetResponse' {} a -> s {sourceId = a} :: UpdateDataSetResponse)++-- | The date and time that the data set was last updated, in ISO 8601+-- format.+updateDataSetResponse_updatedAt :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Prelude.UTCTime)+updateDataSetResponse_updatedAt = Lens.lens (\UpdateDataSetResponse' {updatedAt} -> updatedAt) (\s@UpdateDataSetResponse' {} a -> s {updatedAt = a} :: UpdateDataSetResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+updateDataSetResponse_httpStatus :: Lens.Lens' UpdateDataSetResponse Prelude.Int+updateDataSetResponse_httpStatus = Lens.lens (\UpdateDataSetResponse' {httpStatus} -> httpStatus) (\s@UpdateDataSetResponse' {} a -> s {httpStatus = a} :: UpdateDataSetResponse)++instance Prelude.NFData UpdateDataSetResponse where+  rnf UpdateDataSetResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf assetType+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf origin+      `Prelude.seq` Prelude.rnf originDetails+      `Prelude.seq` Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/UpdateEventAction.hs view
@@ -0,0 +1,245 @@+{-# 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.DataExchange.UpdateEventAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation updates the event action.+module Amazonka.DataExchange.UpdateEventAction+  ( -- * Creating a Request+    UpdateEventAction (..),+    newUpdateEventAction,++    -- * Request Lenses+    updateEventAction_action,+    updateEventAction_eventActionId,++    -- * Destructuring the Response+    UpdateEventActionResponse (..),+    newUpdateEventActionResponse,++    -- * Response Lenses+    updateEventActionResponse_action,+    updateEventActionResponse_arn,+    updateEventActionResponse_createdAt,+    updateEventActionResponse_event,+    updateEventActionResponse_id,+    updateEventActionResponse_updatedAt,+    updateEventActionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateEventAction' smart constructor.+data UpdateEventAction = UpdateEventAction'+  { -- | What occurs after a certain event.+    action :: Prelude.Maybe Action,+    -- | The unique identifier for the event action.+    eventActionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEventAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'action', 'updateEventAction_action' - What occurs after a certain event.+--+-- 'eventActionId', 'updateEventAction_eventActionId' - The unique identifier for the event action.+newUpdateEventAction ::+  -- | 'eventActionId'+  Prelude.Text ->+  UpdateEventAction+newUpdateEventAction pEventActionId_ =+  UpdateEventAction'+    { action = Prelude.Nothing,+      eventActionId = pEventActionId_+    }++-- | What occurs after a certain event.+updateEventAction_action :: Lens.Lens' UpdateEventAction (Prelude.Maybe Action)+updateEventAction_action = Lens.lens (\UpdateEventAction' {action} -> action) (\s@UpdateEventAction' {} a -> s {action = a} :: UpdateEventAction)++-- | The unique identifier for the event action.+updateEventAction_eventActionId :: Lens.Lens' UpdateEventAction Prelude.Text+updateEventAction_eventActionId = Lens.lens (\UpdateEventAction' {eventActionId} -> eventActionId) (\s@UpdateEventAction' {} a -> s {eventActionId = a} :: UpdateEventAction)++instance Core.AWSRequest UpdateEventAction where+  type+    AWSResponse UpdateEventAction =+      UpdateEventActionResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateEventActionResponse'+            Prelude.<$> (x Data..?> "Action")+            Prelude.<*> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "Event")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateEventAction where+  hashWithSalt _salt UpdateEventAction' {..} =+    _salt+      `Prelude.hashWithSalt` action+      `Prelude.hashWithSalt` eventActionId++instance Prelude.NFData UpdateEventAction where+  rnf UpdateEventAction' {..} =+    Prelude.rnf action+      `Prelude.seq` Prelude.rnf eventActionId++instance Data.ToHeaders UpdateEventAction where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateEventAction where+  toJSON UpdateEventAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Action" Data..=) Prelude.<$> action]+      )++instance Data.ToPath UpdateEventAction where+  toPath UpdateEventAction' {..} =+    Prelude.mconcat+      ["/v1/event-actions/", Data.toBS eventActionId]++instance Data.ToQuery UpdateEventAction where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateEventActionResponse' smart constructor.+data UpdateEventActionResponse = UpdateEventActionResponse'+  { -- | What occurs after a certain event.+    action :: Prelude.Maybe Action,+    -- | The ARN for the event action.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the event action was created, in ISO 8601 format.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | What occurs to start an action.+    event :: Prelude.Maybe Event,+    -- | The unique identifier for the event action.+    id :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the event action was last updated, in ISO 8601+    -- format.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEventActionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'action', 'updateEventActionResponse_action' - What occurs after a certain event.+--+-- 'arn', 'updateEventActionResponse_arn' - The ARN for the event action.+--+-- 'createdAt', 'updateEventActionResponse_createdAt' - The date and time that the event action was created, in ISO 8601 format.+--+-- 'event', 'updateEventActionResponse_event' - What occurs to start an action.+--+-- 'id', 'updateEventActionResponse_id' - The unique identifier for the event action.+--+-- 'updatedAt', 'updateEventActionResponse_updatedAt' - The date and time that the event action was last updated, in ISO 8601+-- format.+--+-- 'httpStatus', 'updateEventActionResponse_httpStatus' - The response's http status code.+newUpdateEventActionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateEventActionResponse+newUpdateEventActionResponse pHttpStatus_ =+  UpdateEventActionResponse'+    { action =+        Prelude.Nothing,+      arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      event = Prelude.Nothing,+      id = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | What occurs after a certain event.+updateEventActionResponse_action :: Lens.Lens' UpdateEventActionResponse (Prelude.Maybe Action)+updateEventActionResponse_action = Lens.lens (\UpdateEventActionResponse' {action} -> action) (\s@UpdateEventActionResponse' {} a -> s {action = a} :: UpdateEventActionResponse)++-- | The ARN for the event action.+updateEventActionResponse_arn :: Lens.Lens' UpdateEventActionResponse (Prelude.Maybe Prelude.Text)+updateEventActionResponse_arn = Lens.lens (\UpdateEventActionResponse' {arn} -> arn) (\s@UpdateEventActionResponse' {} a -> s {arn = a} :: UpdateEventActionResponse)++-- | The date and time that the event action was created, in ISO 8601 format.+updateEventActionResponse_createdAt :: Lens.Lens' UpdateEventActionResponse (Prelude.Maybe Prelude.UTCTime)+updateEventActionResponse_createdAt = Lens.lens (\UpdateEventActionResponse' {createdAt} -> createdAt) (\s@UpdateEventActionResponse' {} a -> s {createdAt = a} :: UpdateEventActionResponse) Prelude.. Lens.mapping Data._Time++-- | What occurs to start an action.+updateEventActionResponse_event :: Lens.Lens' UpdateEventActionResponse (Prelude.Maybe Event)+updateEventActionResponse_event = Lens.lens (\UpdateEventActionResponse' {event} -> event) (\s@UpdateEventActionResponse' {} a -> s {event = a} :: UpdateEventActionResponse)++-- | The unique identifier for the event action.+updateEventActionResponse_id :: Lens.Lens' UpdateEventActionResponse (Prelude.Maybe Prelude.Text)+updateEventActionResponse_id = Lens.lens (\UpdateEventActionResponse' {id} -> id) (\s@UpdateEventActionResponse' {} a -> s {id = a} :: UpdateEventActionResponse)++-- | The date and time that the event action was last updated, in ISO 8601+-- format.+updateEventActionResponse_updatedAt :: Lens.Lens' UpdateEventActionResponse (Prelude.Maybe Prelude.UTCTime)+updateEventActionResponse_updatedAt = Lens.lens (\UpdateEventActionResponse' {updatedAt} -> updatedAt) (\s@UpdateEventActionResponse' {} a -> s {updatedAt = a} :: UpdateEventActionResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+updateEventActionResponse_httpStatus :: Lens.Lens' UpdateEventActionResponse Prelude.Int+updateEventActionResponse_httpStatus = Lens.lens (\UpdateEventActionResponse' {httpStatus} -> httpStatus) (\s@UpdateEventActionResponse' {} a -> s {httpStatus = a} :: UpdateEventActionResponse)++instance Prelude.NFData UpdateEventActionResponse where+  rnf UpdateEventActionResponse' {..} =+    Prelude.rnf action+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf event+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/UpdateRevision.hs view
@@ -0,0 +1,378 @@+{-# 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.DataExchange.UpdateRevision+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation updates a revision.+module Amazonka.DataExchange.UpdateRevision+  ( -- * Creating a Request+    UpdateRevision (..),+    newUpdateRevision,++    -- * Request Lenses+    updateRevision_comment,+    updateRevision_finalized,+    updateRevision_dataSetId,+    updateRevision_revisionId,++    -- * Destructuring the Response+    UpdateRevisionResponse (..),+    newUpdateRevisionResponse,++    -- * Response Lenses+    updateRevisionResponse_arn,+    updateRevisionResponse_comment,+    updateRevisionResponse_createdAt,+    updateRevisionResponse_dataSetId,+    updateRevisionResponse_finalized,+    updateRevisionResponse_id,+    updateRevisionResponse_revocationComment,+    updateRevisionResponse_revoked,+    updateRevisionResponse_revokedAt,+    updateRevisionResponse_sourceId,+    updateRevisionResponse_updatedAt,+    updateRevisionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateRevision' smart constructor.+data UpdateRevision = UpdateRevision'+  { -- | An optional comment about the revision.+    comment :: Prelude.Maybe Prelude.Text,+    -- | Finalizing a revision tells AWS Data Exchange that your changes to the+    -- assets in the revision are complete. After it\'s in this read-only+    -- state, you can publish the revision to your products.+    finalized :: Prelude.Maybe Prelude.Bool,+    -- | The unique identifier for a data set.+    dataSetId :: Prelude.Text,+    -- | The unique identifier for a revision.+    revisionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRevision' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'comment', 'updateRevision_comment' - An optional comment about the revision.+--+-- 'finalized', 'updateRevision_finalized' - Finalizing a revision tells AWS Data Exchange that your changes to the+-- assets in the revision are complete. After it\'s in this read-only+-- state, you can publish the revision to your products.+--+-- 'dataSetId', 'updateRevision_dataSetId' - The unique identifier for a data set.+--+-- 'revisionId', 'updateRevision_revisionId' - The unique identifier for a revision.+newUpdateRevision ::+  -- | 'dataSetId'+  Prelude.Text ->+  -- | 'revisionId'+  Prelude.Text ->+  UpdateRevision+newUpdateRevision pDataSetId_ pRevisionId_ =+  UpdateRevision'+    { comment = Prelude.Nothing,+      finalized = Prelude.Nothing,+      dataSetId = pDataSetId_,+      revisionId = pRevisionId_+    }++-- | An optional comment about the revision.+updateRevision_comment :: Lens.Lens' UpdateRevision (Prelude.Maybe Prelude.Text)+updateRevision_comment = Lens.lens (\UpdateRevision' {comment} -> comment) (\s@UpdateRevision' {} a -> s {comment = a} :: UpdateRevision)++-- | Finalizing a revision tells AWS Data Exchange that your changes to the+-- assets in the revision are complete. After it\'s in this read-only+-- state, you can publish the revision to your products.+updateRevision_finalized :: Lens.Lens' UpdateRevision (Prelude.Maybe Prelude.Bool)+updateRevision_finalized = Lens.lens (\UpdateRevision' {finalized} -> finalized) (\s@UpdateRevision' {} a -> s {finalized = a} :: UpdateRevision)++-- | The unique identifier for a data set.+updateRevision_dataSetId :: Lens.Lens' UpdateRevision Prelude.Text+updateRevision_dataSetId = Lens.lens (\UpdateRevision' {dataSetId} -> dataSetId) (\s@UpdateRevision' {} a -> s {dataSetId = a} :: UpdateRevision)++-- | The unique identifier for a revision.+updateRevision_revisionId :: Lens.Lens' UpdateRevision Prelude.Text+updateRevision_revisionId = Lens.lens (\UpdateRevision' {revisionId} -> revisionId) (\s@UpdateRevision' {} a -> s {revisionId = a} :: UpdateRevision)++instance Core.AWSRequest UpdateRevision where+  type+    AWSResponse UpdateRevision =+      UpdateRevisionResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateRevisionResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "Comment")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "DataSetId")+            Prelude.<*> (x Data..?> "Finalized")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "RevocationComment")+            Prelude.<*> (x Data..?> "Revoked")+            Prelude.<*> (x Data..?> "RevokedAt")+            Prelude.<*> (x Data..?> "SourceId")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateRevision where+  hashWithSalt _salt UpdateRevision' {..} =+    _salt+      `Prelude.hashWithSalt` comment+      `Prelude.hashWithSalt` finalized+      `Prelude.hashWithSalt` dataSetId+      `Prelude.hashWithSalt` revisionId++instance Prelude.NFData UpdateRevision where+  rnf UpdateRevision' {..} =+    Prelude.rnf comment+      `Prelude.seq` Prelude.rnf finalized+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf revisionId++instance Data.ToHeaders UpdateRevision where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateRevision where+  toJSON UpdateRevision' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Comment" Data..=) Prelude.<$> comment,+            ("Finalized" Data..=) Prelude.<$> finalized+          ]+      )++instance Data.ToPath UpdateRevision where+  toPath UpdateRevision' {..} =+    Prelude.mconcat+      [ "/v1/data-sets/",+        Data.toBS dataSetId,+        "/revisions/",+        Data.toBS revisionId+      ]++instance Data.ToQuery UpdateRevision where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateRevisionResponse' smart constructor.+data UpdateRevisionResponse = UpdateRevisionResponse'+  { -- | The ARN for the revision.+    arn :: Prelude.Maybe Prelude.Text,+    -- | An optional comment about the revision.+    comment :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the revision was created, in ISO 8601 format.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The unique identifier for the data set associated with the data set+    -- revision.+    dataSetId :: Prelude.Maybe Prelude.Text,+    -- | To publish a revision to a data set in a product, the revision must+    -- first be finalized. Finalizing a revision tells AWS Data Exchange that+    -- changes to the assets in the revision are complete. After it\'s in this+    -- read-only state, you can publish the revision to your products.+    -- Finalized revisions can be published through the AWS Data Exchange+    -- console or the AWS Marketplace Catalog API, using the StartChangeSet AWS+    -- Marketplace Catalog API action. When using the API, revisions are+    -- uniquely identified by their ARN.+    finalized :: Prelude.Maybe Prelude.Bool,+    -- | The unique identifier for the revision.+    id :: Prelude.Maybe Prelude.Text,+    -- | A required comment to inform subscribers of the reason their access to+    -- the revision was revoked.+    revocationComment :: Prelude.Maybe Prelude.Text,+    -- | A status indicating that subscribers\' access to the revision was+    -- revoked.+    revoked :: Prelude.Maybe Prelude.Bool,+    -- | The date and time that the revision was revoked, in ISO 8601 format.+    revokedAt :: Prelude.Maybe Data.ISO8601,+    -- | The revision ID of the owned revision corresponding to the entitled+    -- revision being viewed. This parameter is returned when a revision owner+    -- is viewing the entitled copy of its owned revision.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the revision was last updated, in ISO 8601+    -- format.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRevisionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateRevisionResponse_arn' - The ARN for the revision.+--+-- 'comment', 'updateRevisionResponse_comment' - An optional comment about the revision.+--+-- 'createdAt', 'updateRevisionResponse_createdAt' - The date and time that the revision was created, in ISO 8601 format.+--+-- 'dataSetId', 'updateRevisionResponse_dataSetId' - The unique identifier for the data set associated with the data set+-- revision.+--+-- 'finalized', 'updateRevisionResponse_finalized' - To publish a revision to a data set in a product, the revision must+-- first be finalized. Finalizing a revision tells AWS Data Exchange that+-- changes to the assets in the revision are complete. After it\'s in this+-- read-only state, you can publish the revision to your products.+-- Finalized revisions can be published through the AWS Data Exchange+-- console or the AWS Marketplace Catalog API, using the StartChangeSet AWS+-- Marketplace Catalog API action. When using the API, revisions are+-- uniquely identified by their ARN.+--+-- 'id', 'updateRevisionResponse_id' - The unique identifier for the revision.+--+-- 'revocationComment', 'updateRevisionResponse_revocationComment' - A required comment to inform subscribers of the reason their access to+-- the revision was revoked.+--+-- 'revoked', 'updateRevisionResponse_revoked' - A status indicating that subscribers\' access to the revision was+-- revoked.+--+-- 'revokedAt', 'updateRevisionResponse_revokedAt' - The date and time that the revision was revoked, in ISO 8601 format.+--+-- 'sourceId', 'updateRevisionResponse_sourceId' - The revision ID of the owned revision corresponding to the entitled+-- revision being viewed. This parameter is returned when a revision owner+-- is viewing the entitled copy of its owned revision.+--+-- 'updatedAt', 'updateRevisionResponse_updatedAt' - The date and time that the revision was last updated, in ISO 8601+-- format.+--+-- 'httpStatus', 'updateRevisionResponse_httpStatus' - The response's http status code.+newUpdateRevisionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateRevisionResponse+newUpdateRevisionResponse pHttpStatus_ =+  UpdateRevisionResponse'+    { arn = Prelude.Nothing,+      comment = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      dataSetId = Prelude.Nothing,+      finalized = Prelude.Nothing,+      id = Prelude.Nothing,+      revocationComment = Prelude.Nothing,+      revoked = Prelude.Nothing,+      revokedAt = Prelude.Nothing,+      sourceId = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN for the revision.+updateRevisionResponse_arn :: Lens.Lens' UpdateRevisionResponse (Prelude.Maybe Prelude.Text)+updateRevisionResponse_arn = Lens.lens (\UpdateRevisionResponse' {arn} -> arn) (\s@UpdateRevisionResponse' {} a -> s {arn = a} :: UpdateRevisionResponse)++-- | An optional comment about the revision.+updateRevisionResponse_comment :: Lens.Lens' UpdateRevisionResponse (Prelude.Maybe Prelude.Text)+updateRevisionResponse_comment = Lens.lens (\UpdateRevisionResponse' {comment} -> comment) (\s@UpdateRevisionResponse' {} a -> s {comment = a} :: UpdateRevisionResponse)++-- | The date and time that the revision was created, in ISO 8601 format.+updateRevisionResponse_createdAt :: Lens.Lens' UpdateRevisionResponse (Prelude.Maybe Prelude.UTCTime)+updateRevisionResponse_createdAt = Lens.lens (\UpdateRevisionResponse' {createdAt} -> createdAt) (\s@UpdateRevisionResponse' {} a -> s {createdAt = a} :: UpdateRevisionResponse) Prelude.. Lens.mapping Data._Time++-- | The unique identifier for the data set associated with the data set+-- revision.+updateRevisionResponse_dataSetId :: Lens.Lens' UpdateRevisionResponse (Prelude.Maybe Prelude.Text)+updateRevisionResponse_dataSetId = Lens.lens (\UpdateRevisionResponse' {dataSetId} -> dataSetId) (\s@UpdateRevisionResponse' {} a -> s {dataSetId = a} :: UpdateRevisionResponse)++-- | To publish a revision to a data set in a product, the revision must+-- first be finalized. Finalizing a revision tells AWS Data Exchange that+-- changes to the assets in the revision are complete. After it\'s in this+-- read-only state, you can publish the revision to your products.+-- Finalized revisions can be published through the AWS Data Exchange+-- console or the AWS Marketplace Catalog API, using the StartChangeSet AWS+-- Marketplace Catalog API action. When using the API, revisions are+-- uniquely identified by their ARN.+updateRevisionResponse_finalized :: Lens.Lens' UpdateRevisionResponse (Prelude.Maybe Prelude.Bool)+updateRevisionResponse_finalized = Lens.lens (\UpdateRevisionResponse' {finalized} -> finalized) (\s@UpdateRevisionResponse' {} a -> s {finalized = a} :: UpdateRevisionResponse)++-- | The unique identifier for the revision.+updateRevisionResponse_id :: Lens.Lens' UpdateRevisionResponse (Prelude.Maybe Prelude.Text)+updateRevisionResponse_id = Lens.lens (\UpdateRevisionResponse' {id} -> id) (\s@UpdateRevisionResponse' {} a -> s {id = a} :: UpdateRevisionResponse)++-- | A required comment to inform subscribers of the reason their access to+-- the revision was revoked.+updateRevisionResponse_revocationComment :: Lens.Lens' UpdateRevisionResponse (Prelude.Maybe Prelude.Text)+updateRevisionResponse_revocationComment = Lens.lens (\UpdateRevisionResponse' {revocationComment} -> revocationComment) (\s@UpdateRevisionResponse' {} a -> s {revocationComment = a} :: UpdateRevisionResponse)++-- | A status indicating that subscribers\' access to the revision was+-- revoked.+updateRevisionResponse_revoked :: Lens.Lens' UpdateRevisionResponse (Prelude.Maybe Prelude.Bool)+updateRevisionResponse_revoked = Lens.lens (\UpdateRevisionResponse' {revoked} -> revoked) (\s@UpdateRevisionResponse' {} a -> s {revoked = a} :: UpdateRevisionResponse)++-- | The date and time that the revision was revoked, in ISO 8601 format.+updateRevisionResponse_revokedAt :: Lens.Lens' UpdateRevisionResponse (Prelude.Maybe Prelude.UTCTime)+updateRevisionResponse_revokedAt = Lens.lens (\UpdateRevisionResponse' {revokedAt} -> revokedAt) (\s@UpdateRevisionResponse' {} a -> s {revokedAt = a} :: UpdateRevisionResponse) Prelude.. Lens.mapping Data._Time++-- | The revision ID of the owned revision corresponding to the entitled+-- revision being viewed. This parameter is returned when a revision owner+-- is viewing the entitled copy of its owned revision.+updateRevisionResponse_sourceId :: Lens.Lens' UpdateRevisionResponse (Prelude.Maybe Prelude.Text)+updateRevisionResponse_sourceId = Lens.lens (\UpdateRevisionResponse' {sourceId} -> sourceId) (\s@UpdateRevisionResponse' {} a -> s {sourceId = a} :: UpdateRevisionResponse)++-- | The date and time that the revision was last updated, in ISO 8601+-- format.+updateRevisionResponse_updatedAt :: Lens.Lens' UpdateRevisionResponse (Prelude.Maybe Prelude.UTCTime)+updateRevisionResponse_updatedAt = Lens.lens (\UpdateRevisionResponse' {updatedAt} -> updatedAt) (\s@UpdateRevisionResponse' {} a -> s {updatedAt = a} :: UpdateRevisionResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+updateRevisionResponse_httpStatus :: Lens.Lens' UpdateRevisionResponse Prelude.Int+updateRevisionResponse_httpStatus = Lens.lens (\UpdateRevisionResponse' {httpStatus} -> httpStatus) (\s@UpdateRevisionResponse' {} a -> s {httpStatus = a} :: UpdateRevisionResponse)++instance Prelude.NFData UpdateRevisionResponse where+  rnf UpdateRevisionResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf comment+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf dataSetId+      `Prelude.seq` Prelude.rnf finalized+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf revocationComment+      `Prelude.seq` Prelude.rnf revoked+      `Prelude.seq` Prelude.rnf revokedAt+      `Prelude.seq` Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataExchange/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.DataExchange.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.DataExchange.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataExchange.Lens+import Amazonka.DataExchange.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.DataExchange+import Test.Amazonka.DataExchange.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "DataExchange"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/DataExchange.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.DataExchange+-- 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.DataExchange+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/DataExchange/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.DataExchange.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.DataExchange.Internal where
+ test/Test/Amazonka/Gen/DataExchange.hs view
@@ -0,0 +1,618 @@+{-# 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.DataExchange+-- 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.DataExchange where++import Amazonka.DataExchange+import qualified Data.Proxy as Proxy+import Test.Amazonka.DataExchange.Internal+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestCancelJob $+--             newCancelJob+--+--         , requestCreateDataSet $+--             newCreateDataSet+--+--         , requestCreateEventAction $+--             newCreateEventAction+--+--         , requestCreateJob $+--             newCreateJob+--+--         , requestCreateRevision $+--             newCreateRevision+--+--         , requestDeleteAsset $+--             newDeleteAsset+--+--         , requestDeleteDataSet $+--             newDeleteDataSet+--+--         , requestDeleteEventAction $+--             newDeleteEventAction+--+--         , requestDeleteRevision $+--             newDeleteRevision+--+--         , requestGetAsset $+--             newGetAsset+--+--         , requestGetDataSet $+--             newGetDataSet+--+--         , requestGetEventAction $+--             newGetEventAction+--+--         , requestGetJob $+--             newGetJob+--+--         , requestGetRevision $+--             newGetRevision+--+--         , requestListDataSetRevisions $+--             newListDataSetRevisions+--+--         , requestListDataSets $+--             newListDataSets+--+--         , requestListEventActions $+--             newListEventActions+--+--         , requestListJobs $+--             newListJobs+--+--         , requestListRevisionAssets $+--             newListRevisionAssets+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestRevokeRevision $+--             newRevokeRevision+--+--         , requestSendApiAsset $+--             newSendApiAsset+--+--         , requestStartJob $+--             newStartJob+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateAsset $+--             newUpdateAsset+--+--         , requestUpdateDataSet $+--             newUpdateDataSet+--+--         , requestUpdateEventAction $+--             newUpdateEventAction+--+--         , requestUpdateRevision $+--             newUpdateRevision+--+--           ]++--     , testGroup "response"+--         [ responseCancelJob $+--             newCancelJobResponse+--+--         , responseCreateDataSet $+--             newCreateDataSetResponse+--+--         , responseCreateEventAction $+--             newCreateEventActionResponse+--+--         , responseCreateJob $+--             newCreateJobResponse+--+--         , responseCreateRevision $+--             newCreateRevisionResponse+--+--         , responseDeleteAsset $+--             newDeleteAssetResponse+--+--         , responseDeleteDataSet $+--             newDeleteDataSetResponse+--+--         , responseDeleteEventAction $+--             newDeleteEventActionResponse+--+--         , responseDeleteRevision $+--             newDeleteRevisionResponse+--+--         , responseGetAsset $+--             newGetAssetResponse+--+--         , responseGetDataSet $+--             newGetDataSetResponse+--+--         , responseGetEventAction $+--             newGetEventActionResponse+--+--         , responseGetJob $+--             newGetJobResponse+--+--         , responseGetRevision $+--             newGetRevisionResponse+--+--         , responseListDataSetRevisions $+--             newListDataSetRevisionsResponse+--+--         , responseListDataSets $+--             newListDataSetsResponse+--+--         , responseListEventActions $+--             newListEventActionsResponse+--+--         , responseListJobs $+--             newListJobsResponse+--+--         , responseListRevisionAssets $+--             newListRevisionAssetsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseRevokeRevision $+--             newRevokeRevisionResponse+--+--         , responseSendApiAsset $+--             newSendApiAssetResponse+--+--         , responseStartJob $+--             newStartJobResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateAsset $+--             newUpdateAssetResponse+--+--         , responseUpdateDataSet $+--             newUpdateDataSetResponse+--+--         , responseUpdateEventAction $+--             newUpdateEventActionResponse+--+--         , responseUpdateRevision $+--             newUpdateRevisionResponse+--+--           ]+--     ]++-- Requests++requestCancelJob :: CancelJob -> TestTree+requestCancelJob =+  req+    "CancelJob"+    "fixture/CancelJob.yaml"++requestCreateDataSet :: CreateDataSet -> TestTree+requestCreateDataSet =+  req+    "CreateDataSet"+    "fixture/CreateDataSet.yaml"++requestCreateEventAction :: CreateEventAction -> TestTree+requestCreateEventAction =+  req+    "CreateEventAction"+    "fixture/CreateEventAction.yaml"++requestCreateJob :: CreateJob -> TestTree+requestCreateJob =+  req+    "CreateJob"+    "fixture/CreateJob.yaml"++requestCreateRevision :: CreateRevision -> TestTree+requestCreateRevision =+  req+    "CreateRevision"+    "fixture/CreateRevision.yaml"++requestDeleteAsset :: DeleteAsset -> TestTree+requestDeleteAsset =+  req+    "DeleteAsset"+    "fixture/DeleteAsset.yaml"++requestDeleteDataSet :: DeleteDataSet -> TestTree+requestDeleteDataSet =+  req+    "DeleteDataSet"+    "fixture/DeleteDataSet.yaml"++requestDeleteEventAction :: DeleteEventAction -> TestTree+requestDeleteEventAction =+  req+    "DeleteEventAction"+    "fixture/DeleteEventAction.yaml"++requestDeleteRevision :: DeleteRevision -> TestTree+requestDeleteRevision =+  req+    "DeleteRevision"+    "fixture/DeleteRevision.yaml"++requestGetAsset :: GetAsset -> TestTree+requestGetAsset =+  req+    "GetAsset"+    "fixture/GetAsset.yaml"++requestGetDataSet :: GetDataSet -> TestTree+requestGetDataSet =+  req+    "GetDataSet"+    "fixture/GetDataSet.yaml"++requestGetEventAction :: GetEventAction -> TestTree+requestGetEventAction =+  req+    "GetEventAction"+    "fixture/GetEventAction.yaml"++requestGetJob :: GetJob -> TestTree+requestGetJob =+  req+    "GetJob"+    "fixture/GetJob.yaml"++requestGetRevision :: GetRevision -> TestTree+requestGetRevision =+  req+    "GetRevision"+    "fixture/GetRevision.yaml"++requestListDataSetRevisions :: ListDataSetRevisions -> TestTree+requestListDataSetRevisions =+  req+    "ListDataSetRevisions"+    "fixture/ListDataSetRevisions.yaml"++requestListDataSets :: ListDataSets -> TestTree+requestListDataSets =+  req+    "ListDataSets"+    "fixture/ListDataSets.yaml"++requestListEventActions :: ListEventActions -> TestTree+requestListEventActions =+  req+    "ListEventActions"+    "fixture/ListEventActions.yaml"++requestListJobs :: ListJobs -> TestTree+requestListJobs =+  req+    "ListJobs"+    "fixture/ListJobs.yaml"++requestListRevisionAssets :: ListRevisionAssets -> TestTree+requestListRevisionAssets =+  req+    "ListRevisionAssets"+    "fixture/ListRevisionAssets.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestRevokeRevision :: RevokeRevision -> TestTree+requestRevokeRevision =+  req+    "RevokeRevision"+    "fixture/RevokeRevision.yaml"++requestSendApiAsset :: SendApiAsset -> TestTree+requestSendApiAsset =+  req+    "SendApiAsset"+    "fixture/SendApiAsset.yaml"++requestStartJob :: StartJob -> TestTree+requestStartJob =+  req+    "StartJob"+    "fixture/StartJob.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateAsset :: UpdateAsset -> TestTree+requestUpdateAsset =+  req+    "UpdateAsset"+    "fixture/UpdateAsset.yaml"++requestUpdateDataSet :: UpdateDataSet -> TestTree+requestUpdateDataSet =+  req+    "UpdateDataSet"+    "fixture/UpdateDataSet.yaml"++requestUpdateEventAction :: UpdateEventAction -> TestTree+requestUpdateEventAction =+  req+    "UpdateEventAction"+    "fixture/UpdateEventAction.yaml"++requestUpdateRevision :: UpdateRevision -> TestTree+requestUpdateRevision =+  req+    "UpdateRevision"+    "fixture/UpdateRevision.yaml"++-- Responses++responseCancelJob :: CancelJobResponse -> TestTree+responseCancelJob =+  res+    "CancelJobResponse"+    "fixture/CancelJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CancelJob)++responseCreateDataSet :: CreateDataSetResponse -> TestTree+responseCreateDataSet =+  res+    "CreateDataSetResponse"+    "fixture/CreateDataSetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDataSet)++responseCreateEventAction :: CreateEventActionResponse -> TestTree+responseCreateEventAction =+  res+    "CreateEventActionResponse"+    "fixture/CreateEventActionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateEventAction)++responseCreateJob :: CreateJobResponse -> TestTree+responseCreateJob =+  res+    "CreateJobResponse"+    "fixture/CreateJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateJob)++responseCreateRevision :: CreateRevisionResponse -> TestTree+responseCreateRevision =+  res+    "CreateRevisionResponse"+    "fixture/CreateRevisionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateRevision)++responseDeleteAsset :: DeleteAssetResponse -> TestTree+responseDeleteAsset =+  res+    "DeleteAssetResponse"+    "fixture/DeleteAssetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAsset)++responseDeleteDataSet :: DeleteDataSetResponse -> TestTree+responseDeleteDataSet =+  res+    "DeleteDataSetResponse"+    "fixture/DeleteDataSetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDataSet)++responseDeleteEventAction :: DeleteEventActionResponse -> TestTree+responseDeleteEventAction =+  res+    "DeleteEventActionResponse"+    "fixture/DeleteEventActionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteEventAction)++responseDeleteRevision :: DeleteRevisionResponse -> TestTree+responseDeleteRevision =+  res+    "DeleteRevisionResponse"+    "fixture/DeleteRevisionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteRevision)++responseGetAsset :: GetAssetResponse -> TestTree+responseGetAsset =+  res+    "GetAssetResponse"+    "fixture/GetAssetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetAsset)++responseGetDataSet :: GetDataSetResponse -> TestTree+responseGetDataSet =+  res+    "GetDataSetResponse"+    "fixture/GetDataSetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDataSet)++responseGetEventAction :: GetEventActionResponse -> TestTree+responseGetEventAction =+  res+    "GetEventActionResponse"+    "fixture/GetEventActionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetEventAction)++responseGetJob :: GetJobResponse -> TestTree+responseGetJob =+  res+    "GetJobResponse"+    "fixture/GetJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetJob)++responseGetRevision :: GetRevisionResponse -> TestTree+responseGetRevision =+  res+    "GetRevisionResponse"+    "fixture/GetRevisionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetRevision)++responseListDataSetRevisions :: ListDataSetRevisionsResponse -> TestTree+responseListDataSetRevisions =+  res+    "ListDataSetRevisionsResponse"+    "fixture/ListDataSetRevisionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDataSetRevisions)++responseListDataSets :: ListDataSetsResponse -> TestTree+responseListDataSets =+  res+    "ListDataSetsResponse"+    "fixture/ListDataSetsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDataSets)++responseListEventActions :: ListEventActionsResponse -> TestTree+responseListEventActions =+  res+    "ListEventActionsResponse"+    "fixture/ListEventActionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListEventActions)++responseListJobs :: ListJobsResponse -> TestTree+responseListJobs =+  res+    "ListJobsResponse"+    "fixture/ListJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListJobs)++responseListRevisionAssets :: ListRevisionAssetsResponse -> TestTree+responseListRevisionAssets =+  res+    "ListRevisionAssetsResponse"+    "fixture/ListRevisionAssetsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListRevisionAssets)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseRevokeRevision :: RevokeRevisionResponse -> TestTree+responseRevokeRevision =+  res+    "RevokeRevisionResponse"+    "fixture/RevokeRevisionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RevokeRevision)++responseSendApiAsset :: SendApiAssetResponse -> TestTree+responseSendApiAsset =+  res+    "SendApiAssetResponse"+    "fixture/SendApiAssetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy SendApiAsset)++responseStartJob :: StartJobResponse -> TestTree+responseStartJob =+  res+    "StartJobResponse"+    "fixture/StartJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartJob)++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)++responseUpdateAsset :: UpdateAssetResponse -> TestTree+responseUpdateAsset =+  res+    "UpdateAssetResponse"+    "fixture/UpdateAssetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateAsset)++responseUpdateDataSet :: UpdateDataSetResponse -> TestTree+responseUpdateDataSet =+  res+    "UpdateDataSetResponse"+    "fixture/UpdateDataSetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDataSet)++responseUpdateEventAction :: UpdateEventActionResponse -> TestTree+responseUpdateEventAction =+  res+    "UpdateEventActionResponse"+    "fixture/UpdateEventActionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateEventAction)++responseUpdateRevision :: UpdateRevisionResponse -> TestTree+responseUpdateRevision =+  res+    "UpdateRevisionResponse"+    "fixture/UpdateRevisionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateRevision)