packages feed

amazonka-finspace-data (empty) → 2.0

raw patch · 138 files changed

+15108/−0 lines, 138 filesdep +amazonka-coredep +amazonka-finspace-datadep +amazonka-test

Dependencies added: amazonka-core, amazonka-finspace-data, 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 FinSpace Public API SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-07-13@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-finspace-data)+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.FinSpaceData](http://hackage.haskell.org/package/amazonka-finspace-data/docs/Amazonka-FinSpaceData.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-finspace-data` 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-finspace-data.cabal view
@@ -0,0 +1,147 @@+cabal-version:      2.2+name:               amazonka-finspace-data+version:            2.0+synopsis:           Amazon FinSpace Public API 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 @2020-07-13@ 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.FinSpaceData.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.FinSpaceData" 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-finspace-data++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.FinSpaceData+    Amazonka.FinSpaceData.AssociateUserToPermissionGroup+    Amazonka.FinSpaceData.CreateChangeset+    Amazonka.FinSpaceData.CreateDataset+    Amazonka.FinSpaceData.CreateDataView+    Amazonka.FinSpaceData.CreatePermissionGroup+    Amazonka.FinSpaceData.CreateUser+    Amazonka.FinSpaceData.DeleteDataset+    Amazonka.FinSpaceData.DeletePermissionGroup+    Amazonka.FinSpaceData.DisableUser+    Amazonka.FinSpaceData.DisassociateUserFromPermissionGroup+    Amazonka.FinSpaceData.EnableUser+    Amazonka.FinSpaceData.GetChangeset+    Amazonka.FinSpaceData.GetDataset+    Amazonka.FinSpaceData.GetDataView+    Amazonka.FinSpaceData.GetExternalDataViewAccessDetails+    Amazonka.FinSpaceData.GetPermissionGroup+    Amazonka.FinSpaceData.GetProgrammaticAccessCredentials+    Amazonka.FinSpaceData.GetUser+    Amazonka.FinSpaceData.GetWorkingLocation+    Amazonka.FinSpaceData.Lens+    Amazonka.FinSpaceData.ListChangesets+    Amazonka.FinSpaceData.ListDatasets+    Amazonka.FinSpaceData.ListDataViews+    Amazonka.FinSpaceData.ListPermissionGroups+    Amazonka.FinSpaceData.ListPermissionGroupsByUser+    Amazonka.FinSpaceData.ListUsers+    Amazonka.FinSpaceData.ListUsersByPermissionGroup+    Amazonka.FinSpaceData.ResetUserPassword+    Amazonka.FinSpaceData.Types+    Amazonka.FinSpaceData.Types.ApiAccess+    Amazonka.FinSpaceData.Types.ApplicationPermission+    Amazonka.FinSpaceData.Types.AwsCredentials+    Amazonka.FinSpaceData.Types.ChangesetErrorInfo+    Amazonka.FinSpaceData.Types.ChangesetSummary+    Amazonka.FinSpaceData.Types.ChangeType+    Amazonka.FinSpaceData.Types.ColumnDataType+    Amazonka.FinSpaceData.Types.ColumnDefinition+    Amazonka.FinSpaceData.Types.Credentials+    Amazonka.FinSpaceData.Types.Dataset+    Amazonka.FinSpaceData.Types.DatasetKind+    Amazonka.FinSpaceData.Types.DatasetOwnerInfo+    Amazonka.FinSpaceData.Types.DatasetStatus+    Amazonka.FinSpaceData.Types.DataViewDestinationTypeParams+    Amazonka.FinSpaceData.Types.DataViewErrorInfo+    Amazonka.FinSpaceData.Types.DataViewStatus+    Amazonka.FinSpaceData.Types.DataViewSummary+    Amazonka.FinSpaceData.Types.ErrorCategory+    Amazonka.FinSpaceData.Types.ExportFileFormat+    Amazonka.FinSpaceData.Types.IngestionStatus+    Amazonka.FinSpaceData.Types.LocationType+    Amazonka.FinSpaceData.Types.PermissionGroup+    Amazonka.FinSpaceData.Types.PermissionGroupByUser+    Amazonka.FinSpaceData.Types.PermissionGroupMembershipStatus+    Amazonka.FinSpaceData.Types.PermissionGroupParams+    Amazonka.FinSpaceData.Types.ResourcePermission+    Amazonka.FinSpaceData.Types.S3Location+    Amazonka.FinSpaceData.Types.SchemaDefinition+    Amazonka.FinSpaceData.Types.SchemaUnion+    Amazonka.FinSpaceData.Types.User+    Amazonka.FinSpaceData.Types.UserByPermissionGroup+    Amazonka.FinSpaceData.Types.UserStatus+    Amazonka.FinSpaceData.Types.UserType+    Amazonka.FinSpaceData.UpdateChangeset+    Amazonka.FinSpaceData.UpdateDataset+    Amazonka.FinSpaceData.UpdatePermissionGroup+    Amazonka.FinSpaceData.UpdateUser+    Amazonka.FinSpaceData.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-finspace-data-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.FinSpaceData+    Test.Amazonka.FinSpaceData.Internal+    Test.Amazonka.Gen.FinSpaceData++  build-depends:+    , amazonka-core           >=2.0 && <2.1+    , amazonka-finspace-data+    , amazonka-test           >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/AssociateUserToPermissionGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/AssociateUserToPermissionGroupResponse.proto view
+ fixture/CreateChangeset.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/CreateChangesetResponse.proto view
+ fixture/CreateDataView.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/CreateDataViewResponse.proto view
+ fixture/CreateDataset.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/CreatePermissionGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/CreatePermissionGroupResponse.proto view
+ fixture/CreateUser.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/CreateUserResponse.proto view
+ fixture/DeleteDataset.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/DeletePermissionGroup.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/DeletePermissionGroupResponse.proto view
+ fixture/DisableUser.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/DisableUserResponse.proto view
+ fixture/DisassociateUserFromPermissionGroup.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/DisassociateUserFromPermissionGroupResponse.proto view
+ fixture/EnableUser.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/EnableUserResponse.proto view
+ fixture/GetChangeset.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/GetChangesetResponse.proto view
+ fixture/GetDataView.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/GetDataViewResponse.proto view
+ fixture/GetDataset.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/GetExternalDataViewAccessDetails.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/GetExternalDataViewAccessDetailsResponse.proto view
+ fixture/GetPermissionGroup.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/GetPermissionGroupResponse.proto view
+ fixture/GetProgrammaticAccessCredentials.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/GetProgrammaticAccessCredentialsResponse.proto view
+ fixture/GetUser.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/GetUserResponse.proto view
+ fixture/GetWorkingLocation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/GetWorkingLocationResponse.proto view
+ fixture/ListChangesets.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/ListChangesetsResponse.proto view
+ fixture/ListDataViews.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/ListDataViewsResponse.proto view
+ fixture/ListDatasets.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/ListPermissionGroups.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/ListPermissionGroupsByUser.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/ListPermissionGroupsByUserResponse.proto view
+ fixture/ListPermissionGroupsResponse.proto view
+ fixture/ListUsers.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/ListUsersByPermissionGroup.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/ListUsersByPermissionGroupResponse.proto view
+ fixture/ListUsersResponse.proto view
+ fixture/ResetUserPassword.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/ResetUserPasswordResponse.proto view
+ fixture/UpdateChangeset.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/UpdateChangesetResponse.proto view
+ fixture/UpdateDataset.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/UpdatePermissionGroup.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/UpdatePermissionGroupResponse.proto view
+ fixture/UpdateUser.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/finspace-api/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  finspace-api.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/UpdateUserResponse.proto view
+ gen/Amazonka/FinSpaceData.hs view
@@ -0,0 +1,417 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.FinSpaceData+-- 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 @2020-07-13@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- The FinSpace APIs let you take actions inside the FinSpace.+module Amazonka.FinSpaceData+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** LimitExceededException+    _LimitExceededException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** AssociateUserToPermissionGroup+    AssociateUserToPermissionGroup (AssociateUserToPermissionGroup'),+    newAssociateUserToPermissionGroup,+    AssociateUserToPermissionGroupResponse (AssociateUserToPermissionGroupResponse'),+    newAssociateUserToPermissionGroupResponse,++    -- ** CreateChangeset+    CreateChangeset (CreateChangeset'),+    newCreateChangeset,+    CreateChangesetResponse (CreateChangesetResponse'),+    newCreateChangesetResponse,++    -- ** CreateDataView+    CreateDataView (CreateDataView'),+    newCreateDataView,+    CreateDataViewResponse (CreateDataViewResponse'),+    newCreateDataViewResponse,++    -- ** CreateDataset+    CreateDataset (CreateDataset'),+    newCreateDataset,+    CreateDatasetResponse (CreateDatasetResponse'),+    newCreateDatasetResponse,++    -- ** CreatePermissionGroup+    CreatePermissionGroup (CreatePermissionGroup'),+    newCreatePermissionGroup,+    CreatePermissionGroupResponse (CreatePermissionGroupResponse'),+    newCreatePermissionGroupResponse,++    -- ** CreateUser+    CreateUser (CreateUser'),+    newCreateUser,+    CreateUserResponse (CreateUserResponse'),+    newCreateUserResponse,++    -- ** DeleteDataset+    DeleteDataset (DeleteDataset'),+    newDeleteDataset,+    DeleteDatasetResponse (DeleteDatasetResponse'),+    newDeleteDatasetResponse,++    -- ** DeletePermissionGroup+    DeletePermissionGroup (DeletePermissionGroup'),+    newDeletePermissionGroup,+    DeletePermissionGroupResponse (DeletePermissionGroupResponse'),+    newDeletePermissionGroupResponse,++    -- ** DisableUser+    DisableUser (DisableUser'),+    newDisableUser,+    DisableUserResponse (DisableUserResponse'),+    newDisableUserResponse,++    -- ** DisassociateUserFromPermissionGroup+    DisassociateUserFromPermissionGroup (DisassociateUserFromPermissionGroup'),+    newDisassociateUserFromPermissionGroup,+    DisassociateUserFromPermissionGroupResponse (DisassociateUserFromPermissionGroupResponse'),+    newDisassociateUserFromPermissionGroupResponse,++    -- ** EnableUser+    EnableUser (EnableUser'),+    newEnableUser,+    EnableUserResponse (EnableUserResponse'),+    newEnableUserResponse,++    -- ** GetChangeset+    GetChangeset (GetChangeset'),+    newGetChangeset,+    GetChangesetResponse (GetChangesetResponse'),+    newGetChangesetResponse,++    -- ** GetDataView+    GetDataView (GetDataView'),+    newGetDataView,+    GetDataViewResponse (GetDataViewResponse'),+    newGetDataViewResponse,++    -- ** GetDataset+    GetDataset (GetDataset'),+    newGetDataset,+    GetDatasetResponse (GetDatasetResponse'),+    newGetDatasetResponse,++    -- ** GetExternalDataViewAccessDetails+    GetExternalDataViewAccessDetails (GetExternalDataViewAccessDetails'),+    newGetExternalDataViewAccessDetails,+    GetExternalDataViewAccessDetailsResponse (GetExternalDataViewAccessDetailsResponse'),+    newGetExternalDataViewAccessDetailsResponse,++    -- ** GetPermissionGroup+    GetPermissionGroup (GetPermissionGroup'),+    newGetPermissionGroup,+    GetPermissionGroupResponse (GetPermissionGroupResponse'),+    newGetPermissionGroupResponse,++    -- ** GetProgrammaticAccessCredentials+    GetProgrammaticAccessCredentials (GetProgrammaticAccessCredentials'),+    newGetProgrammaticAccessCredentials,+    GetProgrammaticAccessCredentialsResponse (GetProgrammaticAccessCredentialsResponse'),+    newGetProgrammaticAccessCredentialsResponse,++    -- ** GetUser+    GetUser (GetUser'),+    newGetUser,+    GetUserResponse (GetUserResponse'),+    newGetUserResponse,++    -- ** GetWorkingLocation+    GetWorkingLocation (GetWorkingLocation'),+    newGetWorkingLocation,+    GetWorkingLocationResponse (GetWorkingLocationResponse'),+    newGetWorkingLocationResponse,++    -- ** ListChangesets (Paginated)+    ListChangesets (ListChangesets'),+    newListChangesets,+    ListChangesetsResponse (ListChangesetsResponse'),+    newListChangesetsResponse,++    -- ** ListDataViews (Paginated)+    ListDataViews (ListDataViews'),+    newListDataViews,+    ListDataViewsResponse (ListDataViewsResponse'),+    newListDataViewsResponse,++    -- ** ListDatasets (Paginated)+    ListDatasets (ListDatasets'),+    newListDatasets,+    ListDatasetsResponse (ListDatasetsResponse'),+    newListDatasetsResponse,++    -- ** ListPermissionGroups (Paginated)+    ListPermissionGroups (ListPermissionGroups'),+    newListPermissionGroups,+    ListPermissionGroupsResponse (ListPermissionGroupsResponse'),+    newListPermissionGroupsResponse,++    -- ** ListPermissionGroupsByUser+    ListPermissionGroupsByUser (ListPermissionGroupsByUser'),+    newListPermissionGroupsByUser,+    ListPermissionGroupsByUserResponse (ListPermissionGroupsByUserResponse'),+    newListPermissionGroupsByUserResponse,++    -- ** ListUsers (Paginated)+    ListUsers (ListUsers'),+    newListUsers,+    ListUsersResponse (ListUsersResponse'),+    newListUsersResponse,++    -- ** ListUsersByPermissionGroup+    ListUsersByPermissionGroup (ListUsersByPermissionGroup'),+    newListUsersByPermissionGroup,+    ListUsersByPermissionGroupResponse (ListUsersByPermissionGroupResponse'),+    newListUsersByPermissionGroupResponse,++    -- ** ResetUserPassword+    ResetUserPassword (ResetUserPassword'),+    newResetUserPassword,+    ResetUserPasswordResponse (ResetUserPasswordResponse'),+    newResetUserPasswordResponse,++    -- ** UpdateChangeset+    UpdateChangeset (UpdateChangeset'),+    newUpdateChangeset,+    UpdateChangesetResponse (UpdateChangesetResponse'),+    newUpdateChangesetResponse,++    -- ** UpdateDataset+    UpdateDataset (UpdateDataset'),+    newUpdateDataset,+    UpdateDatasetResponse (UpdateDatasetResponse'),+    newUpdateDatasetResponse,++    -- ** UpdatePermissionGroup+    UpdatePermissionGroup (UpdatePermissionGroup'),+    newUpdatePermissionGroup,+    UpdatePermissionGroupResponse (UpdatePermissionGroupResponse'),+    newUpdatePermissionGroupResponse,++    -- ** UpdateUser+    UpdateUser (UpdateUser'),+    newUpdateUser,+    UpdateUserResponse (UpdateUserResponse'),+    newUpdateUserResponse,++    -- * Types++    -- ** ApiAccess+    ApiAccess (..),++    -- ** ApplicationPermission+    ApplicationPermission (..),++    -- ** ChangeType+    ChangeType (..),++    -- ** ColumnDataType+    ColumnDataType (..),++    -- ** DataViewStatus+    DataViewStatus (..),++    -- ** DatasetKind+    DatasetKind (..),++    -- ** DatasetStatus+    DatasetStatus (..),++    -- ** ErrorCategory+    ErrorCategory (..),++    -- ** ExportFileFormat+    ExportFileFormat (..),++    -- ** IngestionStatus+    IngestionStatus (..),++    -- ** LocationType+    LocationType (..),++    -- ** PermissionGroupMembershipStatus+    PermissionGroupMembershipStatus (..),++    -- ** UserStatus+    UserStatus (..),++    -- ** UserType+    UserType (..),++    -- ** AwsCredentials+    AwsCredentials (AwsCredentials'),+    newAwsCredentials,++    -- ** ChangesetErrorInfo+    ChangesetErrorInfo (ChangesetErrorInfo'),+    newChangesetErrorInfo,++    -- ** ChangesetSummary+    ChangesetSummary (ChangesetSummary'),+    newChangesetSummary,++    -- ** ColumnDefinition+    ColumnDefinition (ColumnDefinition'),+    newColumnDefinition,++    -- ** Credentials+    Credentials (Credentials'),+    newCredentials,++    -- ** DataViewDestinationTypeParams+    DataViewDestinationTypeParams (DataViewDestinationTypeParams'),+    newDataViewDestinationTypeParams,++    -- ** DataViewErrorInfo+    DataViewErrorInfo (DataViewErrorInfo'),+    newDataViewErrorInfo,++    -- ** DataViewSummary+    DataViewSummary (DataViewSummary'),+    newDataViewSummary,++    -- ** Dataset+    Dataset (Dataset'),+    newDataset,++    -- ** DatasetOwnerInfo+    DatasetOwnerInfo (DatasetOwnerInfo'),+    newDatasetOwnerInfo,++    -- ** PermissionGroup+    PermissionGroup (PermissionGroup'),+    newPermissionGroup,++    -- ** PermissionGroupByUser+    PermissionGroupByUser (PermissionGroupByUser'),+    newPermissionGroupByUser,++    -- ** PermissionGroupParams+    PermissionGroupParams (PermissionGroupParams'),+    newPermissionGroupParams,++    -- ** ResourcePermission+    ResourcePermission (ResourcePermission'),+    newResourcePermission,++    -- ** S3Location+    S3Location (S3Location'),+    newS3Location,++    -- ** SchemaDefinition+    SchemaDefinition (SchemaDefinition'),+    newSchemaDefinition,++    -- ** SchemaUnion+    SchemaUnion (SchemaUnion'),+    newSchemaUnion,++    -- ** User+    User (User'),+    newUser,++    -- ** UserByPermissionGroup+    UserByPermissionGroup (UserByPermissionGroup'),+    newUserByPermissionGroup,+  )+where++import Amazonka.FinSpaceData.AssociateUserToPermissionGroup+import Amazonka.FinSpaceData.CreateChangeset+import Amazonka.FinSpaceData.CreateDataView+import Amazonka.FinSpaceData.CreateDataset+import Amazonka.FinSpaceData.CreatePermissionGroup+import Amazonka.FinSpaceData.CreateUser+import Amazonka.FinSpaceData.DeleteDataset+import Amazonka.FinSpaceData.DeletePermissionGroup+import Amazonka.FinSpaceData.DisableUser+import Amazonka.FinSpaceData.DisassociateUserFromPermissionGroup+import Amazonka.FinSpaceData.EnableUser+import Amazonka.FinSpaceData.GetChangeset+import Amazonka.FinSpaceData.GetDataView+import Amazonka.FinSpaceData.GetDataset+import Amazonka.FinSpaceData.GetExternalDataViewAccessDetails+import Amazonka.FinSpaceData.GetPermissionGroup+import Amazonka.FinSpaceData.GetProgrammaticAccessCredentials+import Amazonka.FinSpaceData.GetUser+import Amazonka.FinSpaceData.GetWorkingLocation+import Amazonka.FinSpaceData.Lens+import Amazonka.FinSpaceData.ListChangesets+import Amazonka.FinSpaceData.ListDataViews+import Amazonka.FinSpaceData.ListDatasets+import Amazonka.FinSpaceData.ListPermissionGroups+import Amazonka.FinSpaceData.ListPermissionGroupsByUser+import Amazonka.FinSpaceData.ListUsers+import Amazonka.FinSpaceData.ListUsersByPermissionGroup+import Amazonka.FinSpaceData.ResetUserPassword+import Amazonka.FinSpaceData.Types+import Amazonka.FinSpaceData.UpdateChangeset+import Amazonka.FinSpaceData.UpdateDataset+import Amazonka.FinSpaceData.UpdatePermissionGroup+import Amazonka.FinSpaceData.UpdateUser+import Amazonka.FinSpaceData.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 'FinSpaceData'.++-- $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/FinSpaceData/AssociateUserToPermissionGroup.hs view
@@ -0,0 +1,210 @@+{-# 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.FinSpaceData.AssociateUserToPermissionGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds a user account to a permission group to grant permissions for+-- actions a user can perform in FinSpace.+module Amazonka.FinSpaceData.AssociateUserToPermissionGroup+  ( -- * Creating a Request+    AssociateUserToPermissionGroup (..),+    newAssociateUserToPermissionGroup,++    -- * Request Lenses+    associateUserToPermissionGroup_clientToken,+    associateUserToPermissionGroup_permissionGroupId,+    associateUserToPermissionGroup_userId,++    -- * Destructuring the Response+    AssociateUserToPermissionGroupResponse (..),+    newAssociateUserToPermissionGroupResponse,++    -- * Response Lenses+    associateUserToPermissionGroupResponse_statusCode,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAssociateUserToPermissionGroup' smart constructor.+data AssociateUserToPermissionGroup = AssociateUserToPermissionGroup'+  { -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the permission group.+    permissionGroupId :: Prelude.Text,+    -- | The unique identifier for the user.+    userId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateUserToPermissionGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'associateUserToPermissionGroup_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'permissionGroupId', 'associateUserToPermissionGroup_permissionGroupId' - The unique identifier for the permission group.+--+-- 'userId', 'associateUserToPermissionGroup_userId' - The unique identifier for the user.+newAssociateUserToPermissionGroup ::+  -- | 'permissionGroupId'+  Prelude.Text ->+  -- | 'userId'+  Prelude.Text ->+  AssociateUserToPermissionGroup+newAssociateUserToPermissionGroup+  pPermissionGroupId_+  pUserId_ =+    AssociateUserToPermissionGroup'+      { clientToken =+          Prelude.Nothing,+        permissionGroupId = pPermissionGroupId_,+        userId = pUserId_+      }++-- | A token that ensures idempotency. This token expires in 10 minutes.+associateUserToPermissionGroup_clientToken :: Lens.Lens' AssociateUserToPermissionGroup (Prelude.Maybe Prelude.Text)+associateUserToPermissionGroup_clientToken = Lens.lens (\AssociateUserToPermissionGroup' {clientToken} -> clientToken) (\s@AssociateUserToPermissionGroup' {} a -> s {clientToken = a} :: AssociateUserToPermissionGroup)++-- | The unique identifier for the permission group.+associateUserToPermissionGroup_permissionGroupId :: Lens.Lens' AssociateUserToPermissionGroup Prelude.Text+associateUserToPermissionGroup_permissionGroupId = Lens.lens (\AssociateUserToPermissionGroup' {permissionGroupId} -> permissionGroupId) (\s@AssociateUserToPermissionGroup' {} a -> s {permissionGroupId = a} :: AssociateUserToPermissionGroup)++-- | The unique identifier for the user.+associateUserToPermissionGroup_userId :: Lens.Lens' AssociateUserToPermissionGroup Prelude.Text+associateUserToPermissionGroup_userId = Lens.lens (\AssociateUserToPermissionGroup' {userId} -> userId) (\s@AssociateUserToPermissionGroup' {} a -> s {userId = a} :: AssociateUserToPermissionGroup)++instance+  Core.AWSRequest+    AssociateUserToPermissionGroup+  where+  type+    AWSResponse AssociateUserToPermissionGroup =+      AssociateUserToPermissionGroupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          AssociateUserToPermissionGroupResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    AssociateUserToPermissionGroup+  where+  hashWithSalt+    _salt+    AssociateUserToPermissionGroup' {..} =+      _salt+        `Prelude.hashWithSalt` clientToken+        `Prelude.hashWithSalt` permissionGroupId+        `Prelude.hashWithSalt` userId++instance+  Prelude.NFData+    AssociateUserToPermissionGroup+  where+  rnf AssociateUserToPermissionGroup' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf permissionGroupId+      `Prelude.seq` Prelude.rnf userId++instance+  Data.ToHeaders+    AssociateUserToPermissionGroup+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AssociateUserToPermissionGroup where+  toJSON AssociateUserToPermissionGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [("clientToken" Data..=) Prelude.<$> clientToken]+      )++instance Data.ToPath AssociateUserToPermissionGroup where+  toPath AssociateUserToPermissionGroup' {..} =+    Prelude.mconcat+      [ "/permission-group/",+        Data.toBS permissionGroupId,+        "/users/",+        Data.toBS userId+      ]++instance Data.ToQuery AssociateUserToPermissionGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAssociateUserToPermissionGroupResponse' smart constructor.+data AssociateUserToPermissionGroupResponse = AssociateUserToPermissionGroupResponse'+  { -- | The returned status code of the response.+    statusCode :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateUserToPermissionGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'statusCode', 'associateUserToPermissionGroupResponse_statusCode' - The returned status code of the response.+newAssociateUserToPermissionGroupResponse ::+  -- | 'statusCode'+  Prelude.Int ->+  AssociateUserToPermissionGroupResponse+newAssociateUserToPermissionGroupResponse+  pStatusCode_ =+    AssociateUserToPermissionGroupResponse'+      { statusCode =+          pStatusCode_+      }++-- | The returned status code of the response.+associateUserToPermissionGroupResponse_statusCode :: Lens.Lens' AssociateUserToPermissionGroupResponse Prelude.Int+associateUserToPermissionGroupResponse_statusCode = Lens.lens (\AssociateUserToPermissionGroupResponse' {statusCode} -> statusCode) (\s@AssociateUserToPermissionGroupResponse' {} a -> s {statusCode = a} :: AssociateUserToPermissionGroupResponse)++instance+  Prelude.NFData+    AssociateUserToPermissionGroupResponse+  where+  rnf AssociateUserToPermissionGroupResponse' {..} =+    Prelude.rnf statusCode
+ gen/Amazonka/FinSpaceData/CreateChangeset.hs view
@@ -0,0 +1,387 @@+{-# 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.FinSpaceData.CreateChangeset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new Changeset in a FinSpace Dataset.+module Amazonka.FinSpaceData.CreateChangeset+  ( -- * Creating a Request+    CreateChangeset (..),+    newCreateChangeset,++    -- * Request Lenses+    createChangeset_clientToken,+    createChangeset_datasetId,+    createChangeset_changeType,+    createChangeset_sourceParams,+    createChangeset_formatParams,++    -- * Destructuring the Response+    CreateChangesetResponse (..),+    newCreateChangesetResponse,++    -- * Response Lenses+    createChangesetResponse_changesetId,+    createChangesetResponse_datasetId,+    createChangesetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request for a CreateChangeset operation.+--+-- /See:/ 'newCreateChangeset' smart constructor.+data CreateChangeset = CreateChangeset'+  { -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the FinSpace Dataset where the Changeset will+    -- be created.+    datasetId :: Prelude.Text,+    -- | The option to indicate how a Changeset will be applied to a Dataset.+    --+    -- -   @REPLACE@ – Changeset will be considered as a replacement to all+    --     prior loaded Changesets.+    --+    -- -   @APPEND@ – Changeset will be considered as an addition to the end of+    --     all prior loaded Changesets.+    --+    -- -   @MODIFY@ – Changeset is considered as a replacement to a specific+    --     prior ingested Changeset.+    changeType :: ChangeType,+    -- | Options that define the location of the data being ingested+    -- (@s3SourcePath@) and the source of the changeset (@sourceType@).+    --+    -- Both @s3SourcePath@ and @sourceType@ are required attributes.+    --+    -- Here is an example of how you could specify the @sourceParams@:+    --+    -- @ \"sourceParams\": { \"s3SourcePath\": \"s3:\/\/finspace-landing-us-east-2-bk7gcfvitndqa6ebnvys4d\/scratch\/wr5hh8pwkpqqkxa4sxrmcw\/ingestion\/equity.csv\", \"sourceType\": \"S3\" } @+    --+    -- The S3 path that you specify must allow the FinSpace role access. To do+    -- that, you first need to configure the IAM policy on S3 bucket. For more+    -- information, see+    -- <https://docs.aws.amazon.com/finspace/latest/data-api/fs-using-the-finspace-api.html#access-s3-buckets Loading data from an Amazon S3 Bucket using the FinSpace API>+    -- section.+    sourceParams :: Prelude.HashMap Prelude.Text Prelude.Text,+    -- | Options that define the structure of the source file(s) including the+    -- format type (@formatType@), header row (@withHeader@), data separation+    -- character (@separator@) and the type of compression (@compression@).+    --+    -- @formatType@ is a required attribute and can have the following values:+    --+    -- -   @PARQUET@ – Parquet source file format.+    --+    -- -   @CSV@ – CSV source file format.+    --+    -- -   @JSON@ – JSON source file format.+    --+    -- -   @XML@ – XML source file format.+    --+    -- Here is an example of how you could specify the @formatParams@:+    --+    -- @ \"formatParams\": { \"formatType\": \"CSV\", \"withHeader\": \"true\", \"separator\": \",\", \"compression\":\"None\" } @+    --+    -- Note that if you only provide @formatType@ as @CSV@, the rest of the+    -- attributes will automatically default to CSV values as following:+    --+    -- @ { \"withHeader\": \"true\", \"separator\": \",\" } @+    --+    -- For more information about supported file formats, see+    -- <https://docs.aws.amazon.com/finspace/latest/userguide/supported-data-types.html Supported Data Types and File Formats>+    -- in the FinSpace User Guide.+    formatParams :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateChangeset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createChangeset_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'datasetId', 'createChangeset_datasetId' - The unique identifier for the FinSpace Dataset where the Changeset will+-- be created.+--+-- 'changeType', 'createChangeset_changeType' - The option to indicate how a Changeset will be applied to a Dataset.+--+-- -   @REPLACE@ – Changeset will be considered as a replacement to all+--     prior loaded Changesets.+--+-- -   @APPEND@ – Changeset will be considered as an addition to the end of+--     all prior loaded Changesets.+--+-- -   @MODIFY@ – Changeset is considered as a replacement to a specific+--     prior ingested Changeset.+--+-- 'sourceParams', 'createChangeset_sourceParams' - Options that define the location of the data being ingested+-- (@s3SourcePath@) and the source of the changeset (@sourceType@).+--+-- Both @s3SourcePath@ and @sourceType@ are required attributes.+--+-- Here is an example of how you could specify the @sourceParams@:+--+-- @ \"sourceParams\": { \"s3SourcePath\": \"s3:\/\/finspace-landing-us-east-2-bk7gcfvitndqa6ebnvys4d\/scratch\/wr5hh8pwkpqqkxa4sxrmcw\/ingestion\/equity.csv\", \"sourceType\": \"S3\" } @+--+-- The S3 path that you specify must allow the FinSpace role access. To do+-- that, you first need to configure the IAM policy on S3 bucket. For more+-- information, see+-- <https://docs.aws.amazon.com/finspace/latest/data-api/fs-using-the-finspace-api.html#access-s3-buckets Loading data from an Amazon S3 Bucket using the FinSpace API>+-- section.+--+-- 'formatParams', 'createChangeset_formatParams' - Options that define the structure of the source file(s) including the+-- format type (@formatType@), header row (@withHeader@), data separation+-- character (@separator@) and the type of compression (@compression@).+--+-- @formatType@ is a required attribute and can have the following values:+--+-- -   @PARQUET@ – Parquet source file format.+--+-- -   @CSV@ – CSV source file format.+--+-- -   @JSON@ – JSON source file format.+--+-- -   @XML@ – XML source file format.+--+-- Here is an example of how you could specify the @formatParams@:+--+-- @ \"formatParams\": { \"formatType\": \"CSV\", \"withHeader\": \"true\", \"separator\": \",\", \"compression\":\"None\" } @+--+-- Note that if you only provide @formatType@ as @CSV@, the rest of the+-- attributes will automatically default to CSV values as following:+--+-- @ { \"withHeader\": \"true\", \"separator\": \",\" } @+--+-- For more information about supported file formats, see+-- <https://docs.aws.amazon.com/finspace/latest/userguide/supported-data-types.html Supported Data Types and File Formats>+-- in the FinSpace User Guide.+newCreateChangeset ::+  -- | 'datasetId'+  Prelude.Text ->+  -- | 'changeType'+  ChangeType ->+  CreateChangeset+newCreateChangeset pDatasetId_ pChangeType_ =+  CreateChangeset'+    { clientToken = Prelude.Nothing,+      datasetId = pDatasetId_,+      changeType = pChangeType_,+      sourceParams = Prelude.mempty,+      formatParams = Prelude.mempty+    }++-- | A token that ensures idempotency. This token expires in 10 minutes.+createChangeset_clientToken :: Lens.Lens' CreateChangeset (Prelude.Maybe Prelude.Text)+createChangeset_clientToken = Lens.lens (\CreateChangeset' {clientToken} -> clientToken) (\s@CreateChangeset' {} a -> s {clientToken = a} :: CreateChangeset)++-- | The unique identifier for the FinSpace Dataset where the Changeset will+-- be created.+createChangeset_datasetId :: Lens.Lens' CreateChangeset Prelude.Text+createChangeset_datasetId = Lens.lens (\CreateChangeset' {datasetId} -> datasetId) (\s@CreateChangeset' {} a -> s {datasetId = a} :: CreateChangeset)++-- | The option to indicate how a Changeset will be applied to a Dataset.+--+-- -   @REPLACE@ – Changeset will be considered as a replacement to all+--     prior loaded Changesets.+--+-- -   @APPEND@ – Changeset will be considered as an addition to the end of+--     all prior loaded Changesets.+--+-- -   @MODIFY@ – Changeset is considered as a replacement to a specific+--     prior ingested Changeset.+createChangeset_changeType :: Lens.Lens' CreateChangeset ChangeType+createChangeset_changeType = Lens.lens (\CreateChangeset' {changeType} -> changeType) (\s@CreateChangeset' {} a -> s {changeType = a} :: CreateChangeset)++-- | Options that define the location of the data being ingested+-- (@s3SourcePath@) and the source of the changeset (@sourceType@).+--+-- Both @s3SourcePath@ and @sourceType@ are required attributes.+--+-- Here is an example of how you could specify the @sourceParams@:+--+-- @ \"sourceParams\": { \"s3SourcePath\": \"s3:\/\/finspace-landing-us-east-2-bk7gcfvitndqa6ebnvys4d\/scratch\/wr5hh8pwkpqqkxa4sxrmcw\/ingestion\/equity.csv\", \"sourceType\": \"S3\" } @+--+-- The S3 path that you specify must allow the FinSpace role access. To do+-- that, you first need to configure the IAM policy on S3 bucket. For more+-- information, see+-- <https://docs.aws.amazon.com/finspace/latest/data-api/fs-using-the-finspace-api.html#access-s3-buckets Loading data from an Amazon S3 Bucket using the FinSpace API>+-- section.+createChangeset_sourceParams :: Lens.Lens' CreateChangeset (Prelude.HashMap Prelude.Text Prelude.Text)+createChangeset_sourceParams = Lens.lens (\CreateChangeset' {sourceParams} -> sourceParams) (\s@CreateChangeset' {} a -> s {sourceParams = a} :: CreateChangeset) Prelude.. Lens.coerced++-- | Options that define the structure of the source file(s) including the+-- format type (@formatType@), header row (@withHeader@), data separation+-- character (@separator@) and the type of compression (@compression@).+--+-- @formatType@ is a required attribute and can have the following values:+--+-- -   @PARQUET@ – Parquet source file format.+--+-- -   @CSV@ – CSV source file format.+--+-- -   @JSON@ – JSON source file format.+--+-- -   @XML@ – XML source file format.+--+-- Here is an example of how you could specify the @formatParams@:+--+-- @ \"formatParams\": { \"formatType\": \"CSV\", \"withHeader\": \"true\", \"separator\": \",\", \"compression\":\"None\" } @+--+-- Note that if you only provide @formatType@ as @CSV@, the rest of the+-- attributes will automatically default to CSV values as following:+--+-- @ { \"withHeader\": \"true\", \"separator\": \",\" } @+--+-- For more information about supported file formats, see+-- <https://docs.aws.amazon.com/finspace/latest/userguide/supported-data-types.html Supported Data Types and File Formats>+-- in the FinSpace User Guide.+createChangeset_formatParams :: Lens.Lens' CreateChangeset (Prelude.HashMap Prelude.Text Prelude.Text)+createChangeset_formatParams = Lens.lens (\CreateChangeset' {formatParams} -> formatParams) (\s@CreateChangeset' {} a -> s {formatParams = a} :: CreateChangeset) Prelude.. Lens.coerced++instance Core.AWSRequest CreateChangeset where+  type+    AWSResponse CreateChangeset =+      CreateChangesetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateChangesetResponse'+            Prelude.<$> (x Data..?> "changesetId")+            Prelude.<*> (x Data..?> "datasetId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateChangeset where+  hashWithSalt _salt CreateChangeset' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` datasetId+      `Prelude.hashWithSalt` changeType+      `Prelude.hashWithSalt` sourceParams+      `Prelude.hashWithSalt` formatParams++instance Prelude.NFData CreateChangeset where+  rnf CreateChangeset' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf datasetId+      `Prelude.seq` Prelude.rnf changeType+      `Prelude.seq` Prelude.rnf sourceParams+      `Prelude.seq` Prelude.rnf formatParams++instance Data.ToHeaders CreateChangeset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateChangeset where+  toJSON CreateChangeset' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            Prelude.Just ("changeType" Data..= changeType),+            Prelude.Just ("sourceParams" Data..= sourceParams),+            Prelude.Just ("formatParams" Data..= formatParams)+          ]+      )++instance Data.ToPath CreateChangeset where+  toPath CreateChangeset' {..} =+    Prelude.mconcat+      ["/datasets/", Data.toBS datasetId, "/changesetsv2"]++instance Data.ToQuery CreateChangeset where+  toQuery = Prelude.const Prelude.mempty++-- | The response from a CreateChangeset operation.+--+-- /See:/ 'newCreateChangesetResponse' smart constructor.+data CreateChangesetResponse = CreateChangesetResponse'+  { -- | The unique identifier of the Changeset that is created.+    changesetId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the FinSpace Dataset where the Changeset is+    -- created.+    datasetId :: 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 'CreateChangesetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'changesetId', 'createChangesetResponse_changesetId' - The unique identifier of the Changeset that is created.+--+-- 'datasetId', 'createChangesetResponse_datasetId' - The unique identifier for the FinSpace Dataset where the Changeset is+-- created.+--+-- 'httpStatus', 'createChangesetResponse_httpStatus' - The response's http status code.+newCreateChangesetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateChangesetResponse+newCreateChangesetResponse pHttpStatus_ =+  CreateChangesetResponse'+    { changesetId =+        Prelude.Nothing,+      datasetId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the Changeset that is created.+createChangesetResponse_changesetId :: Lens.Lens' CreateChangesetResponse (Prelude.Maybe Prelude.Text)+createChangesetResponse_changesetId = Lens.lens (\CreateChangesetResponse' {changesetId} -> changesetId) (\s@CreateChangesetResponse' {} a -> s {changesetId = a} :: CreateChangesetResponse)++-- | The unique identifier for the FinSpace Dataset where the Changeset is+-- created.+createChangesetResponse_datasetId :: Lens.Lens' CreateChangesetResponse (Prelude.Maybe Prelude.Text)+createChangesetResponse_datasetId = Lens.lens (\CreateChangesetResponse' {datasetId} -> datasetId) (\s@CreateChangesetResponse' {} a -> s {datasetId = a} :: CreateChangesetResponse)++-- | The response's http status code.+createChangesetResponse_httpStatus :: Lens.Lens' CreateChangesetResponse Prelude.Int+createChangesetResponse_httpStatus = Lens.lens (\CreateChangesetResponse' {httpStatus} -> httpStatus) (\s@CreateChangesetResponse' {} a -> s {httpStatus = a} :: CreateChangesetResponse)++instance Prelude.NFData CreateChangesetResponse where+  rnf CreateChangesetResponse' {..} =+    Prelude.rnf changesetId+      `Prelude.seq` Prelude.rnf datasetId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/CreateDataView.hs view
@@ -0,0 +1,276 @@+{-# 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.FinSpaceData.CreateDataView+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a Dataview for a Dataset.+module Amazonka.FinSpaceData.CreateDataView+  ( -- * Creating a Request+    CreateDataView (..),+    newCreateDataView,++    -- * Request Lenses+    createDataView_asOfTimestamp,+    createDataView_autoUpdate,+    createDataView_clientToken,+    createDataView_partitionColumns,+    createDataView_sortColumns,+    createDataView_datasetId,+    createDataView_destinationTypeParams,++    -- * Destructuring the Response+    CreateDataViewResponse (..),+    newCreateDataViewResponse,++    -- * Response Lenses+    createDataViewResponse_dataViewId,+    createDataViewResponse_datasetId,+    createDataViewResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Request for creating a data view.+--+-- /See:/ 'newCreateDataView' smart constructor.+data CreateDataView = CreateDataView'+  { -- | Beginning time to use for the Dataview. The value is determined as epoch+    -- time in milliseconds. For example, the value for Monday, November 1,+    -- 2021 12:00:00 PM UTC is specified as 1635768000000.+    asOfTimestamp :: Prelude.Maybe Prelude.Integer,+    -- | Flag to indicate Dataview should be updated automatically.+    autoUpdate :: Prelude.Maybe Prelude.Bool,+    -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | Ordered set of column names used to partition data.+    partitionColumns :: Prelude.Maybe [Prelude.Text],+    -- | Columns to be used for sorting the data.+    sortColumns :: Prelude.Maybe [Prelude.Text],+    -- | The unique Dataset identifier that is used to create a Dataview.+    datasetId :: Prelude.Text,+    -- | Options that define the destination type for the Dataview.+    destinationTypeParams :: DataViewDestinationTypeParams+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDataView' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'asOfTimestamp', 'createDataView_asOfTimestamp' - Beginning time to use for the Dataview. The value is determined as epoch+-- time in milliseconds. For example, the value for Monday, November 1,+-- 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'autoUpdate', 'createDataView_autoUpdate' - Flag to indicate Dataview should be updated automatically.+--+-- 'clientToken', 'createDataView_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'partitionColumns', 'createDataView_partitionColumns' - Ordered set of column names used to partition data.+--+-- 'sortColumns', 'createDataView_sortColumns' - Columns to be used for sorting the data.+--+-- 'datasetId', 'createDataView_datasetId' - The unique Dataset identifier that is used to create a Dataview.+--+-- 'destinationTypeParams', 'createDataView_destinationTypeParams' - Options that define the destination type for the Dataview.+newCreateDataView ::+  -- | 'datasetId'+  Prelude.Text ->+  -- | 'destinationTypeParams'+  DataViewDestinationTypeParams ->+  CreateDataView+newCreateDataView pDatasetId_ pDestinationTypeParams_ =+  CreateDataView'+    { asOfTimestamp = Prelude.Nothing,+      autoUpdate = Prelude.Nothing,+      clientToken = Prelude.Nothing,+      partitionColumns = Prelude.Nothing,+      sortColumns = Prelude.Nothing,+      datasetId = pDatasetId_,+      destinationTypeParams = pDestinationTypeParams_+    }++-- | Beginning time to use for the Dataview. The value is determined as epoch+-- time in milliseconds. For example, the value for Monday, November 1,+-- 2021 12:00:00 PM UTC is specified as 1635768000000.+createDataView_asOfTimestamp :: Lens.Lens' CreateDataView (Prelude.Maybe Prelude.Integer)+createDataView_asOfTimestamp = Lens.lens (\CreateDataView' {asOfTimestamp} -> asOfTimestamp) (\s@CreateDataView' {} a -> s {asOfTimestamp = a} :: CreateDataView)++-- | Flag to indicate Dataview should be updated automatically.+createDataView_autoUpdate :: Lens.Lens' CreateDataView (Prelude.Maybe Prelude.Bool)+createDataView_autoUpdate = Lens.lens (\CreateDataView' {autoUpdate} -> autoUpdate) (\s@CreateDataView' {} a -> s {autoUpdate = a} :: CreateDataView)++-- | A token that ensures idempotency. This token expires in 10 minutes.+createDataView_clientToken :: Lens.Lens' CreateDataView (Prelude.Maybe Prelude.Text)+createDataView_clientToken = Lens.lens (\CreateDataView' {clientToken} -> clientToken) (\s@CreateDataView' {} a -> s {clientToken = a} :: CreateDataView)++-- | Ordered set of column names used to partition data.+createDataView_partitionColumns :: Lens.Lens' CreateDataView (Prelude.Maybe [Prelude.Text])+createDataView_partitionColumns = Lens.lens (\CreateDataView' {partitionColumns} -> partitionColumns) (\s@CreateDataView' {} a -> s {partitionColumns = a} :: CreateDataView) Prelude.. Lens.mapping Lens.coerced++-- | Columns to be used for sorting the data.+createDataView_sortColumns :: Lens.Lens' CreateDataView (Prelude.Maybe [Prelude.Text])+createDataView_sortColumns = Lens.lens (\CreateDataView' {sortColumns} -> sortColumns) (\s@CreateDataView' {} a -> s {sortColumns = a} :: CreateDataView) Prelude.. Lens.mapping Lens.coerced++-- | The unique Dataset identifier that is used to create a Dataview.+createDataView_datasetId :: Lens.Lens' CreateDataView Prelude.Text+createDataView_datasetId = Lens.lens (\CreateDataView' {datasetId} -> datasetId) (\s@CreateDataView' {} a -> s {datasetId = a} :: CreateDataView)++-- | Options that define the destination type for the Dataview.+createDataView_destinationTypeParams :: Lens.Lens' CreateDataView DataViewDestinationTypeParams+createDataView_destinationTypeParams = Lens.lens (\CreateDataView' {destinationTypeParams} -> destinationTypeParams) (\s@CreateDataView' {} a -> s {destinationTypeParams = a} :: CreateDataView)++instance Core.AWSRequest CreateDataView where+  type+    AWSResponse CreateDataView =+      CreateDataViewResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDataViewResponse'+            Prelude.<$> (x Data..?> "dataViewId")+            Prelude.<*> (x Data..?> "datasetId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDataView where+  hashWithSalt _salt CreateDataView' {..} =+    _salt+      `Prelude.hashWithSalt` asOfTimestamp+      `Prelude.hashWithSalt` autoUpdate+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` partitionColumns+      `Prelude.hashWithSalt` sortColumns+      `Prelude.hashWithSalt` datasetId+      `Prelude.hashWithSalt` destinationTypeParams++instance Prelude.NFData CreateDataView where+  rnf CreateDataView' {..} =+    Prelude.rnf asOfTimestamp+      `Prelude.seq` Prelude.rnf autoUpdate+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf partitionColumns+      `Prelude.seq` Prelude.rnf sortColumns+      `Prelude.seq` Prelude.rnf datasetId+      `Prelude.seq` Prelude.rnf destinationTypeParams++instance Data.ToHeaders CreateDataView where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDataView where+  toJSON CreateDataView' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("asOfTimestamp" Data..=) Prelude.<$> asOfTimestamp,+            ("autoUpdate" Data..=) Prelude.<$> autoUpdate,+            ("clientToken" Data..=) Prelude.<$> clientToken,+            ("partitionColumns" Data..=)+              Prelude.<$> partitionColumns,+            ("sortColumns" Data..=) Prelude.<$> sortColumns,+            Prelude.Just+              ( "destinationTypeParams"+                  Data..= destinationTypeParams+              )+          ]+      )++instance Data.ToPath CreateDataView where+  toPath CreateDataView' {..} =+    Prelude.mconcat+      ["/datasets/", Data.toBS datasetId, "/dataviewsv2"]++instance Data.ToQuery CreateDataView where+  toQuery = Prelude.const Prelude.mempty++-- | Response for creating a data view.+--+-- /See:/ 'newCreateDataViewResponse' smart constructor.+data CreateDataViewResponse = CreateDataViewResponse'+  { -- | The unique identifier for the created Dataview.+    dataViewId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the Dataset used for the Dataview.+    datasetId :: 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 'CreateDataViewResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataViewId', 'createDataViewResponse_dataViewId' - The unique identifier for the created Dataview.+--+-- 'datasetId', 'createDataViewResponse_datasetId' - The unique identifier of the Dataset used for the Dataview.+--+-- 'httpStatus', 'createDataViewResponse_httpStatus' - The response's http status code.+newCreateDataViewResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDataViewResponse+newCreateDataViewResponse pHttpStatus_ =+  CreateDataViewResponse'+    { dataViewId =+        Prelude.Nothing,+      datasetId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for the created Dataview.+createDataViewResponse_dataViewId :: Lens.Lens' CreateDataViewResponse (Prelude.Maybe Prelude.Text)+createDataViewResponse_dataViewId = Lens.lens (\CreateDataViewResponse' {dataViewId} -> dataViewId) (\s@CreateDataViewResponse' {} a -> s {dataViewId = a} :: CreateDataViewResponse)++-- | The unique identifier of the Dataset used for the Dataview.+createDataViewResponse_datasetId :: Lens.Lens' CreateDataViewResponse (Prelude.Maybe Prelude.Text)+createDataViewResponse_datasetId = Lens.lens (\CreateDataViewResponse' {datasetId} -> datasetId) (\s@CreateDataViewResponse' {} a -> s {datasetId = a} :: CreateDataViewResponse)++-- | The response's http status code.+createDataViewResponse_httpStatus :: Lens.Lens' CreateDataViewResponse Prelude.Int+createDataViewResponse_httpStatus = Lens.lens (\CreateDataViewResponse' {httpStatus} -> httpStatus) (\s@CreateDataViewResponse' {} a -> s {httpStatus = a} :: CreateDataViewResponse)++instance Prelude.NFData CreateDataViewResponse where+  rnf CreateDataViewResponse' {..} =+    Prelude.rnf dataViewId+      `Prelude.seq` Prelude.rnf datasetId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/CreateDataset.hs view
@@ -0,0 +1,287 @@+{-# 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.FinSpaceData.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)+--+-- Creates a new FinSpace Dataset.+module Amazonka.FinSpaceData.CreateDataset+  ( -- * Creating a Request+    CreateDataset (..),+    newCreateDataset,++    -- * Request Lenses+    createDataset_alias,+    createDataset_clientToken,+    createDataset_datasetDescription,+    createDataset_ownerInfo,+    createDataset_schemaDefinition,+    createDataset_datasetTitle,+    createDataset_kind,+    createDataset_permissionGroupParams,++    -- * Destructuring the Response+    CreateDatasetResponse (..),+    newCreateDatasetResponse,++    -- * Response Lenses+    createDatasetResponse_datasetId,+    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.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request for a CreateDataset operation+--+-- /See:/ 'newCreateDataset' smart constructor.+data CreateDataset = CreateDataset'+  { -- | The unique resource identifier for a Dataset.+    alias :: Prelude.Maybe Prelude.Text,+    -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | Description of a Dataset.+    datasetDescription :: Prelude.Maybe Prelude.Text,+    -- | Contact information for a Dataset owner.+    ownerInfo :: Prelude.Maybe DatasetOwnerInfo,+    -- | Definition for a schema on a tabular Dataset.+    schemaDefinition :: Prelude.Maybe SchemaUnion,+    -- | Display title for a FinSpace Dataset.+    datasetTitle :: Prelude.Text,+    -- | The format in which Dataset data is structured.+    --+    -- -   @TABULAR@ – Data is structured in a tabular format.+    --+    -- -   @NON_TABULAR@ – Data is structured in a non-tabular format.+    kind :: DatasetKind,+    -- | Permission group parameters for Dataset permissions.+    permissionGroupParams :: PermissionGroupParams+  }+  deriving (Prelude.Eq, 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:+--+-- 'alias', 'createDataset_alias' - The unique resource identifier for a Dataset.+--+-- 'clientToken', 'createDataset_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'datasetDescription', 'createDataset_datasetDescription' - Description of a Dataset.+--+-- 'ownerInfo', 'createDataset_ownerInfo' - Contact information for a Dataset owner.+--+-- 'schemaDefinition', 'createDataset_schemaDefinition' - Definition for a schema on a tabular Dataset.+--+-- 'datasetTitle', 'createDataset_datasetTitle' - Display title for a FinSpace Dataset.+--+-- 'kind', 'createDataset_kind' - The format in which Dataset data is structured.+--+-- -   @TABULAR@ – Data is structured in a tabular format.+--+-- -   @NON_TABULAR@ – Data is structured in a non-tabular format.+--+-- 'permissionGroupParams', 'createDataset_permissionGroupParams' - Permission group parameters for Dataset permissions.+newCreateDataset ::+  -- | 'datasetTitle'+  Prelude.Text ->+  -- | 'kind'+  DatasetKind ->+  -- | 'permissionGroupParams'+  PermissionGroupParams ->+  CreateDataset+newCreateDataset+  pDatasetTitle_+  pKind_+  pPermissionGroupParams_ =+    CreateDataset'+      { alias = Prelude.Nothing,+        clientToken = Prelude.Nothing,+        datasetDescription = Prelude.Nothing,+        ownerInfo = Prelude.Nothing,+        schemaDefinition = Prelude.Nothing,+        datasetTitle = pDatasetTitle_,+        kind = pKind_,+        permissionGroupParams = pPermissionGroupParams_+      }++-- | The unique resource identifier for a Dataset.+createDataset_alias :: Lens.Lens' CreateDataset (Prelude.Maybe Prelude.Text)+createDataset_alias = Lens.lens (\CreateDataset' {alias} -> alias) (\s@CreateDataset' {} a -> s {alias = a} :: CreateDataset)++-- | A token that ensures idempotency. This token expires in 10 minutes.+createDataset_clientToken :: Lens.Lens' CreateDataset (Prelude.Maybe Prelude.Text)+createDataset_clientToken = Lens.lens (\CreateDataset' {clientToken} -> clientToken) (\s@CreateDataset' {} a -> s {clientToken = a} :: CreateDataset)++-- | Description of a Dataset.+createDataset_datasetDescription :: Lens.Lens' CreateDataset (Prelude.Maybe Prelude.Text)+createDataset_datasetDescription = Lens.lens (\CreateDataset' {datasetDescription} -> datasetDescription) (\s@CreateDataset' {} a -> s {datasetDescription = a} :: CreateDataset)++-- | Contact information for a Dataset owner.+createDataset_ownerInfo :: Lens.Lens' CreateDataset (Prelude.Maybe DatasetOwnerInfo)+createDataset_ownerInfo = Lens.lens (\CreateDataset' {ownerInfo} -> ownerInfo) (\s@CreateDataset' {} a -> s {ownerInfo = a} :: CreateDataset)++-- | Definition for a schema on a tabular Dataset.+createDataset_schemaDefinition :: Lens.Lens' CreateDataset (Prelude.Maybe SchemaUnion)+createDataset_schemaDefinition = Lens.lens (\CreateDataset' {schemaDefinition} -> schemaDefinition) (\s@CreateDataset' {} a -> s {schemaDefinition = a} :: CreateDataset)++-- | Display title for a FinSpace Dataset.+createDataset_datasetTitle :: Lens.Lens' CreateDataset Prelude.Text+createDataset_datasetTitle = Lens.lens (\CreateDataset' {datasetTitle} -> datasetTitle) (\s@CreateDataset' {} a -> s {datasetTitle = a} :: CreateDataset)++-- | The format in which Dataset data is structured.+--+-- -   @TABULAR@ – Data is structured in a tabular format.+--+-- -   @NON_TABULAR@ – Data is structured in a non-tabular format.+createDataset_kind :: Lens.Lens' CreateDataset DatasetKind+createDataset_kind = Lens.lens (\CreateDataset' {kind} -> kind) (\s@CreateDataset' {} a -> s {kind = a} :: CreateDataset)++-- | Permission group parameters for Dataset permissions.+createDataset_permissionGroupParams :: Lens.Lens' CreateDataset PermissionGroupParams+createDataset_permissionGroupParams = Lens.lens (\CreateDataset' {permissionGroupParams} -> permissionGroupParams) (\s@CreateDataset' {} a -> s {permissionGroupParams = 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..?> "datasetId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDataset where+  hashWithSalt _salt CreateDataset' {..} =+    _salt+      `Prelude.hashWithSalt` alias+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` datasetDescription+      `Prelude.hashWithSalt` ownerInfo+      `Prelude.hashWithSalt` schemaDefinition+      `Prelude.hashWithSalt` datasetTitle+      `Prelude.hashWithSalt` kind+      `Prelude.hashWithSalt` permissionGroupParams++instance Prelude.NFData CreateDataset where+  rnf CreateDataset' {..} =+    Prelude.rnf alias+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf datasetDescription+      `Prelude.seq` Prelude.rnf ownerInfo+      `Prelude.seq` Prelude.rnf schemaDefinition+      `Prelude.seq` Prelude.rnf datasetTitle+      `Prelude.seq` Prelude.rnf kind+      `Prelude.seq` Prelude.rnf permissionGroupParams++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+          [ ("alias" Data..=) Prelude.<$> alias,+            ("clientToken" Data..=) Prelude.<$> clientToken,+            ("datasetDescription" Data..=)+              Prelude.<$> datasetDescription,+            ("ownerInfo" Data..=) Prelude.<$> ownerInfo,+            ("schemaDefinition" Data..=)+              Prelude.<$> schemaDefinition,+            Prelude.Just ("datasetTitle" Data..= datasetTitle),+            Prelude.Just ("kind" Data..= kind),+            Prelude.Just+              ( "permissionGroupParams"+                  Data..= permissionGroupParams+              )+          ]+      )++instance Data.ToPath CreateDataset where+  toPath = Prelude.const "/datasetsv2"++instance Data.ToQuery CreateDataset where+  toQuery = Prelude.const Prelude.mempty++-- | The response from a CreateDataset operation+--+-- /See:/ 'newCreateDatasetResponse' smart constructor.+data CreateDatasetResponse = CreateDatasetResponse'+  { -- | The unique identifier for the created Dataset.+    datasetId :: 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 '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:+--+-- 'datasetId', 'createDatasetResponse_datasetId' - The unique identifier for the created Dataset.+--+-- 'httpStatus', 'createDatasetResponse_httpStatus' - The response's http status code.+newCreateDatasetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDatasetResponse+newCreateDatasetResponse pHttpStatus_ =+  CreateDatasetResponse'+    { datasetId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for the created Dataset.+createDatasetResponse_datasetId :: Lens.Lens' CreateDatasetResponse (Prelude.Maybe Prelude.Text)+createDatasetResponse_datasetId = Lens.lens (\CreateDatasetResponse' {datasetId} -> datasetId) (\s@CreateDatasetResponse' {} a -> s {datasetId = a} :: CreateDatasetResponse)++-- | 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 datasetId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/CreatePermissionGroup.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.FinSpaceData.CreatePermissionGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a group of permissions for various actions that a user can+-- perform in FinSpace.+module Amazonka.FinSpaceData.CreatePermissionGroup+  ( -- * Creating a Request+    CreatePermissionGroup (..),+    newCreatePermissionGroup,++    -- * Request Lenses+    createPermissionGroup_clientToken,+    createPermissionGroup_description,+    createPermissionGroup_name,+    createPermissionGroup_applicationPermissions,++    -- * Destructuring the Response+    CreatePermissionGroupResponse (..),+    newCreatePermissionGroupResponse,++    -- * Response Lenses+    createPermissionGroupResponse_permissionGroupId,+    createPermissionGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreatePermissionGroup' smart constructor.+data CreatePermissionGroup = CreatePermissionGroup'+  { -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A brief description for the permission group.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The name of the permission group.+    name :: Data.Sensitive Prelude.Text,+    -- | The option to indicate FinSpace application permissions that are granted+    -- to a specific group.+    --+    -- When assigning application permissions, be aware that the permission+    -- @ManageUsersAndGroups@ allows users to grant themselves or others access+    -- to any functionality in their FinSpace environment\'s application. It+    -- should only be granted to trusted users.+    --+    -- -   @CreateDataset@ – Group members can create new datasets.+    --+    -- -   @ManageClusters@ – Group members can manage Apache Spark clusters+    --     from FinSpace notebooks.+    --+    -- -   @ManageUsersAndGroups@ – Group members can manage users and+    --     permission groups. This is a privileged permission that allows users+    --     to grant themselves or others access to any functionality in the+    --     application. It should only be granted to trusted users.+    --+    -- -   @ManageAttributeSets@ – Group members can manage attribute sets.+    --+    -- -   @ViewAuditData@ – Group members can view audit data.+    --+    -- -   @AccessNotebooks@ – Group members will have access to FinSpace+    --     notebooks.+    --+    -- -   @GetTemporaryCredentials@ – Group members can get temporary API+    --     credentials.+    applicationPermissions :: [ApplicationPermission]+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreatePermissionGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createPermissionGroup_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'description', 'createPermissionGroup_description' - A brief description for the permission group.+--+-- 'name', 'createPermissionGroup_name' - The name of the permission group.+--+-- 'applicationPermissions', 'createPermissionGroup_applicationPermissions' - The option to indicate FinSpace application permissions that are granted+-- to a specific group.+--+-- When assigning application permissions, be aware that the permission+-- @ManageUsersAndGroups@ allows users to grant themselves or others access+-- to any functionality in their FinSpace environment\'s application. It+-- should only be granted to trusted users.+--+-- -   @CreateDataset@ – Group members can create new datasets.+--+-- -   @ManageClusters@ – Group members can manage Apache Spark clusters+--     from FinSpace notebooks.+--+-- -   @ManageUsersAndGroups@ – Group members can manage users and+--     permission groups. This is a privileged permission that allows users+--     to grant themselves or others access to any functionality in the+--     application. It should only be granted to trusted users.+--+-- -   @ManageAttributeSets@ – Group members can manage attribute sets.+--+-- -   @ViewAuditData@ – Group members can view audit data.+--+-- -   @AccessNotebooks@ – Group members will have access to FinSpace+--     notebooks.+--+-- -   @GetTemporaryCredentials@ – Group members can get temporary API+--     credentials.+newCreatePermissionGroup ::+  -- | 'name'+  Prelude.Text ->+  CreatePermissionGroup+newCreatePermissionGroup pName_ =+  CreatePermissionGroup'+    { clientToken =+        Prelude.Nothing,+      description = Prelude.Nothing,+      name = Data._Sensitive Lens.# pName_,+      applicationPermissions = Prelude.mempty+    }++-- | A token that ensures idempotency. This token expires in 10 minutes.+createPermissionGroup_clientToken :: Lens.Lens' CreatePermissionGroup (Prelude.Maybe Prelude.Text)+createPermissionGroup_clientToken = Lens.lens (\CreatePermissionGroup' {clientToken} -> clientToken) (\s@CreatePermissionGroup' {} a -> s {clientToken = a} :: CreatePermissionGroup)++-- | A brief description for the permission group.+createPermissionGroup_description :: Lens.Lens' CreatePermissionGroup (Prelude.Maybe Prelude.Text)+createPermissionGroup_description = Lens.lens (\CreatePermissionGroup' {description} -> description) (\s@CreatePermissionGroup' {} a -> s {description = a} :: CreatePermissionGroup) Prelude.. Lens.mapping Data._Sensitive++-- | The name of the permission group.+createPermissionGroup_name :: Lens.Lens' CreatePermissionGroup Prelude.Text+createPermissionGroup_name = Lens.lens (\CreatePermissionGroup' {name} -> name) (\s@CreatePermissionGroup' {} a -> s {name = a} :: CreatePermissionGroup) Prelude.. Data._Sensitive++-- | The option to indicate FinSpace application permissions that are granted+-- to a specific group.+--+-- When assigning application permissions, be aware that the permission+-- @ManageUsersAndGroups@ allows users to grant themselves or others access+-- to any functionality in their FinSpace environment\'s application. It+-- should only be granted to trusted users.+--+-- -   @CreateDataset@ – Group members can create new datasets.+--+-- -   @ManageClusters@ – Group members can manage Apache Spark clusters+--     from FinSpace notebooks.+--+-- -   @ManageUsersAndGroups@ – Group members can manage users and+--     permission groups. This is a privileged permission that allows users+--     to grant themselves or others access to any functionality in the+--     application. It should only be granted to trusted users.+--+-- -   @ManageAttributeSets@ – Group members can manage attribute sets.+--+-- -   @ViewAuditData@ – Group members can view audit data.+--+-- -   @AccessNotebooks@ – Group members will have access to FinSpace+--     notebooks.+--+-- -   @GetTemporaryCredentials@ – Group members can get temporary API+--     credentials.+createPermissionGroup_applicationPermissions :: Lens.Lens' CreatePermissionGroup [ApplicationPermission]+createPermissionGroup_applicationPermissions = Lens.lens (\CreatePermissionGroup' {applicationPermissions} -> applicationPermissions) (\s@CreatePermissionGroup' {} a -> s {applicationPermissions = a} :: CreatePermissionGroup) Prelude.. Lens.coerced++instance Core.AWSRequest CreatePermissionGroup where+  type+    AWSResponse CreatePermissionGroup =+      CreatePermissionGroupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreatePermissionGroupResponse'+            Prelude.<$> (x Data..?> "permissionGroupId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreatePermissionGroup where+  hashWithSalt _salt CreatePermissionGroup' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` applicationPermissions++instance Prelude.NFData CreatePermissionGroup where+  rnf CreatePermissionGroup' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf applicationPermissions++instance Data.ToHeaders CreatePermissionGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreatePermissionGroup where+  toJSON CreatePermissionGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("description" Data..=) Prelude.<$> description,+            Prelude.Just ("name" Data..= name),+            Prelude.Just+              ( "applicationPermissions"+                  Data..= applicationPermissions+              )+          ]+      )++instance Data.ToPath CreatePermissionGroup where+  toPath = Prelude.const "/permission-group"++instance Data.ToQuery CreatePermissionGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreatePermissionGroupResponse' smart constructor.+data CreatePermissionGroupResponse = CreatePermissionGroupResponse'+  { -- | The unique identifier for the permission group.+    permissionGroupId :: 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 'CreatePermissionGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'permissionGroupId', 'createPermissionGroupResponse_permissionGroupId' - The unique identifier for the permission group.+--+-- 'httpStatus', 'createPermissionGroupResponse_httpStatus' - The response's http status code.+newCreatePermissionGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreatePermissionGroupResponse+newCreatePermissionGroupResponse pHttpStatus_ =+  CreatePermissionGroupResponse'+    { permissionGroupId =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for the permission group.+createPermissionGroupResponse_permissionGroupId :: Lens.Lens' CreatePermissionGroupResponse (Prelude.Maybe Prelude.Text)+createPermissionGroupResponse_permissionGroupId = Lens.lens (\CreatePermissionGroupResponse' {permissionGroupId} -> permissionGroupId) (\s@CreatePermissionGroupResponse' {} a -> s {permissionGroupId = a} :: CreatePermissionGroupResponse)++-- | The response's http status code.+createPermissionGroupResponse_httpStatus :: Lens.Lens' CreatePermissionGroupResponse Prelude.Int+createPermissionGroupResponse_httpStatus = Lens.lens (\CreatePermissionGroupResponse' {httpStatus} -> httpStatus) (\s@CreatePermissionGroupResponse' {} a -> s {httpStatus = a} :: CreatePermissionGroupResponse)++instance Prelude.NFData CreatePermissionGroupResponse where+  rnf CreatePermissionGroupResponse' {..} =+    Prelude.rnf permissionGroupId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/CreateUser.hs view
@@ -0,0 +1,301 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FinSpaceData.CreateUser+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new user in FinSpace.+module Amazonka.FinSpaceData.CreateUser+  ( -- * Creating a Request+    CreateUser (..),+    newCreateUser,++    -- * Request Lenses+    createUser_apiAccess,+    createUser_apiAccessPrincipalArn,+    createUser_clientToken,+    createUser_firstName,+    createUser_lastName,+    createUser_emailAddress,+    createUser_type,++    -- * Destructuring the Response+    CreateUserResponse (..),+    newCreateUserResponse,++    -- * Response Lenses+    createUserResponse_userId,+    createUserResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateUser' smart constructor.+data CreateUser = CreateUser'+  { -- | The option to indicate whether the user can use the+    -- @GetProgrammaticAccessCredentials@ API to obtain credentials that can+    -- then be used to access other FinSpace Data API operations.+    --+    -- -   @ENABLED@ – The user has permissions to use the APIs.+    --+    -- -   @DISABLED@ – The user does not have permissions to use any APIs.+    apiAccess :: Prelude.Maybe ApiAccess,+    -- | The ARN identifier of an AWS user or role that is allowed to call the+    -- @GetProgrammaticAccessCredentials@ API to obtain a credentials token for+    -- a specific FinSpace user. This must be an IAM role within your FinSpace+    -- account.+    apiAccessPrincipalArn :: Prelude.Maybe Prelude.Text,+    -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The first name of the user that you want to register.+    firstName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The last name of the user that you want to register.+    lastName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The email address of the user that you want to register. The email+    -- address serves as a uniquer identifier for each user and cannot be+    -- changed after it\'s created.+    emailAddress :: Data.Sensitive Prelude.Text,+    -- | The option to indicate the type of user. Use one of the following+    -- options to specify this parameter:+    --+    -- -   @SUPER_USER@ – A user with permission to all the functionality and+    --     data in FinSpace.+    --+    -- -   @APP_USER@ – A user with specific permissions in FinSpace. The users+    --     are assigned permissions by adding them to a permission group.+    type' :: UserType+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiAccess', 'createUser_apiAccess' - The option to indicate whether the user can use the+-- @GetProgrammaticAccessCredentials@ API to obtain credentials that can+-- then be used to access other FinSpace Data API operations.+--+-- -   @ENABLED@ – The user has permissions to use the APIs.+--+-- -   @DISABLED@ – The user does not have permissions to use any APIs.+--+-- 'apiAccessPrincipalArn', 'createUser_apiAccessPrincipalArn' - The ARN identifier of an AWS user or role that is allowed to call the+-- @GetProgrammaticAccessCredentials@ API to obtain a credentials token for+-- a specific FinSpace user. This must be an IAM role within your FinSpace+-- account.+--+-- 'clientToken', 'createUser_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'firstName', 'createUser_firstName' - The first name of the user that you want to register.+--+-- 'lastName', 'createUser_lastName' - The last name of the user that you want to register.+--+-- 'emailAddress', 'createUser_emailAddress' - The email address of the user that you want to register. The email+-- address serves as a uniquer identifier for each user and cannot be+-- changed after it\'s created.+--+-- 'type'', 'createUser_type' - The option to indicate the type of user. Use one of the following+-- options to specify this parameter:+--+-- -   @SUPER_USER@ – A user with permission to all the functionality and+--     data in FinSpace.+--+-- -   @APP_USER@ – A user with specific permissions in FinSpace. The users+--     are assigned permissions by adding them to a permission group.+newCreateUser ::+  -- | 'emailAddress'+  Prelude.Text ->+  -- | 'type''+  UserType ->+  CreateUser+newCreateUser pEmailAddress_ pType_ =+  CreateUser'+    { apiAccess = Prelude.Nothing,+      apiAccessPrincipalArn = Prelude.Nothing,+      clientToken = Prelude.Nothing,+      firstName = Prelude.Nothing,+      lastName = Prelude.Nothing,+      emailAddress = Data._Sensitive Lens.# pEmailAddress_,+      type' = pType_+    }++-- | The option to indicate whether the user can use the+-- @GetProgrammaticAccessCredentials@ API to obtain credentials that can+-- then be used to access other FinSpace Data API operations.+--+-- -   @ENABLED@ – The user has permissions to use the APIs.+--+-- -   @DISABLED@ – The user does not have permissions to use any APIs.+createUser_apiAccess :: Lens.Lens' CreateUser (Prelude.Maybe ApiAccess)+createUser_apiAccess = Lens.lens (\CreateUser' {apiAccess} -> apiAccess) (\s@CreateUser' {} a -> s {apiAccess = a} :: CreateUser)++-- | The ARN identifier of an AWS user or role that is allowed to call the+-- @GetProgrammaticAccessCredentials@ API to obtain a credentials token for+-- a specific FinSpace user. This must be an IAM role within your FinSpace+-- account.+createUser_apiAccessPrincipalArn :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)+createUser_apiAccessPrincipalArn = Lens.lens (\CreateUser' {apiAccessPrincipalArn} -> apiAccessPrincipalArn) (\s@CreateUser' {} a -> s {apiAccessPrincipalArn = a} :: CreateUser)++-- | A token that ensures idempotency. This token expires in 10 minutes.+createUser_clientToken :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)+createUser_clientToken = Lens.lens (\CreateUser' {clientToken} -> clientToken) (\s@CreateUser' {} a -> s {clientToken = a} :: CreateUser)++-- | The first name of the user that you want to register.+createUser_firstName :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)+createUser_firstName = Lens.lens (\CreateUser' {firstName} -> firstName) (\s@CreateUser' {} a -> s {firstName = a} :: CreateUser) Prelude.. Lens.mapping Data._Sensitive++-- | The last name of the user that you want to register.+createUser_lastName :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)+createUser_lastName = Lens.lens (\CreateUser' {lastName} -> lastName) (\s@CreateUser' {} a -> s {lastName = a} :: CreateUser) Prelude.. Lens.mapping Data._Sensitive++-- | The email address of the user that you want to register. The email+-- address serves as a uniquer identifier for each user and cannot be+-- changed after it\'s created.+createUser_emailAddress :: Lens.Lens' CreateUser Prelude.Text+createUser_emailAddress = Lens.lens (\CreateUser' {emailAddress} -> emailAddress) (\s@CreateUser' {} a -> s {emailAddress = a} :: CreateUser) Prelude.. Data._Sensitive++-- | The option to indicate the type of user. Use one of the following+-- options to specify this parameter:+--+-- -   @SUPER_USER@ – A user with permission to all the functionality and+--     data in FinSpace.+--+-- -   @APP_USER@ – A user with specific permissions in FinSpace. The users+--     are assigned permissions by adding them to a permission group.+createUser_type :: Lens.Lens' CreateUser UserType+createUser_type = Lens.lens (\CreateUser' {type'} -> type') (\s@CreateUser' {} a -> s {type' = a} :: CreateUser)++instance Core.AWSRequest CreateUser where+  type AWSResponse CreateUser = CreateUserResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateUserResponse'+            Prelude.<$> (x Data..?> "userId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateUser where+  hashWithSalt _salt CreateUser' {..} =+    _salt+      `Prelude.hashWithSalt` apiAccess+      `Prelude.hashWithSalt` apiAccessPrincipalArn+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` firstName+      `Prelude.hashWithSalt` lastName+      `Prelude.hashWithSalt` emailAddress+      `Prelude.hashWithSalt` type'++instance Prelude.NFData CreateUser where+  rnf CreateUser' {..} =+    Prelude.rnf apiAccess+      `Prelude.seq` Prelude.rnf apiAccessPrincipalArn+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf firstName+      `Prelude.seq` Prelude.rnf lastName+      `Prelude.seq` Prelude.rnf emailAddress+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders CreateUser where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateUser where+  toJSON CreateUser' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ApiAccess" Data..=) Prelude.<$> apiAccess,+            ("apiAccessPrincipalArn" Data..=)+              Prelude.<$> apiAccessPrincipalArn,+            ("clientToken" Data..=) Prelude.<$> clientToken,+            ("firstName" Data..=) Prelude.<$> firstName,+            ("lastName" Data..=) Prelude.<$> lastName,+            Prelude.Just ("emailAddress" Data..= emailAddress),+            Prelude.Just ("type" Data..= type')+          ]+      )++instance Data.ToPath CreateUser where+  toPath = Prelude.const "/user"++instance Data.ToQuery CreateUser where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateUserResponse' smart constructor.+data CreateUserResponse = CreateUserResponse'+  { -- | The unique identifier for the user.+    userId :: 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 'CreateUserResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'userId', 'createUserResponse_userId' - The unique identifier for the user.+--+-- 'httpStatus', 'createUserResponse_httpStatus' - The response's http status code.+newCreateUserResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateUserResponse+newCreateUserResponse pHttpStatus_ =+  CreateUserResponse'+    { userId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for the user.+createUserResponse_userId :: Lens.Lens' CreateUserResponse (Prelude.Maybe Prelude.Text)+createUserResponse_userId = Lens.lens (\CreateUserResponse' {userId} -> userId) (\s@CreateUserResponse' {} a -> s {userId = a} :: CreateUserResponse)++-- | The response's http status code.+createUserResponse_httpStatus :: Lens.Lens' CreateUserResponse Prelude.Int+createUserResponse_httpStatus = Lens.lens (\CreateUserResponse' {httpStatus} -> httpStatus) (\s@CreateUserResponse' {} a -> s {httpStatus = a} :: CreateUserResponse)++instance Prelude.NFData CreateUserResponse where+  rnf CreateUserResponse' {..} =+    Prelude.rnf userId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/DeleteDataset.hs view
@@ -0,0 +1,179 @@+{-# 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.FinSpaceData.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)+--+-- Deletes a FinSpace Dataset.+module Amazonka.FinSpaceData.DeleteDataset+  ( -- * Creating a Request+    DeleteDataset (..),+    newDeleteDataset,++    -- * Request Lenses+    deleteDataset_clientToken,+    deleteDataset_datasetId,++    -- * Destructuring the Response+    DeleteDatasetResponse (..),+    newDeleteDatasetResponse,++    -- * Response Lenses+    deleteDatasetResponse_datasetId,+    deleteDatasetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request for a DeleteDataset operation.+--+-- /See:/ 'newDeleteDataset' smart constructor.+data DeleteDataset = DeleteDataset'+  { -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the Dataset to be deleted.+    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:+--+-- 'clientToken', 'deleteDataset_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'datasetId', 'deleteDataset_datasetId' - The unique identifier of the Dataset to be deleted.+newDeleteDataset ::+  -- | 'datasetId'+  Prelude.Text ->+  DeleteDataset+newDeleteDataset pDatasetId_ =+  DeleteDataset'+    { clientToken = Prelude.Nothing,+      datasetId = pDatasetId_+    }++-- | A token that ensures idempotency. This token expires in 10 minutes.+deleteDataset_clientToken :: Lens.Lens' DeleteDataset (Prelude.Maybe Prelude.Text)+deleteDataset_clientToken = Lens.lens (\DeleteDataset' {clientToken} -> clientToken) (\s@DeleteDataset' {} a -> s {clientToken = a} :: DeleteDataset)++-- | The unique identifier of the Dataset to be deleted.+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.receiveJSON+      ( \s h x ->+          DeleteDatasetResponse'+            Prelude.<$> (x Data..?> "datasetId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteDataset where+  hashWithSalt _salt DeleteDataset' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` datasetId++instance Prelude.NFData DeleteDataset where+  rnf DeleteDataset' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` 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+      ["/datasetsv2/", Data.toBS datasetId]++instance Data.ToQuery DeleteDataset where+  toQuery DeleteDataset' {..} =+    Prelude.mconcat ["clientToken" Data.=: clientToken]++-- | The response from an DeleteDataset operation+--+-- /See:/ 'newDeleteDatasetResponse' smart constructor.+data DeleteDatasetResponse = DeleteDatasetResponse'+  { -- | The unique identifier for the deleted Dataset.+    datasetId :: 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 '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.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetId', 'deleteDatasetResponse_datasetId' - The unique identifier for the deleted Dataset.+--+-- 'httpStatus', 'deleteDatasetResponse_httpStatus' - The response's http status code.+newDeleteDatasetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteDatasetResponse+newDeleteDatasetResponse pHttpStatus_ =+  DeleteDatasetResponse'+    { datasetId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for the deleted Dataset.+deleteDatasetResponse_datasetId :: Lens.Lens' DeleteDatasetResponse (Prelude.Maybe Prelude.Text)+deleteDatasetResponse_datasetId = Lens.lens (\DeleteDatasetResponse' {datasetId} -> datasetId) (\s@DeleteDatasetResponse' {} a -> s {datasetId = a} :: DeleteDatasetResponse)++-- | The response's http status code.+deleteDatasetResponse_httpStatus :: Lens.Lens' DeleteDatasetResponse Prelude.Int+deleteDatasetResponse_httpStatus = Lens.lens (\DeleteDatasetResponse' {httpStatus} -> httpStatus) (\s@DeleteDatasetResponse' {} a -> s {httpStatus = a} :: DeleteDatasetResponse)++instance Prelude.NFData DeleteDatasetResponse where+  rnf DeleteDatasetResponse' {..} =+    Prelude.rnf datasetId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/DeletePermissionGroup.hs view
@@ -0,0 +1,177 @@+{-# 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.FinSpaceData.DeletePermissionGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a permission group. This action is irreversible.+module Amazonka.FinSpaceData.DeletePermissionGroup+  ( -- * Creating a Request+    DeletePermissionGroup (..),+    newDeletePermissionGroup,++    -- * Request Lenses+    deletePermissionGroup_clientToken,+    deletePermissionGroup_permissionGroupId,++    -- * Destructuring the Response+    DeletePermissionGroupResponse (..),+    newDeletePermissionGroupResponse,++    -- * Response Lenses+    deletePermissionGroupResponse_permissionGroupId,+    deletePermissionGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeletePermissionGroup' smart constructor.+data DeletePermissionGroup = DeletePermissionGroup'+  { -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the permission group that you want to delete.+    permissionGroupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePermissionGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'deletePermissionGroup_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'permissionGroupId', 'deletePermissionGroup_permissionGroupId' - The unique identifier for the permission group that you want to delete.+newDeletePermissionGroup ::+  -- | 'permissionGroupId'+  Prelude.Text ->+  DeletePermissionGroup+newDeletePermissionGroup pPermissionGroupId_ =+  DeletePermissionGroup'+    { clientToken =+        Prelude.Nothing,+      permissionGroupId = pPermissionGroupId_+    }++-- | A token that ensures idempotency. This token expires in 10 minutes.+deletePermissionGroup_clientToken :: Lens.Lens' DeletePermissionGroup (Prelude.Maybe Prelude.Text)+deletePermissionGroup_clientToken = Lens.lens (\DeletePermissionGroup' {clientToken} -> clientToken) (\s@DeletePermissionGroup' {} a -> s {clientToken = a} :: DeletePermissionGroup)++-- | The unique identifier for the permission group that you want to delete.+deletePermissionGroup_permissionGroupId :: Lens.Lens' DeletePermissionGroup Prelude.Text+deletePermissionGroup_permissionGroupId = Lens.lens (\DeletePermissionGroup' {permissionGroupId} -> permissionGroupId) (\s@DeletePermissionGroup' {} a -> s {permissionGroupId = a} :: DeletePermissionGroup)++instance Core.AWSRequest DeletePermissionGroup where+  type+    AWSResponse DeletePermissionGroup =+      DeletePermissionGroupResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeletePermissionGroupResponse'+            Prelude.<$> (x Data..?> "permissionGroupId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeletePermissionGroup where+  hashWithSalt _salt DeletePermissionGroup' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` permissionGroupId++instance Prelude.NFData DeletePermissionGroup where+  rnf DeletePermissionGroup' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf permissionGroupId++instance Data.ToHeaders DeletePermissionGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeletePermissionGroup where+  toPath DeletePermissionGroup' {..} =+    Prelude.mconcat+      ["/permission-group/", Data.toBS permissionGroupId]++instance Data.ToQuery DeletePermissionGroup where+  toQuery DeletePermissionGroup' {..} =+    Prelude.mconcat ["clientToken" Data.=: clientToken]++-- | /See:/ 'newDeletePermissionGroupResponse' smart constructor.+data DeletePermissionGroupResponse = DeletePermissionGroupResponse'+  { -- | The unique identifier for the deleted permission group.+    permissionGroupId :: 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 'DeletePermissionGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'permissionGroupId', 'deletePermissionGroupResponse_permissionGroupId' - The unique identifier for the deleted permission group.+--+-- 'httpStatus', 'deletePermissionGroupResponse_httpStatus' - The response's http status code.+newDeletePermissionGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeletePermissionGroupResponse+newDeletePermissionGroupResponse pHttpStatus_ =+  DeletePermissionGroupResponse'+    { permissionGroupId =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for the deleted permission group.+deletePermissionGroupResponse_permissionGroupId :: Lens.Lens' DeletePermissionGroupResponse (Prelude.Maybe Prelude.Text)+deletePermissionGroupResponse_permissionGroupId = Lens.lens (\DeletePermissionGroupResponse' {permissionGroupId} -> permissionGroupId) (\s@DeletePermissionGroupResponse' {} a -> s {permissionGroupId = a} :: DeletePermissionGroupResponse)++-- | The response's http status code.+deletePermissionGroupResponse_httpStatus :: Lens.Lens' DeletePermissionGroupResponse Prelude.Int+deletePermissionGroupResponse_httpStatus = Lens.lens (\DeletePermissionGroupResponse' {httpStatus} -> httpStatus) (\s@DeletePermissionGroupResponse' {} a -> s {httpStatus = a} :: DeletePermissionGroupResponse)++instance Prelude.NFData DeletePermissionGroupResponse where+  rnf DeletePermissionGroupResponse' {..} =+    Prelude.rnf permissionGroupId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/DisableUser.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FinSpaceData.DisableUser+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Denies access to the FinSpace web application and API for the specified+-- user.+module Amazonka.FinSpaceData.DisableUser+  ( -- * Creating a Request+    DisableUser (..),+    newDisableUser,++    -- * Request Lenses+    disableUser_clientToken,+    disableUser_userId,++    -- * Destructuring the Response+    DisableUserResponse (..),+    newDisableUserResponse,++    -- * Response Lenses+    disableUserResponse_userId,+    disableUserResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisableUser' smart constructor.+data DisableUser = DisableUser'+  { -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the user account that you want to disable.+    userId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisableUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'disableUser_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'userId', 'disableUser_userId' - The unique identifier for the user account that you want to disable.+newDisableUser ::+  -- | 'userId'+  Prelude.Text ->+  DisableUser+newDisableUser pUserId_ =+  DisableUser'+    { clientToken = Prelude.Nothing,+      userId = pUserId_+    }++-- | A token that ensures idempotency. This token expires in 10 minutes.+disableUser_clientToken :: Lens.Lens' DisableUser (Prelude.Maybe Prelude.Text)+disableUser_clientToken = Lens.lens (\DisableUser' {clientToken} -> clientToken) (\s@DisableUser' {} a -> s {clientToken = a} :: DisableUser)++-- | The unique identifier for the user account that you want to disable.+disableUser_userId :: Lens.Lens' DisableUser Prelude.Text+disableUser_userId = Lens.lens (\DisableUser' {userId} -> userId) (\s@DisableUser' {} a -> s {userId = a} :: DisableUser)++instance Core.AWSRequest DisableUser where+  type AWSResponse DisableUser = DisableUserResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DisableUserResponse'+            Prelude.<$> (x Data..?> "userId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DisableUser where+  hashWithSalt _salt DisableUser' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` userId++instance Prelude.NFData DisableUser where+  rnf DisableUser' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf userId++instance Data.ToHeaders DisableUser where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DisableUser where+  toJSON DisableUser' {..} =+    Data.object+      ( Prelude.catMaybes+          [("clientToken" Data..=) Prelude.<$> clientToken]+      )++instance Data.ToPath DisableUser where+  toPath DisableUser' {..} =+    Prelude.mconcat+      ["/user/", Data.toBS userId, "/disable"]++instance Data.ToQuery DisableUser where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisableUserResponse' smart constructor.+data DisableUserResponse = DisableUserResponse'+  { -- | The unique identifier for the disabled user account.+    userId :: 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 'DisableUserResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'userId', 'disableUserResponse_userId' - The unique identifier for the disabled user account.+--+-- 'httpStatus', 'disableUserResponse_httpStatus' - The response's http status code.+newDisableUserResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DisableUserResponse+newDisableUserResponse pHttpStatus_ =+  DisableUserResponse'+    { userId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for the disabled user account.+disableUserResponse_userId :: Lens.Lens' DisableUserResponse (Prelude.Maybe Prelude.Text)+disableUserResponse_userId = Lens.lens (\DisableUserResponse' {userId} -> userId) (\s@DisableUserResponse' {} a -> s {userId = a} :: DisableUserResponse)++-- | The response's http status code.+disableUserResponse_httpStatus :: Lens.Lens' DisableUserResponse Prelude.Int+disableUserResponse_httpStatus = Lens.lens (\DisableUserResponse' {httpStatus} -> httpStatus) (\s@DisableUserResponse' {} a -> s {httpStatus = a} :: DisableUserResponse)++instance Prelude.NFData DisableUserResponse where+  rnf DisableUserResponse' {..} =+    Prelude.rnf userId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/DisassociateUserFromPermissionGroup.hs view
@@ -0,0 +1,210 @@+{-# 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.FinSpaceData.DisassociateUserFromPermissionGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a user account from a permission group.+module Amazonka.FinSpaceData.DisassociateUserFromPermissionGroup+  ( -- * Creating a Request+    DisassociateUserFromPermissionGroup (..),+    newDisassociateUserFromPermissionGroup,++    -- * Request Lenses+    disassociateUserFromPermissionGroup_clientToken,+    disassociateUserFromPermissionGroup_permissionGroupId,+    disassociateUserFromPermissionGroup_userId,++    -- * Destructuring the Response+    DisassociateUserFromPermissionGroupResponse (..),+    newDisassociateUserFromPermissionGroupResponse,++    -- * Response Lenses+    disassociateUserFromPermissionGroupResponse_statusCode,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociateUserFromPermissionGroup' smart constructor.+data DisassociateUserFromPermissionGroup = DisassociateUserFromPermissionGroup'+  { -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the permission group.+    permissionGroupId :: Prelude.Text,+    -- | The unique identifier for the user.+    userId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateUserFromPermissionGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'disassociateUserFromPermissionGroup_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'permissionGroupId', 'disassociateUserFromPermissionGroup_permissionGroupId' - The unique identifier for the permission group.+--+-- 'userId', 'disassociateUserFromPermissionGroup_userId' - The unique identifier for the user.+newDisassociateUserFromPermissionGroup ::+  -- | 'permissionGroupId'+  Prelude.Text ->+  -- | 'userId'+  Prelude.Text ->+  DisassociateUserFromPermissionGroup+newDisassociateUserFromPermissionGroup+  pPermissionGroupId_+  pUserId_ =+    DisassociateUserFromPermissionGroup'+      { clientToken =+          Prelude.Nothing,+        permissionGroupId =+          pPermissionGroupId_,+        userId = pUserId_+      }++-- | A token that ensures idempotency. This token expires in 10 minutes.+disassociateUserFromPermissionGroup_clientToken :: Lens.Lens' DisassociateUserFromPermissionGroup (Prelude.Maybe Prelude.Text)+disassociateUserFromPermissionGroup_clientToken = Lens.lens (\DisassociateUserFromPermissionGroup' {clientToken} -> clientToken) (\s@DisassociateUserFromPermissionGroup' {} a -> s {clientToken = a} :: DisassociateUserFromPermissionGroup)++-- | The unique identifier for the permission group.+disassociateUserFromPermissionGroup_permissionGroupId :: Lens.Lens' DisassociateUserFromPermissionGroup Prelude.Text+disassociateUserFromPermissionGroup_permissionGroupId = Lens.lens (\DisassociateUserFromPermissionGroup' {permissionGroupId} -> permissionGroupId) (\s@DisassociateUserFromPermissionGroup' {} a -> s {permissionGroupId = a} :: DisassociateUserFromPermissionGroup)++-- | The unique identifier for the user.+disassociateUserFromPermissionGroup_userId :: Lens.Lens' DisassociateUserFromPermissionGroup Prelude.Text+disassociateUserFromPermissionGroup_userId = Lens.lens (\DisassociateUserFromPermissionGroup' {userId} -> userId) (\s@DisassociateUserFromPermissionGroup' {} a -> s {userId = a} :: DisassociateUserFromPermissionGroup)++instance+  Core.AWSRequest+    DisassociateUserFromPermissionGroup+  where+  type+    AWSResponse DisassociateUserFromPermissionGroup =+      DisassociateUserFromPermissionGroupResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DisassociateUserFromPermissionGroupResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DisassociateUserFromPermissionGroup+  where+  hashWithSalt+    _salt+    DisassociateUserFromPermissionGroup' {..} =+      _salt+        `Prelude.hashWithSalt` clientToken+        `Prelude.hashWithSalt` permissionGroupId+        `Prelude.hashWithSalt` userId++instance+  Prelude.NFData+    DisassociateUserFromPermissionGroup+  where+  rnf DisassociateUserFromPermissionGroup' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf permissionGroupId+      `Prelude.seq` Prelude.rnf userId++instance+  Data.ToHeaders+    DisassociateUserFromPermissionGroup+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToPath+    DisassociateUserFromPermissionGroup+  where+  toPath DisassociateUserFromPermissionGroup' {..} =+    Prelude.mconcat+      [ "/permission-group/",+        Data.toBS permissionGroupId,+        "/users/",+        Data.toBS userId+      ]++instance+  Data.ToQuery+    DisassociateUserFromPermissionGroup+  where+  toQuery DisassociateUserFromPermissionGroup' {..} =+    Prelude.mconcat ["clientToken" Data.=: clientToken]++-- | /See:/ 'newDisassociateUserFromPermissionGroupResponse' smart constructor.+data DisassociateUserFromPermissionGroupResponse = DisassociateUserFromPermissionGroupResponse'+  { -- | The returned status code of the response.+    statusCode :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateUserFromPermissionGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'statusCode', 'disassociateUserFromPermissionGroupResponse_statusCode' - The returned status code of the response.+newDisassociateUserFromPermissionGroupResponse ::+  -- | 'statusCode'+  Prelude.Int ->+  DisassociateUserFromPermissionGroupResponse+newDisassociateUserFromPermissionGroupResponse+  pStatusCode_ =+    DisassociateUserFromPermissionGroupResponse'+      { statusCode =+          pStatusCode_+      }++-- | The returned status code of the response.+disassociateUserFromPermissionGroupResponse_statusCode :: Lens.Lens' DisassociateUserFromPermissionGroupResponse Prelude.Int+disassociateUserFromPermissionGroupResponse_statusCode = Lens.lens (\DisassociateUserFromPermissionGroupResponse' {statusCode} -> statusCode) (\s@DisassociateUserFromPermissionGroupResponse' {} a -> s {statusCode = a} :: DisassociateUserFromPermissionGroupResponse)++instance+  Prelude.NFData+    DisassociateUserFromPermissionGroupResponse+  where+  rnf DisassociateUserFromPermissionGroupResponse' {..} =+    Prelude.rnf statusCode
+ gen/Amazonka/FinSpaceData/EnableUser.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FinSpaceData.EnableUser+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Allows the specified user to access the FinSpace web application and+-- API.+module Amazonka.FinSpaceData.EnableUser+  ( -- * Creating a Request+    EnableUser (..),+    newEnableUser,++    -- * Request Lenses+    enableUser_clientToken,+    enableUser_userId,++    -- * Destructuring the Response+    EnableUserResponse (..),+    newEnableUserResponse,++    -- * Response Lenses+    enableUserResponse_userId,+    enableUserResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newEnableUser' smart constructor.+data EnableUser = EnableUser'+  { -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the user account that you want to enable.+    userId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EnableUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'enableUser_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'userId', 'enableUser_userId' - The unique identifier for the user account that you want to enable.+newEnableUser ::+  -- | 'userId'+  Prelude.Text ->+  EnableUser+newEnableUser pUserId_ =+  EnableUser'+    { clientToken = Prelude.Nothing,+      userId = pUserId_+    }++-- | A token that ensures idempotency. This token expires in 10 minutes.+enableUser_clientToken :: Lens.Lens' EnableUser (Prelude.Maybe Prelude.Text)+enableUser_clientToken = Lens.lens (\EnableUser' {clientToken} -> clientToken) (\s@EnableUser' {} a -> s {clientToken = a} :: EnableUser)++-- | The unique identifier for the user account that you want to enable.+enableUser_userId :: Lens.Lens' EnableUser Prelude.Text+enableUser_userId = Lens.lens (\EnableUser' {userId} -> userId) (\s@EnableUser' {} a -> s {userId = a} :: EnableUser)++instance Core.AWSRequest EnableUser where+  type AWSResponse EnableUser = EnableUserResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          EnableUserResponse'+            Prelude.<$> (x Data..?> "userId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable EnableUser where+  hashWithSalt _salt EnableUser' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` userId++instance Prelude.NFData EnableUser where+  rnf EnableUser' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf userId++instance Data.ToHeaders EnableUser where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON EnableUser where+  toJSON EnableUser' {..} =+    Data.object+      ( Prelude.catMaybes+          [("clientToken" Data..=) Prelude.<$> clientToken]+      )++instance Data.ToPath EnableUser where+  toPath EnableUser' {..} =+    Prelude.mconcat+      ["/user/", Data.toBS userId, "/enable"]++instance Data.ToQuery EnableUser where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newEnableUserResponse' smart constructor.+data EnableUserResponse = EnableUserResponse'+  { -- | The unique identifier for the enabled user account.+    userId :: 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 'EnableUserResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'userId', 'enableUserResponse_userId' - The unique identifier for the enabled user account.+--+-- 'httpStatus', 'enableUserResponse_httpStatus' - The response's http status code.+newEnableUserResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  EnableUserResponse+newEnableUserResponse pHttpStatus_ =+  EnableUserResponse'+    { userId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for the enabled user account.+enableUserResponse_userId :: Lens.Lens' EnableUserResponse (Prelude.Maybe Prelude.Text)+enableUserResponse_userId = Lens.lens (\EnableUserResponse' {userId} -> userId) (\s@EnableUserResponse' {} a -> s {userId = a} :: EnableUserResponse)++-- | The response's http status code.+enableUserResponse_httpStatus :: Lens.Lens' EnableUserResponse Prelude.Int+enableUserResponse_httpStatus = Lens.lens (\EnableUserResponse' {httpStatus} -> httpStatus) (\s@EnableUserResponse' {} a -> s {httpStatus = a} :: EnableUserResponse)++instance Prelude.NFData EnableUserResponse where+  rnf EnableUserResponse' {..} =+    Prelude.rnf userId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/GetChangeset.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.FinSpaceData.GetChangeset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get information about a Changeset.+module Amazonka.FinSpaceData.GetChangeset+  ( -- * Creating a Request+    GetChangeset (..),+    newGetChangeset,++    -- * Request Lenses+    getChangeset_datasetId,+    getChangeset_changesetId,++    -- * Destructuring the Response+    GetChangesetResponse (..),+    newGetChangesetResponse,++    -- * Response Lenses+    getChangesetResponse_activeFromTimestamp,+    getChangesetResponse_activeUntilTimestamp,+    getChangesetResponse_changeType,+    getChangesetResponse_changesetArn,+    getChangesetResponse_changesetId,+    getChangesetResponse_createTime,+    getChangesetResponse_datasetId,+    getChangesetResponse_errorInfo,+    getChangesetResponse_formatParams,+    getChangesetResponse_sourceParams,+    getChangesetResponse_status,+    getChangesetResponse_updatedByChangesetId,+    getChangesetResponse_updatesChangesetId,+    getChangesetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Request to describe a changeset.+--+-- /See:/ 'newGetChangeset' smart constructor.+data GetChangeset = GetChangeset'+  { -- | The unique identifier for the FinSpace Dataset where the Changeset is+    -- created.+    datasetId :: Prelude.Text,+    -- | The unique identifier of the Changeset for which to get data.+    changesetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetChangeset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getChangeset_datasetId' - The unique identifier for the FinSpace Dataset where the Changeset is+-- created.+--+-- 'changesetId', 'getChangeset_changesetId' - The unique identifier of the Changeset for which to get data.+newGetChangeset ::+  -- | 'datasetId'+  Prelude.Text ->+  -- | 'changesetId'+  Prelude.Text ->+  GetChangeset+newGetChangeset pDatasetId_ pChangesetId_ =+  GetChangeset'+    { datasetId = pDatasetId_,+      changesetId = pChangesetId_+    }++-- | The unique identifier for the FinSpace Dataset where the Changeset is+-- created.+getChangeset_datasetId :: Lens.Lens' GetChangeset Prelude.Text+getChangeset_datasetId = Lens.lens (\GetChangeset' {datasetId} -> datasetId) (\s@GetChangeset' {} a -> s {datasetId = a} :: GetChangeset)++-- | The unique identifier of the Changeset for which to get data.+getChangeset_changesetId :: Lens.Lens' GetChangeset Prelude.Text+getChangeset_changesetId = Lens.lens (\GetChangeset' {changesetId} -> changesetId) (\s@GetChangeset' {} a -> s {changesetId = a} :: GetChangeset)++instance Core.AWSRequest GetChangeset where+  type AWSResponse GetChangeset = GetChangesetResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetChangesetResponse'+            Prelude.<$> (x Data..?> "activeFromTimestamp")+            Prelude.<*> (x Data..?> "activeUntilTimestamp")+            Prelude.<*> (x Data..?> "changeType")+            Prelude.<*> (x Data..?> "changesetArn")+            Prelude.<*> (x Data..?> "changesetId")+            Prelude.<*> (x Data..?> "createTime")+            Prelude.<*> (x Data..?> "datasetId")+            Prelude.<*> (x Data..?> "errorInfo")+            Prelude.<*> (x Data..?> "formatParams" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "sourceParams" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "updatedByChangesetId")+            Prelude.<*> (x Data..?> "updatesChangesetId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetChangeset where+  hashWithSalt _salt GetChangeset' {..} =+    _salt+      `Prelude.hashWithSalt` datasetId+      `Prelude.hashWithSalt` changesetId++instance Prelude.NFData GetChangeset where+  rnf GetChangeset' {..} =+    Prelude.rnf datasetId+      `Prelude.seq` Prelude.rnf changesetId++instance Data.ToHeaders GetChangeset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetChangeset where+  toPath GetChangeset' {..} =+    Prelude.mconcat+      [ "/datasets/",+        Data.toBS datasetId,+        "/changesetsv2/",+        Data.toBS changesetId+      ]++instance Data.ToQuery GetChangeset where+  toQuery = Prelude.const Prelude.mempty++-- | The response from a describe changeset operation+--+-- /See:/ 'newGetChangesetResponse' smart constructor.+data GetChangesetResponse = GetChangesetResponse'+  { -- | Beginning time from which the Changeset is active. The value is+    -- determined as epoch time in milliseconds. For example, the value for+    -- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+    activeFromTimestamp :: Prelude.Maybe Prelude.Integer,+    -- | Time until which the Changeset is active. The value is determined as+    -- epoch time in milliseconds. For example, the value for Monday, November+    -- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+    activeUntilTimestamp :: Prelude.Maybe Prelude.Integer,+    -- | Type that indicates how a Changeset is applied to a Dataset.+    --+    -- -   @REPLACE@ – Changeset is considered as a replacement to all prior+    --     loaded Changesets.+    --+    -- -   @APPEND@ – Changeset is considered as an addition to the end of all+    --     prior loaded Changesets.+    --+    -- -   @MODIFY@ – Changeset is considered as a replacement to a specific+    --     prior ingested Changeset.+    changeType :: Prelude.Maybe ChangeType,+    -- | The ARN identifier of the Changeset.+    changesetArn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for a Changeset.+    changesetId :: Prelude.Maybe Prelude.Text,+    -- | The timestamp at which the Changeset was created in FinSpace. The value+    -- is determined as epoch time in milliseconds. For example, the value for+    -- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+    createTime :: Prelude.Maybe Prelude.Integer,+    -- | The unique identifier for the FinSpace Dataset where the Changeset is+    -- created.+    datasetId :: Prelude.Maybe Prelude.Text,+    -- | The structure with error messages.+    errorInfo :: Prelude.Maybe ChangesetErrorInfo,+    -- | Structure of the source file(s).+    formatParams :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Options that define the location of the data being ingested.+    sourceParams :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The status of Changeset creation operation.+    status :: Prelude.Maybe IngestionStatus,+    -- | The unique identifier of the updated Changeset.+    updatedByChangesetId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the Changeset that is being updated.+    updatesChangesetId :: 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 'GetChangesetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'activeFromTimestamp', 'getChangesetResponse_activeFromTimestamp' - Beginning time from which the Changeset is active. The value is+-- determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'activeUntilTimestamp', 'getChangesetResponse_activeUntilTimestamp' - Time until which the Changeset is active. The value is determined as+-- epoch time in milliseconds. For example, the value for Monday, November+-- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'changeType', 'getChangesetResponse_changeType' - Type that indicates how a Changeset is applied to a Dataset.+--+-- -   @REPLACE@ – Changeset is considered as a replacement to all prior+--     loaded Changesets.+--+-- -   @APPEND@ – Changeset is considered as an addition to the end of all+--     prior loaded Changesets.+--+-- -   @MODIFY@ – Changeset is considered as a replacement to a specific+--     prior ingested Changeset.+--+-- 'changesetArn', 'getChangesetResponse_changesetArn' - The ARN identifier of the Changeset.+--+-- 'changesetId', 'getChangesetResponse_changesetId' - The unique identifier for a Changeset.+--+-- 'createTime', 'getChangesetResponse_createTime' - The timestamp at which the Changeset was created in FinSpace. The value+-- is determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'datasetId', 'getChangesetResponse_datasetId' - The unique identifier for the FinSpace Dataset where the Changeset is+-- created.+--+-- 'errorInfo', 'getChangesetResponse_errorInfo' - The structure with error messages.+--+-- 'formatParams', 'getChangesetResponse_formatParams' - Structure of the source file(s).+--+-- 'sourceParams', 'getChangesetResponse_sourceParams' - Options that define the location of the data being ingested.+--+-- 'status', 'getChangesetResponse_status' - The status of Changeset creation operation.+--+-- 'updatedByChangesetId', 'getChangesetResponse_updatedByChangesetId' - The unique identifier of the updated Changeset.+--+-- 'updatesChangesetId', 'getChangesetResponse_updatesChangesetId' - The unique identifier of the Changeset that is being updated.+--+-- 'httpStatus', 'getChangesetResponse_httpStatus' - The response's http status code.+newGetChangesetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetChangesetResponse+newGetChangesetResponse pHttpStatus_ =+  GetChangesetResponse'+    { activeFromTimestamp =+        Prelude.Nothing,+      activeUntilTimestamp = Prelude.Nothing,+      changeType = Prelude.Nothing,+      changesetArn = Prelude.Nothing,+      changesetId = Prelude.Nothing,+      createTime = Prelude.Nothing,+      datasetId = Prelude.Nothing,+      errorInfo = Prelude.Nothing,+      formatParams = Prelude.Nothing,+      sourceParams = Prelude.Nothing,+      status = Prelude.Nothing,+      updatedByChangesetId = Prelude.Nothing,+      updatesChangesetId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Beginning time from which the Changeset is active. The value is+-- determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+getChangesetResponse_activeFromTimestamp :: Lens.Lens' GetChangesetResponse (Prelude.Maybe Prelude.Integer)+getChangesetResponse_activeFromTimestamp = Lens.lens (\GetChangesetResponse' {activeFromTimestamp} -> activeFromTimestamp) (\s@GetChangesetResponse' {} a -> s {activeFromTimestamp = a} :: GetChangesetResponse)++-- | Time until which the Changeset is active. The value is determined as+-- epoch time in milliseconds. For example, the value for Monday, November+-- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+getChangesetResponse_activeUntilTimestamp :: Lens.Lens' GetChangesetResponse (Prelude.Maybe Prelude.Integer)+getChangesetResponse_activeUntilTimestamp = Lens.lens (\GetChangesetResponse' {activeUntilTimestamp} -> activeUntilTimestamp) (\s@GetChangesetResponse' {} a -> s {activeUntilTimestamp = a} :: GetChangesetResponse)++-- | Type that indicates how a Changeset is applied to a Dataset.+--+-- -   @REPLACE@ – Changeset is considered as a replacement to all prior+--     loaded Changesets.+--+-- -   @APPEND@ – Changeset is considered as an addition to the end of all+--     prior loaded Changesets.+--+-- -   @MODIFY@ – Changeset is considered as a replacement to a specific+--     prior ingested Changeset.+getChangesetResponse_changeType :: Lens.Lens' GetChangesetResponse (Prelude.Maybe ChangeType)+getChangesetResponse_changeType = Lens.lens (\GetChangesetResponse' {changeType} -> changeType) (\s@GetChangesetResponse' {} a -> s {changeType = a} :: GetChangesetResponse)++-- | The ARN identifier of the Changeset.+getChangesetResponse_changesetArn :: Lens.Lens' GetChangesetResponse (Prelude.Maybe Prelude.Text)+getChangesetResponse_changesetArn = Lens.lens (\GetChangesetResponse' {changesetArn} -> changesetArn) (\s@GetChangesetResponse' {} a -> s {changesetArn = a} :: GetChangesetResponse)++-- | The unique identifier for a Changeset.+getChangesetResponse_changesetId :: Lens.Lens' GetChangesetResponse (Prelude.Maybe Prelude.Text)+getChangesetResponse_changesetId = Lens.lens (\GetChangesetResponse' {changesetId} -> changesetId) (\s@GetChangesetResponse' {} a -> s {changesetId = a} :: GetChangesetResponse)++-- | The timestamp at which the Changeset was created in FinSpace. The value+-- is determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+getChangesetResponse_createTime :: Lens.Lens' GetChangesetResponse (Prelude.Maybe Prelude.Integer)+getChangesetResponse_createTime = Lens.lens (\GetChangesetResponse' {createTime} -> createTime) (\s@GetChangesetResponse' {} a -> s {createTime = a} :: GetChangesetResponse)++-- | The unique identifier for the FinSpace Dataset where the Changeset is+-- created.+getChangesetResponse_datasetId :: Lens.Lens' GetChangesetResponse (Prelude.Maybe Prelude.Text)+getChangesetResponse_datasetId = Lens.lens (\GetChangesetResponse' {datasetId} -> datasetId) (\s@GetChangesetResponse' {} a -> s {datasetId = a} :: GetChangesetResponse)++-- | The structure with error messages.+getChangesetResponse_errorInfo :: Lens.Lens' GetChangesetResponse (Prelude.Maybe ChangesetErrorInfo)+getChangesetResponse_errorInfo = Lens.lens (\GetChangesetResponse' {errorInfo} -> errorInfo) (\s@GetChangesetResponse' {} a -> s {errorInfo = a} :: GetChangesetResponse)++-- | Structure of the source file(s).+getChangesetResponse_formatParams :: Lens.Lens' GetChangesetResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getChangesetResponse_formatParams = Lens.lens (\GetChangesetResponse' {formatParams} -> formatParams) (\s@GetChangesetResponse' {} a -> s {formatParams = a} :: GetChangesetResponse) Prelude.. Lens.mapping Lens.coerced++-- | Options that define the location of the data being ingested.+getChangesetResponse_sourceParams :: Lens.Lens' GetChangesetResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getChangesetResponse_sourceParams = Lens.lens (\GetChangesetResponse' {sourceParams} -> sourceParams) (\s@GetChangesetResponse' {} a -> s {sourceParams = a} :: GetChangesetResponse) Prelude.. Lens.mapping Lens.coerced++-- | The status of Changeset creation operation.+getChangesetResponse_status :: Lens.Lens' GetChangesetResponse (Prelude.Maybe IngestionStatus)+getChangesetResponse_status = Lens.lens (\GetChangesetResponse' {status} -> status) (\s@GetChangesetResponse' {} a -> s {status = a} :: GetChangesetResponse)++-- | The unique identifier of the updated Changeset.+getChangesetResponse_updatedByChangesetId :: Lens.Lens' GetChangesetResponse (Prelude.Maybe Prelude.Text)+getChangesetResponse_updatedByChangesetId = Lens.lens (\GetChangesetResponse' {updatedByChangesetId} -> updatedByChangesetId) (\s@GetChangesetResponse' {} a -> s {updatedByChangesetId = a} :: GetChangesetResponse)++-- | The unique identifier of the Changeset that is being updated.+getChangesetResponse_updatesChangesetId :: Lens.Lens' GetChangesetResponse (Prelude.Maybe Prelude.Text)+getChangesetResponse_updatesChangesetId = Lens.lens (\GetChangesetResponse' {updatesChangesetId} -> updatesChangesetId) (\s@GetChangesetResponse' {} a -> s {updatesChangesetId = a} :: GetChangesetResponse)++-- | The response's http status code.+getChangesetResponse_httpStatus :: Lens.Lens' GetChangesetResponse Prelude.Int+getChangesetResponse_httpStatus = Lens.lens (\GetChangesetResponse' {httpStatus} -> httpStatus) (\s@GetChangesetResponse' {} a -> s {httpStatus = a} :: GetChangesetResponse)++instance Prelude.NFData GetChangesetResponse where+  rnf GetChangesetResponse' {..} =+    Prelude.rnf activeFromTimestamp+      `Prelude.seq` Prelude.rnf activeUntilTimestamp+      `Prelude.seq` Prelude.rnf changeType+      `Prelude.seq` Prelude.rnf changesetArn+      `Prelude.seq` Prelude.rnf changesetId+      `Prelude.seq` Prelude.rnf createTime+      `Prelude.seq` Prelude.rnf datasetId+      `Prelude.seq` Prelude.rnf errorInfo+      `Prelude.seq` Prelude.rnf formatParams+      `Prelude.seq` Prelude.rnf sourceParams+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf updatedByChangesetId+      `Prelude.seq` Prelude.rnf updatesChangesetId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/GetDataView.hs view
@@ -0,0 +1,389 @@+{-# 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.FinSpaceData.GetDataView+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets information about a Dataview.+module Amazonka.FinSpaceData.GetDataView+  ( -- * Creating a Request+    GetDataView (..),+    newGetDataView,++    -- * Request Lenses+    getDataView_dataViewId,+    getDataView_datasetId,++    -- * Destructuring the Response+    GetDataViewResponse (..),+    newGetDataViewResponse,++    -- * Response Lenses+    getDataViewResponse_asOfTimestamp,+    getDataViewResponse_autoUpdate,+    getDataViewResponse_createTime,+    getDataViewResponse_dataViewArn,+    getDataViewResponse_dataViewId,+    getDataViewResponse_datasetId,+    getDataViewResponse_destinationTypeParams,+    getDataViewResponse_errorInfo,+    getDataViewResponse_lastModifiedTime,+    getDataViewResponse_partitionColumns,+    getDataViewResponse_sortColumns,+    getDataViewResponse_status,+    getDataViewResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Request for retrieving a data view detail. Grouped \/ accessible within+-- a dataset by its dataset id.+--+-- /See:/ 'newGetDataView' smart constructor.+data GetDataView = GetDataView'+  { -- | The unique identifier for the Dataview.+    dataViewId :: Prelude.Text,+    -- | The unique identifier for the Dataset used in the Dataview.+    datasetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDataView' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataViewId', 'getDataView_dataViewId' - The unique identifier for the Dataview.+--+-- 'datasetId', 'getDataView_datasetId' - The unique identifier for the Dataset used in the Dataview.+newGetDataView ::+  -- | 'dataViewId'+  Prelude.Text ->+  -- | 'datasetId'+  Prelude.Text ->+  GetDataView+newGetDataView pDataViewId_ pDatasetId_ =+  GetDataView'+    { dataViewId = pDataViewId_,+      datasetId = pDatasetId_+    }++-- | The unique identifier for the Dataview.+getDataView_dataViewId :: Lens.Lens' GetDataView Prelude.Text+getDataView_dataViewId = Lens.lens (\GetDataView' {dataViewId} -> dataViewId) (\s@GetDataView' {} a -> s {dataViewId = a} :: GetDataView)++-- | The unique identifier for the Dataset used in the Dataview.+getDataView_datasetId :: Lens.Lens' GetDataView Prelude.Text+getDataView_datasetId = Lens.lens (\GetDataView' {datasetId} -> datasetId) (\s@GetDataView' {} a -> s {datasetId = a} :: GetDataView)++instance Core.AWSRequest GetDataView where+  type AWSResponse GetDataView = GetDataViewResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDataViewResponse'+            Prelude.<$> (x Data..?> "asOfTimestamp")+            Prelude.<*> (x Data..?> "autoUpdate")+            Prelude.<*> (x Data..?> "createTime")+            Prelude.<*> (x Data..?> "dataViewArn")+            Prelude.<*> (x Data..?> "dataViewId")+            Prelude.<*> (x Data..?> "datasetId")+            Prelude.<*> (x Data..?> "destinationTypeParams")+            Prelude.<*> (x Data..?> "errorInfo")+            Prelude.<*> (x Data..?> "lastModifiedTime")+            Prelude.<*> ( x+                            Data..?> "partitionColumns"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "sortColumns" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetDataView where+  hashWithSalt _salt GetDataView' {..} =+    _salt+      `Prelude.hashWithSalt` dataViewId+      `Prelude.hashWithSalt` datasetId++instance Prelude.NFData GetDataView where+  rnf GetDataView' {..} =+    Prelude.rnf dataViewId+      `Prelude.seq` Prelude.rnf datasetId++instance Data.ToHeaders GetDataView where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetDataView where+  toPath GetDataView' {..} =+    Prelude.mconcat+      [ "/datasets/",+        Data.toBS datasetId,+        "/dataviewsv2/",+        Data.toBS dataViewId+      ]++instance Data.ToQuery GetDataView where+  toQuery = Prelude.const Prelude.mempty++-- | Response from retrieving a dataview, which includes details on the+-- target database and table name+--+-- /See:/ 'newGetDataViewResponse' smart constructor.+data GetDataViewResponse = GetDataViewResponse'+  { -- | Time range to use for the Dataview. The value is determined as epoch+    -- time in milliseconds. For example, the value for Monday, November 1,+    -- 2021 12:00:00 PM UTC is specified as 1635768000000.+    asOfTimestamp :: Prelude.Maybe Prelude.Integer,+    -- | Flag to indicate Dataview should be updated automatically.+    autoUpdate :: Prelude.Maybe Prelude.Bool,+    -- | The timestamp at which the Dataview was created in FinSpace. The value+    -- is determined as epoch time in milliseconds. For example, the value for+    -- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+    createTime :: Prelude.Maybe Prelude.Integer,+    -- | The ARN identifier of the Dataview.+    dataViewArn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the Dataview.+    dataViewId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the Dataset used in the Dataview.+    datasetId :: Prelude.Maybe Prelude.Text,+    -- | Options that define the destination type for the Dataview.+    destinationTypeParams :: Prelude.Maybe DataViewDestinationTypeParams,+    -- | Information about an error that occurred for the Dataview.+    errorInfo :: Prelude.Maybe DataViewErrorInfo,+    -- | The last time that a Dataview was modified. The value is determined as+    -- epoch time in milliseconds. For example, the value for Monday, November+    -- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | Ordered set of column names used to partition data.+    partitionColumns :: Prelude.Maybe [Prelude.Text],+    -- | Columns to be used for sorting the data.+    sortColumns :: Prelude.Maybe [Prelude.Text],+    -- | The status of a Dataview creation.+    --+    -- -   @RUNNING@ – Dataview creation is running.+    --+    -- -   @STARTING@ – Dataview creation is starting.+    --+    -- -   @FAILED@ – Dataview creation has failed.+    --+    -- -   @CANCELLED@ – Dataview creation has been cancelled.+    --+    -- -   @TIMEOUT@ – Dataview creation has timed out.+    --+    -- -   @SUCCESS@ – Dataview creation has succeeded.+    --+    -- -   @PENDING@ – Dataview creation is pending.+    --+    -- -   @FAILED_CLEANUP_FAILED@ – Dataview creation failed and resource+    --     cleanup failed.+    status :: Prelude.Maybe DataViewStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDataViewResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'asOfTimestamp', 'getDataViewResponse_asOfTimestamp' - Time range to use for the Dataview. The value is determined as epoch+-- time in milliseconds. For example, the value for Monday, November 1,+-- 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'autoUpdate', 'getDataViewResponse_autoUpdate' - Flag to indicate Dataview should be updated automatically.+--+-- 'createTime', 'getDataViewResponse_createTime' - The timestamp at which the Dataview was created in FinSpace. The value+-- is determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'dataViewArn', 'getDataViewResponse_dataViewArn' - The ARN identifier of the Dataview.+--+-- 'dataViewId', 'getDataViewResponse_dataViewId' - The unique identifier for the Dataview.+--+-- 'datasetId', 'getDataViewResponse_datasetId' - The unique identifier for the Dataset used in the Dataview.+--+-- 'destinationTypeParams', 'getDataViewResponse_destinationTypeParams' - Options that define the destination type for the Dataview.+--+-- 'errorInfo', 'getDataViewResponse_errorInfo' - Information about an error that occurred for the Dataview.+--+-- 'lastModifiedTime', 'getDataViewResponse_lastModifiedTime' - The last time that a Dataview was modified. The value is determined as+-- epoch time in milliseconds. For example, the value for Monday, November+-- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'partitionColumns', 'getDataViewResponse_partitionColumns' - Ordered set of column names used to partition data.+--+-- 'sortColumns', 'getDataViewResponse_sortColumns' - Columns to be used for sorting the data.+--+-- 'status', 'getDataViewResponse_status' - The status of a Dataview creation.+--+-- -   @RUNNING@ – Dataview creation is running.+--+-- -   @STARTING@ – Dataview creation is starting.+--+-- -   @FAILED@ – Dataview creation has failed.+--+-- -   @CANCELLED@ – Dataview creation has been cancelled.+--+-- -   @TIMEOUT@ – Dataview creation has timed out.+--+-- -   @SUCCESS@ – Dataview creation has succeeded.+--+-- -   @PENDING@ – Dataview creation is pending.+--+-- -   @FAILED_CLEANUP_FAILED@ – Dataview creation failed and resource+--     cleanup failed.+--+-- 'httpStatus', 'getDataViewResponse_httpStatus' - The response's http status code.+newGetDataViewResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDataViewResponse+newGetDataViewResponse pHttpStatus_ =+  GetDataViewResponse'+    { asOfTimestamp =+        Prelude.Nothing,+      autoUpdate = Prelude.Nothing,+      createTime = Prelude.Nothing,+      dataViewArn = Prelude.Nothing,+      dataViewId = Prelude.Nothing,+      datasetId = Prelude.Nothing,+      destinationTypeParams = Prelude.Nothing,+      errorInfo = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      partitionColumns = Prelude.Nothing,+      sortColumns = Prelude.Nothing,+      status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Time range to use for the Dataview. The value is determined as epoch+-- time in milliseconds. For example, the value for Monday, November 1,+-- 2021 12:00:00 PM UTC is specified as 1635768000000.+getDataViewResponse_asOfTimestamp :: Lens.Lens' GetDataViewResponse (Prelude.Maybe Prelude.Integer)+getDataViewResponse_asOfTimestamp = Lens.lens (\GetDataViewResponse' {asOfTimestamp} -> asOfTimestamp) (\s@GetDataViewResponse' {} a -> s {asOfTimestamp = a} :: GetDataViewResponse)++-- | Flag to indicate Dataview should be updated automatically.+getDataViewResponse_autoUpdate :: Lens.Lens' GetDataViewResponse (Prelude.Maybe Prelude.Bool)+getDataViewResponse_autoUpdate = Lens.lens (\GetDataViewResponse' {autoUpdate} -> autoUpdate) (\s@GetDataViewResponse' {} a -> s {autoUpdate = a} :: GetDataViewResponse)++-- | The timestamp at which the Dataview was created in FinSpace. The value+-- is determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+getDataViewResponse_createTime :: Lens.Lens' GetDataViewResponse (Prelude.Maybe Prelude.Integer)+getDataViewResponse_createTime = Lens.lens (\GetDataViewResponse' {createTime} -> createTime) (\s@GetDataViewResponse' {} a -> s {createTime = a} :: GetDataViewResponse)++-- | The ARN identifier of the Dataview.+getDataViewResponse_dataViewArn :: Lens.Lens' GetDataViewResponse (Prelude.Maybe Prelude.Text)+getDataViewResponse_dataViewArn = Lens.lens (\GetDataViewResponse' {dataViewArn} -> dataViewArn) (\s@GetDataViewResponse' {} a -> s {dataViewArn = a} :: GetDataViewResponse)++-- | The unique identifier for the Dataview.+getDataViewResponse_dataViewId :: Lens.Lens' GetDataViewResponse (Prelude.Maybe Prelude.Text)+getDataViewResponse_dataViewId = Lens.lens (\GetDataViewResponse' {dataViewId} -> dataViewId) (\s@GetDataViewResponse' {} a -> s {dataViewId = a} :: GetDataViewResponse)++-- | The unique identifier for the Dataset used in the Dataview.+getDataViewResponse_datasetId :: Lens.Lens' GetDataViewResponse (Prelude.Maybe Prelude.Text)+getDataViewResponse_datasetId = Lens.lens (\GetDataViewResponse' {datasetId} -> datasetId) (\s@GetDataViewResponse' {} a -> s {datasetId = a} :: GetDataViewResponse)++-- | Options that define the destination type for the Dataview.+getDataViewResponse_destinationTypeParams :: Lens.Lens' GetDataViewResponse (Prelude.Maybe DataViewDestinationTypeParams)+getDataViewResponse_destinationTypeParams = Lens.lens (\GetDataViewResponse' {destinationTypeParams} -> destinationTypeParams) (\s@GetDataViewResponse' {} a -> s {destinationTypeParams = a} :: GetDataViewResponse)++-- | Information about an error that occurred for the Dataview.+getDataViewResponse_errorInfo :: Lens.Lens' GetDataViewResponse (Prelude.Maybe DataViewErrorInfo)+getDataViewResponse_errorInfo = Lens.lens (\GetDataViewResponse' {errorInfo} -> errorInfo) (\s@GetDataViewResponse' {} a -> s {errorInfo = a} :: GetDataViewResponse)++-- | The last time that a Dataview was modified. The value is determined as+-- epoch time in milliseconds. For example, the value for Monday, November+-- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+getDataViewResponse_lastModifiedTime :: Lens.Lens' GetDataViewResponse (Prelude.Maybe Prelude.Integer)+getDataViewResponse_lastModifiedTime = Lens.lens (\GetDataViewResponse' {lastModifiedTime} -> lastModifiedTime) (\s@GetDataViewResponse' {} a -> s {lastModifiedTime = a} :: GetDataViewResponse)++-- | Ordered set of column names used to partition data.+getDataViewResponse_partitionColumns :: Lens.Lens' GetDataViewResponse (Prelude.Maybe [Prelude.Text])+getDataViewResponse_partitionColumns = Lens.lens (\GetDataViewResponse' {partitionColumns} -> partitionColumns) (\s@GetDataViewResponse' {} a -> s {partitionColumns = a} :: GetDataViewResponse) Prelude.. Lens.mapping Lens.coerced++-- | Columns to be used for sorting the data.+getDataViewResponse_sortColumns :: Lens.Lens' GetDataViewResponse (Prelude.Maybe [Prelude.Text])+getDataViewResponse_sortColumns = Lens.lens (\GetDataViewResponse' {sortColumns} -> sortColumns) (\s@GetDataViewResponse' {} a -> s {sortColumns = a} :: GetDataViewResponse) Prelude.. Lens.mapping Lens.coerced++-- | The status of a Dataview creation.+--+-- -   @RUNNING@ – Dataview creation is running.+--+-- -   @STARTING@ – Dataview creation is starting.+--+-- -   @FAILED@ – Dataview creation has failed.+--+-- -   @CANCELLED@ – Dataview creation has been cancelled.+--+-- -   @TIMEOUT@ – Dataview creation has timed out.+--+-- -   @SUCCESS@ – Dataview creation has succeeded.+--+-- -   @PENDING@ – Dataview creation is pending.+--+-- -   @FAILED_CLEANUP_FAILED@ – Dataview creation failed and resource+--     cleanup failed.+getDataViewResponse_status :: Lens.Lens' GetDataViewResponse (Prelude.Maybe DataViewStatus)+getDataViewResponse_status = Lens.lens (\GetDataViewResponse' {status} -> status) (\s@GetDataViewResponse' {} a -> s {status = a} :: GetDataViewResponse)++-- | The response's http status code.+getDataViewResponse_httpStatus :: Lens.Lens' GetDataViewResponse Prelude.Int+getDataViewResponse_httpStatus = Lens.lens (\GetDataViewResponse' {httpStatus} -> httpStatus) (\s@GetDataViewResponse' {} a -> s {httpStatus = a} :: GetDataViewResponse)++instance Prelude.NFData GetDataViewResponse where+  rnf GetDataViewResponse' {..} =+    Prelude.rnf asOfTimestamp+      `Prelude.seq` Prelude.rnf autoUpdate+      `Prelude.seq` Prelude.rnf createTime+      `Prelude.seq` Prelude.rnf dataViewArn+      `Prelude.seq` Prelude.rnf dataViewId+      `Prelude.seq` Prelude.rnf datasetId+      `Prelude.seq` Prelude.rnf destinationTypeParams+      `Prelude.seq` Prelude.rnf errorInfo+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf partitionColumns+      `Prelude.seq` Prelude.rnf sortColumns+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/GetDataset.hs view
@@ -0,0 +1,316 @@+{-# 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.FinSpaceData.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)+--+-- Returns information about a Dataset.+module Amazonka.FinSpaceData.GetDataset+  ( -- * Creating a Request+    GetDataset (..),+    newGetDataset,++    -- * Request Lenses+    getDataset_datasetId,++    -- * Destructuring the Response+    GetDatasetResponse (..),+    newGetDatasetResponse,++    -- * Response Lenses+    getDatasetResponse_alias,+    getDatasetResponse_createTime,+    getDatasetResponse_datasetArn,+    getDatasetResponse_datasetDescription,+    getDatasetResponse_datasetId,+    getDatasetResponse_datasetTitle,+    getDatasetResponse_kind,+    getDatasetResponse_lastModifiedTime,+    getDatasetResponse_schemaDefinition,+    getDatasetResponse_status,+    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.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Request for the GetDataset operation.+--+-- /See:/ 'newGetDataset' smart constructor.+data GetDataset = GetDataset'+  { -- | The unique identifier for a Dataset.+    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 Dataset.+newGetDataset ::+  -- | 'datasetId'+  Prelude.Text ->+  GetDataset+newGetDataset pDatasetId_ =+  GetDataset' {datasetId = pDatasetId_}++-- | The unique identifier for a Dataset.+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..?> "alias")+            Prelude.<*> (x Data..?> "createTime")+            Prelude.<*> (x Data..?> "datasetArn")+            Prelude.<*> (x Data..?> "datasetDescription")+            Prelude.<*> (x Data..?> "datasetId")+            Prelude.<*> (x Data..?> "datasetTitle")+            Prelude.<*> (x Data..?> "kind")+            Prelude.<*> (x Data..?> "lastModifiedTime")+            Prelude.<*> (x Data..?> "schemaDefinition")+            Prelude.<*> (x Data..?> "status")+            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+      ["/datasetsv2/", Data.toBS datasetId]++instance Data.ToQuery GetDataset where+  toQuery = Prelude.const Prelude.mempty++-- | Response for the GetDataset operation+--+-- /See:/ 'newGetDatasetResponse' smart constructor.+data GetDatasetResponse = GetDatasetResponse'+  { -- | The unique resource identifier for a Dataset.+    alias :: Prelude.Maybe Prelude.Text,+    -- | The timestamp at which the Dataset was created in FinSpace. The value is+    -- determined as epoch time in milliseconds. For example, the value for+    -- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+    createTime :: Prelude.Maybe Prelude.Integer,+    -- | The ARN identifier of the Dataset.+    datasetArn :: Prelude.Maybe Prelude.Text,+    -- | A description of the Dataset.+    datasetDescription :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for a Dataset.+    datasetId :: Prelude.Maybe Prelude.Text,+    -- | Display title for a Dataset.+    datasetTitle :: Prelude.Maybe Prelude.Text,+    -- | The format in which Dataset data is structured.+    --+    -- -   @TABULAR@ – Data is structured in a tabular format.+    --+    -- -   @NON_TABULAR@ – Data is structured in a non-tabular format.+    kind :: Prelude.Maybe DatasetKind,+    -- | The last time that the Dataset was modified. The value is determined as+    -- epoch time in milliseconds. For example, the value for Monday, November+    -- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | Definition for a schema on a tabular Dataset.+    schemaDefinition :: Prelude.Maybe SchemaUnion,+    -- | Status of the Dataset creation.+    --+    -- -   @PENDING@ – Dataset is pending creation.+    --+    -- -   @FAILED@ – Dataset creation has failed.+    --+    -- -   @SUCCESS@ – Dataset creation has succeeded.+    --+    -- -   @RUNNING@ – Dataset creation is running.+    status :: Prelude.Maybe DatasetStatus,+    -- | 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:+--+-- 'alias', 'getDatasetResponse_alias' - The unique resource identifier for a Dataset.+--+-- 'createTime', 'getDatasetResponse_createTime' - The timestamp at which the Dataset was created in FinSpace. The value is+-- determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'datasetArn', 'getDatasetResponse_datasetArn' - The ARN identifier of the Dataset.+--+-- 'datasetDescription', 'getDatasetResponse_datasetDescription' - A description of the Dataset.+--+-- 'datasetId', 'getDatasetResponse_datasetId' - The unique identifier for a Dataset.+--+-- 'datasetTitle', 'getDatasetResponse_datasetTitle' - Display title for a Dataset.+--+-- 'kind', 'getDatasetResponse_kind' - The format in which Dataset data is structured.+--+-- -   @TABULAR@ – Data is structured in a tabular format.+--+-- -   @NON_TABULAR@ – Data is structured in a non-tabular format.+--+-- 'lastModifiedTime', 'getDatasetResponse_lastModifiedTime' - The last time that the Dataset was modified. The value is determined as+-- epoch time in milliseconds. For example, the value for Monday, November+-- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'schemaDefinition', 'getDatasetResponse_schemaDefinition' - Definition for a schema on a tabular Dataset.+--+-- 'status', 'getDatasetResponse_status' - Status of the Dataset creation.+--+-- -   @PENDING@ – Dataset is pending creation.+--+-- -   @FAILED@ – Dataset creation has failed.+--+-- -   @SUCCESS@ – Dataset creation has succeeded.+--+-- -   @RUNNING@ – Dataset creation is running.+--+-- 'httpStatus', 'getDatasetResponse_httpStatus' - The response's http status code.+newGetDatasetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDatasetResponse+newGetDatasetResponse pHttpStatus_ =+  GetDatasetResponse'+    { alias = Prelude.Nothing,+      createTime = Prelude.Nothing,+      datasetArn = Prelude.Nothing,+      datasetDescription = Prelude.Nothing,+      datasetId = Prelude.Nothing,+      datasetTitle = Prelude.Nothing,+      kind = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      schemaDefinition = Prelude.Nothing,+      status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique resource identifier for a Dataset.+getDatasetResponse_alias :: Lens.Lens' GetDatasetResponse (Prelude.Maybe Prelude.Text)+getDatasetResponse_alias = Lens.lens (\GetDatasetResponse' {alias} -> alias) (\s@GetDatasetResponse' {} a -> s {alias = a} :: GetDatasetResponse)++-- | The timestamp at which the Dataset was created in FinSpace. The value is+-- determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+getDatasetResponse_createTime :: Lens.Lens' GetDatasetResponse (Prelude.Maybe Prelude.Integer)+getDatasetResponse_createTime = Lens.lens (\GetDatasetResponse' {createTime} -> createTime) (\s@GetDatasetResponse' {} a -> s {createTime = a} :: GetDatasetResponse)++-- | The ARN identifier of the Dataset.+getDatasetResponse_datasetArn :: Lens.Lens' GetDatasetResponse (Prelude.Maybe Prelude.Text)+getDatasetResponse_datasetArn = Lens.lens (\GetDatasetResponse' {datasetArn} -> datasetArn) (\s@GetDatasetResponse' {} a -> s {datasetArn = a} :: GetDatasetResponse)++-- | A description of the Dataset.+getDatasetResponse_datasetDescription :: Lens.Lens' GetDatasetResponse (Prelude.Maybe Prelude.Text)+getDatasetResponse_datasetDescription = Lens.lens (\GetDatasetResponse' {datasetDescription} -> datasetDescription) (\s@GetDatasetResponse' {} a -> s {datasetDescription = a} :: GetDatasetResponse)++-- | The unique identifier for a Dataset.+getDatasetResponse_datasetId :: Lens.Lens' GetDatasetResponse (Prelude.Maybe Prelude.Text)+getDatasetResponse_datasetId = Lens.lens (\GetDatasetResponse' {datasetId} -> datasetId) (\s@GetDatasetResponse' {} a -> s {datasetId = a} :: GetDatasetResponse)++-- | Display title for a Dataset.+getDatasetResponse_datasetTitle :: Lens.Lens' GetDatasetResponse (Prelude.Maybe Prelude.Text)+getDatasetResponse_datasetTitle = Lens.lens (\GetDatasetResponse' {datasetTitle} -> datasetTitle) (\s@GetDatasetResponse' {} a -> s {datasetTitle = a} :: GetDatasetResponse)++-- | The format in which Dataset data is structured.+--+-- -   @TABULAR@ – Data is structured in a tabular format.+--+-- -   @NON_TABULAR@ – Data is structured in a non-tabular format.+getDatasetResponse_kind :: Lens.Lens' GetDatasetResponse (Prelude.Maybe DatasetKind)+getDatasetResponse_kind = Lens.lens (\GetDatasetResponse' {kind} -> kind) (\s@GetDatasetResponse' {} a -> s {kind = a} :: GetDatasetResponse)++-- | The last time that the Dataset was modified. The value is determined as+-- epoch time in milliseconds. For example, the value for Monday, November+-- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+getDatasetResponse_lastModifiedTime :: Lens.Lens' GetDatasetResponse (Prelude.Maybe Prelude.Integer)+getDatasetResponse_lastModifiedTime = Lens.lens (\GetDatasetResponse' {lastModifiedTime} -> lastModifiedTime) (\s@GetDatasetResponse' {} a -> s {lastModifiedTime = a} :: GetDatasetResponse)++-- | Definition for a schema on a tabular Dataset.+getDatasetResponse_schemaDefinition :: Lens.Lens' GetDatasetResponse (Prelude.Maybe SchemaUnion)+getDatasetResponse_schemaDefinition = Lens.lens (\GetDatasetResponse' {schemaDefinition} -> schemaDefinition) (\s@GetDatasetResponse' {} a -> s {schemaDefinition = a} :: GetDatasetResponse)++-- | Status of the Dataset creation.+--+-- -   @PENDING@ – Dataset is pending creation.+--+-- -   @FAILED@ – Dataset creation has failed.+--+-- -   @SUCCESS@ – Dataset creation has succeeded.+--+-- -   @RUNNING@ – Dataset creation is running.+getDatasetResponse_status :: Lens.Lens' GetDatasetResponse (Prelude.Maybe DatasetStatus)+getDatasetResponse_status = Lens.lens (\GetDatasetResponse' {status} -> status) (\s@GetDatasetResponse' {} a -> s {status = a} :: GetDatasetResponse)++-- | 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 alias+      `Prelude.seq` Prelude.rnf createTime+      `Prelude.seq` Prelude.rnf datasetArn+      `Prelude.seq` Prelude.rnf datasetDescription+      `Prelude.seq` Prelude.rnf datasetId+      `Prelude.seq` Prelude.rnf datasetTitle+      `Prelude.seq` Prelude.rnf kind+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf schemaDefinition+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/GetExternalDataViewAccessDetails.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.FinSpaceData.GetExternalDataViewAccessDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the credentials to access the external Dataview from an S3+-- location. To call this API:+--+-- -   You must retrieve the programmatic credentials.+--+-- -   You must be a member of a FinSpace user group, where the dataset+--     that you want to access has @Read Dataset Data@ permissions.+module Amazonka.FinSpaceData.GetExternalDataViewAccessDetails+  ( -- * Creating a Request+    GetExternalDataViewAccessDetails (..),+    newGetExternalDataViewAccessDetails,++    -- * Request Lenses+    getExternalDataViewAccessDetails_dataViewId,+    getExternalDataViewAccessDetails_datasetId,++    -- * Destructuring the Response+    GetExternalDataViewAccessDetailsResponse (..),+    newGetExternalDataViewAccessDetailsResponse,++    -- * Response Lenses+    getExternalDataViewAccessDetailsResponse_credentials,+    getExternalDataViewAccessDetailsResponse_s3Location,+    getExternalDataViewAccessDetailsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetExternalDataViewAccessDetails' smart constructor.+data GetExternalDataViewAccessDetails = GetExternalDataViewAccessDetails'+  { -- | The unique identifier for the Dataview that you want to access.+    dataViewId :: Prelude.Text,+    -- | The unique identifier for the Dataset.+    datasetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetExternalDataViewAccessDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataViewId', 'getExternalDataViewAccessDetails_dataViewId' - The unique identifier for the Dataview that you want to access.+--+-- 'datasetId', 'getExternalDataViewAccessDetails_datasetId' - The unique identifier for the Dataset.+newGetExternalDataViewAccessDetails ::+  -- | 'dataViewId'+  Prelude.Text ->+  -- | 'datasetId'+  Prelude.Text ->+  GetExternalDataViewAccessDetails+newGetExternalDataViewAccessDetails+  pDataViewId_+  pDatasetId_ =+    GetExternalDataViewAccessDetails'+      { dataViewId =+          pDataViewId_,+        datasetId = pDatasetId_+      }++-- | The unique identifier for the Dataview that you want to access.+getExternalDataViewAccessDetails_dataViewId :: Lens.Lens' GetExternalDataViewAccessDetails Prelude.Text+getExternalDataViewAccessDetails_dataViewId = Lens.lens (\GetExternalDataViewAccessDetails' {dataViewId} -> dataViewId) (\s@GetExternalDataViewAccessDetails' {} a -> s {dataViewId = a} :: GetExternalDataViewAccessDetails)++-- | The unique identifier for the Dataset.+getExternalDataViewAccessDetails_datasetId :: Lens.Lens' GetExternalDataViewAccessDetails Prelude.Text+getExternalDataViewAccessDetails_datasetId = Lens.lens (\GetExternalDataViewAccessDetails' {datasetId} -> datasetId) (\s@GetExternalDataViewAccessDetails' {} a -> s {datasetId = a} :: GetExternalDataViewAccessDetails)++instance+  Core.AWSRequest+    GetExternalDataViewAccessDetails+  where+  type+    AWSResponse GetExternalDataViewAccessDetails =+      GetExternalDataViewAccessDetailsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetExternalDataViewAccessDetailsResponse'+            Prelude.<$> (x Data..?> "credentials")+            Prelude.<*> (x Data..?> "s3Location")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    GetExternalDataViewAccessDetails+  where+  hashWithSalt+    _salt+    GetExternalDataViewAccessDetails' {..} =+      _salt+        `Prelude.hashWithSalt` dataViewId+        `Prelude.hashWithSalt` datasetId++instance+  Prelude.NFData+    GetExternalDataViewAccessDetails+  where+  rnf GetExternalDataViewAccessDetails' {..} =+    Prelude.rnf dataViewId+      `Prelude.seq` Prelude.rnf datasetId++instance+  Data.ToHeaders+    GetExternalDataViewAccessDetails+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetExternalDataViewAccessDetails where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath GetExternalDataViewAccessDetails where+  toPath GetExternalDataViewAccessDetails' {..} =+    Prelude.mconcat+      [ "/datasets/",+        Data.toBS datasetId,+        "/dataviewsv2/",+        Data.toBS dataViewId,+        "/external-access-details"+      ]++instance+  Data.ToQuery+    GetExternalDataViewAccessDetails+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetExternalDataViewAccessDetailsResponse' smart constructor.+data GetExternalDataViewAccessDetailsResponse = GetExternalDataViewAccessDetailsResponse'+  { -- | The credentials required to access the external Dataview from the S3+    -- location.+    credentials :: Prelude.Maybe AwsCredentials,+    -- | The location where the external Dataview is stored.+    s3Location :: Prelude.Maybe S3Location,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetExternalDataViewAccessDetailsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'credentials', 'getExternalDataViewAccessDetailsResponse_credentials' - The credentials required to access the external Dataview from the S3+-- location.+--+-- 's3Location', 'getExternalDataViewAccessDetailsResponse_s3Location' - The location where the external Dataview is stored.+--+-- 'httpStatus', 'getExternalDataViewAccessDetailsResponse_httpStatus' - The response's http status code.+newGetExternalDataViewAccessDetailsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetExternalDataViewAccessDetailsResponse+newGetExternalDataViewAccessDetailsResponse+  pHttpStatus_ =+    GetExternalDataViewAccessDetailsResponse'+      { credentials =+          Prelude.Nothing,+        s3Location = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The credentials required to access the external Dataview from the S3+-- location.+getExternalDataViewAccessDetailsResponse_credentials :: Lens.Lens' GetExternalDataViewAccessDetailsResponse (Prelude.Maybe AwsCredentials)+getExternalDataViewAccessDetailsResponse_credentials = Lens.lens (\GetExternalDataViewAccessDetailsResponse' {credentials} -> credentials) (\s@GetExternalDataViewAccessDetailsResponse' {} a -> s {credentials = a} :: GetExternalDataViewAccessDetailsResponse)++-- | The location where the external Dataview is stored.+getExternalDataViewAccessDetailsResponse_s3Location :: Lens.Lens' GetExternalDataViewAccessDetailsResponse (Prelude.Maybe S3Location)+getExternalDataViewAccessDetailsResponse_s3Location = Lens.lens (\GetExternalDataViewAccessDetailsResponse' {s3Location} -> s3Location) (\s@GetExternalDataViewAccessDetailsResponse' {} a -> s {s3Location = a} :: GetExternalDataViewAccessDetailsResponse)++-- | The response's http status code.+getExternalDataViewAccessDetailsResponse_httpStatus :: Lens.Lens' GetExternalDataViewAccessDetailsResponse Prelude.Int+getExternalDataViewAccessDetailsResponse_httpStatus = Lens.lens (\GetExternalDataViewAccessDetailsResponse' {httpStatus} -> httpStatus) (\s@GetExternalDataViewAccessDetailsResponse' {} a -> s {httpStatus = a} :: GetExternalDataViewAccessDetailsResponse)++instance+  Prelude.NFData+    GetExternalDataViewAccessDetailsResponse+  where+  rnf GetExternalDataViewAccessDetailsResponse' {..} =+    Prelude.rnf credentials+      `Prelude.seq` Prelude.rnf s3Location+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/GetPermissionGroup.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FinSpaceData.GetPermissionGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the details of a specific permission group.+module Amazonka.FinSpaceData.GetPermissionGroup+  ( -- * Creating a Request+    GetPermissionGroup (..),+    newGetPermissionGroup,++    -- * Request Lenses+    getPermissionGroup_permissionGroupId,++    -- * Destructuring the Response+    GetPermissionGroupResponse (..),+    newGetPermissionGroupResponse,++    -- * Response Lenses+    getPermissionGroupResponse_permissionGroup,+    getPermissionGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetPermissionGroup' smart constructor.+data GetPermissionGroup = GetPermissionGroup'+  { -- | The unique identifier for the permission group.+    permissionGroupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPermissionGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'permissionGroupId', 'getPermissionGroup_permissionGroupId' - The unique identifier for the permission group.+newGetPermissionGroup ::+  -- | 'permissionGroupId'+  Prelude.Text ->+  GetPermissionGroup+newGetPermissionGroup pPermissionGroupId_ =+  GetPermissionGroup'+    { permissionGroupId =+        pPermissionGroupId_+    }++-- | The unique identifier for the permission group.+getPermissionGroup_permissionGroupId :: Lens.Lens' GetPermissionGroup Prelude.Text+getPermissionGroup_permissionGroupId = Lens.lens (\GetPermissionGroup' {permissionGroupId} -> permissionGroupId) (\s@GetPermissionGroup' {} a -> s {permissionGroupId = a} :: GetPermissionGroup)++instance Core.AWSRequest GetPermissionGroup where+  type+    AWSResponse GetPermissionGroup =+      GetPermissionGroupResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetPermissionGroupResponse'+            Prelude.<$> (x Data..?> "permissionGroup")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetPermissionGroup where+  hashWithSalt _salt GetPermissionGroup' {..} =+    _salt `Prelude.hashWithSalt` permissionGroupId++instance Prelude.NFData GetPermissionGroup where+  rnf GetPermissionGroup' {..} =+    Prelude.rnf permissionGroupId++instance Data.ToHeaders GetPermissionGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetPermissionGroup where+  toPath GetPermissionGroup' {..} =+    Prelude.mconcat+      ["/permission-group/", Data.toBS permissionGroupId]++instance Data.ToQuery GetPermissionGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetPermissionGroupResponse' smart constructor.+data GetPermissionGroupResponse = GetPermissionGroupResponse'+  { permissionGroup :: Prelude.Maybe PermissionGroup,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPermissionGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'permissionGroup', 'getPermissionGroupResponse_permissionGroup' - Undocumented member.+--+-- 'httpStatus', 'getPermissionGroupResponse_httpStatus' - The response's http status code.+newGetPermissionGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetPermissionGroupResponse+newGetPermissionGroupResponse pHttpStatus_ =+  GetPermissionGroupResponse'+    { permissionGroup =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+getPermissionGroupResponse_permissionGroup :: Lens.Lens' GetPermissionGroupResponse (Prelude.Maybe PermissionGroup)+getPermissionGroupResponse_permissionGroup = Lens.lens (\GetPermissionGroupResponse' {permissionGroup} -> permissionGroup) (\s@GetPermissionGroupResponse' {} a -> s {permissionGroup = a} :: GetPermissionGroupResponse)++-- | The response's http status code.+getPermissionGroupResponse_httpStatus :: Lens.Lens' GetPermissionGroupResponse Prelude.Int+getPermissionGroupResponse_httpStatus = Lens.lens (\GetPermissionGroupResponse' {httpStatus} -> httpStatus) (\s@GetPermissionGroupResponse' {} a -> s {httpStatus = a} :: GetPermissionGroupResponse)++instance Prelude.NFData GetPermissionGroupResponse where+  rnf GetPermissionGroupResponse' {..} =+    Prelude.rnf permissionGroup+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/GetProgrammaticAccessCredentials.hs view
@@ -0,0 +1,216 @@+{-# 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.FinSpaceData.GetProgrammaticAccessCredentials+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Request programmatic credentials to use with FinSpace SDK.+module Amazonka.FinSpaceData.GetProgrammaticAccessCredentials+  ( -- * Creating a Request+    GetProgrammaticAccessCredentials (..),+    newGetProgrammaticAccessCredentials,++    -- * Request Lenses+    getProgrammaticAccessCredentials_durationInMinutes,+    getProgrammaticAccessCredentials_environmentId,++    -- * Destructuring the Response+    GetProgrammaticAccessCredentialsResponse (..),+    newGetProgrammaticAccessCredentialsResponse,++    -- * Response Lenses+    getProgrammaticAccessCredentialsResponse_credentials,+    getProgrammaticAccessCredentialsResponse_durationInMinutes,+    getProgrammaticAccessCredentialsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Request for GetProgrammaticAccessCredentials operation+--+-- /See:/ 'newGetProgrammaticAccessCredentials' smart constructor.+data GetProgrammaticAccessCredentials = GetProgrammaticAccessCredentials'+  { -- | The time duration in which the credentials remain valid.+    durationInMinutes :: Prelude.Maybe Prelude.Natural,+    -- | The FinSpace environment identifier.+    environmentId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetProgrammaticAccessCredentials' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'durationInMinutes', 'getProgrammaticAccessCredentials_durationInMinutes' - The time duration in which the credentials remain valid.+--+-- 'environmentId', 'getProgrammaticAccessCredentials_environmentId' - The FinSpace environment identifier.+newGetProgrammaticAccessCredentials ::+  -- | 'environmentId'+  Prelude.Text ->+  GetProgrammaticAccessCredentials+newGetProgrammaticAccessCredentials pEnvironmentId_ =+  GetProgrammaticAccessCredentials'+    { durationInMinutes =+        Prelude.Nothing,+      environmentId = pEnvironmentId_+    }++-- | The time duration in which the credentials remain valid.+getProgrammaticAccessCredentials_durationInMinutes :: Lens.Lens' GetProgrammaticAccessCredentials (Prelude.Maybe Prelude.Natural)+getProgrammaticAccessCredentials_durationInMinutes = Lens.lens (\GetProgrammaticAccessCredentials' {durationInMinutes} -> durationInMinutes) (\s@GetProgrammaticAccessCredentials' {} a -> s {durationInMinutes = a} :: GetProgrammaticAccessCredentials)++-- | The FinSpace environment identifier.+getProgrammaticAccessCredentials_environmentId :: Lens.Lens' GetProgrammaticAccessCredentials Prelude.Text+getProgrammaticAccessCredentials_environmentId = Lens.lens (\GetProgrammaticAccessCredentials' {environmentId} -> environmentId) (\s@GetProgrammaticAccessCredentials' {} a -> s {environmentId = a} :: GetProgrammaticAccessCredentials)++instance+  Core.AWSRequest+    GetProgrammaticAccessCredentials+  where+  type+    AWSResponse GetProgrammaticAccessCredentials =+      GetProgrammaticAccessCredentialsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetProgrammaticAccessCredentialsResponse'+            Prelude.<$> (x Data..?> "credentials")+            Prelude.<*> (x Data..?> "durationInMinutes")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    GetProgrammaticAccessCredentials+  where+  hashWithSalt+    _salt+    GetProgrammaticAccessCredentials' {..} =+      _salt+        `Prelude.hashWithSalt` durationInMinutes+        `Prelude.hashWithSalt` environmentId++instance+  Prelude.NFData+    GetProgrammaticAccessCredentials+  where+  rnf GetProgrammaticAccessCredentials' {..} =+    Prelude.rnf durationInMinutes+      `Prelude.seq` Prelude.rnf environmentId++instance+  Data.ToHeaders+    GetProgrammaticAccessCredentials+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetProgrammaticAccessCredentials where+  toPath = Prelude.const "/credentials/programmatic"++instance+  Data.ToQuery+    GetProgrammaticAccessCredentials+  where+  toQuery GetProgrammaticAccessCredentials' {..} =+    Prelude.mconcat+      [ "durationInMinutes" Data.=: durationInMinutes,+        "environmentId" Data.=: environmentId+      ]++-- | Response for GetProgrammaticAccessCredentials operation+--+-- /See:/ 'newGetProgrammaticAccessCredentialsResponse' smart constructor.+data GetProgrammaticAccessCredentialsResponse = GetProgrammaticAccessCredentialsResponse'+  { -- | Returns the programmatic credentials.+    credentials :: Prelude.Maybe Credentials,+    -- | Returns the duration in which the credentials will remain valid.+    durationInMinutes :: Prelude.Maybe Prelude.Natural,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetProgrammaticAccessCredentialsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'credentials', 'getProgrammaticAccessCredentialsResponse_credentials' - Returns the programmatic credentials.+--+-- 'durationInMinutes', 'getProgrammaticAccessCredentialsResponse_durationInMinutes' - Returns the duration in which the credentials will remain valid.+--+-- 'httpStatus', 'getProgrammaticAccessCredentialsResponse_httpStatus' - The response's http status code.+newGetProgrammaticAccessCredentialsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetProgrammaticAccessCredentialsResponse+newGetProgrammaticAccessCredentialsResponse+  pHttpStatus_ =+    GetProgrammaticAccessCredentialsResponse'+      { credentials =+          Prelude.Nothing,+        durationInMinutes =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Returns the programmatic credentials.+getProgrammaticAccessCredentialsResponse_credentials :: Lens.Lens' GetProgrammaticAccessCredentialsResponse (Prelude.Maybe Credentials)+getProgrammaticAccessCredentialsResponse_credentials = Lens.lens (\GetProgrammaticAccessCredentialsResponse' {credentials} -> credentials) (\s@GetProgrammaticAccessCredentialsResponse' {} a -> s {credentials = a} :: GetProgrammaticAccessCredentialsResponse)++-- | Returns the duration in which the credentials will remain valid.+getProgrammaticAccessCredentialsResponse_durationInMinutes :: Lens.Lens' GetProgrammaticAccessCredentialsResponse (Prelude.Maybe Prelude.Natural)+getProgrammaticAccessCredentialsResponse_durationInMinutes = Lens.lens (\GetProgrammaticAccessCredentialsResponse' {durationInMinutes} -> durationInMinutes) (\s@GetProgrammaticAccessCredentialsResponse' {} a -> s {durationInMinutes = a} :: GetProgrammaticAccessCredentialsResponse)++-- | The response's http status code.+getProgrammaticAccessCredentialsResponse_httpStatus :: Lens.Lens' GetProgrammaticAccessCredentialsResponse Prelude.Int+getProgrammaticAccessCredentialsResponse_httpStatus = Lens.lens (\GetProgrammaticAccessCredentialsResponse' {httpStatus} -> httpStatus) (\s@GetProgrammaticAccessCredentialsResponse' {} a -> s {httpStatus = a} :: GetProgrammaticAccessCredentialsResponse)++instance+  Prelude.NFData+    GetProgrammaticAccessCredentialsResponse+  where+  rnf GetProgrammaticAccessCredentialsResponse' {..} =+    Prelude.rnf credentials+      `Prelude.seq` Prelude.rnf durationInMinutes+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/GetUser.hs view
@@ -0,0 +1,376 @@+{-# 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.FinSpaceData.GetUser+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves details for a specific user.+module Amazonka.FinSpaceData.GetUser+  ( -- * Creating a Request+    GetUser (..),+    newGetUser,++    -- * Request Lenses+    getUser_userId,++    -- * Destructuring the Response+    GetUserResponse (..),+    newGetUserResponse,++    -- * Response Lenses+    getUserResponse_apiAccess,+    getUserResponse_apiAccessPrincipalArn,+    getUserResponse_createTime,+    getUserResponse_emailAddress,+    getUserResponse_firstName,+    getUserResponse_lastDisabledTime,+    getUserResponse_lastEnabledTime,+    getUserResponse_lastLoginTime,+    getUserResponse_lastModifiedTime,+    getUserResponse_lastName,+    getUserResponse_status,+    getUserResponse_type,+    getUserResponse_userId,+    getUserResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetUser' smart constructor.+data GetUser = GetUser'+  { -- | The unique identifier of the user to get data for.+    userId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'userId', 'getUser_userId' - The unique identifier of the user to get data for.+newGetUser ::+  -- | 'userId'+  Prelude.Text ->+  GetUser+newGetUser pUserId_ = GetUser' {userId = pUserId_}++-- | The unique identifier of the user to get data for.+getUser_userId :: Lens.Lens' GetUser Prelude.Text+getUser_userId = Lens.lens (\GetUser' {userId} -> userId) (\s@GetUser' {} a -> s {userId = a} :: GetUser)++instance Core.AWSRequest GetUser where+  type AWSResponse GetUser = GetUserResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetUserResponse'+            Prelude.<$> (x Data..?> "apiAccess")+            Prelude.<*> (x Data..?> "apiAccessPrincipalArn")+            Prelude.<*> (x Data..?> "createTime")+            Prelude.<*> (x Data..?> "emailAddress")+            Prelude.<*> (x Data..?> "firstName")+            Prelude.<*> (x Data..?> "lastDisabledTime")+            Prelude.<*> (x Data..?> "lastEnabledTime")+            Prelude.<*> (x Data..?> "lastLoginTime")+            Prelude.<*> (x Data..?> "lastModifiedTime")+            Prelude.<*> (x Data..?> "lastName")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "type")+            Prelude.<*> (x Data..?> "userId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetUser where+  hashWithSalt _salt GetUser' {..} =+    _salt `Prelude.hashWithSalt` userId++instance Prelude.NFData GetUser where+  rnf GetUser' {..} = Prelude.rnf userId++instance Data.ToHeaders GetUser where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetUser where+  toPath GetUser' {..} =+    Prelude.mconcat ["/user/", Data.toBS userId]++instance Data.ToQuery GetUser where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetUserResponse' smart constructor.+data GetUserResponse = GetUserResponse'+  { -- | Indicates whether the user can use the+    -- @GetProgrammaticAccessCredentials@ API to obtain credentials that can+    -- then be used to access other FinSpace Data API operations.+    --+    -- -   @ENABLED@ – The user has permissions to use the APIs.+    --+    -- -   @DISABLED@ – The user does not have permissions to use any APIs.+    apiAccess :: Prelude.Maybe ApiAccess,+    -- | The ARN identifier of an AWS user or role that is allowed to call the+    -- @GetProgrammaticAccessCredentials@ API to obtain a credentials token for+    -- a specific FinSpace user. This must be an IAM role within your FinSpace+    -- account.+    apiAccessPrincipalArn :: Prelude.Maybe Prelude.Text,+    -- | The timestamp at which the user account was created in FinSpace. The+    -- value is determined as epoch time in milliseconds.+    createTime :: Prelude.Maybe Prelude.Integer,+    -- | The email address that is associated with the user.+    emailAddress :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The first name of the user.+    firstName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | Describes the last time the user account was disabled. The value is+    -- determined as epoch time in milliseconds.+    lastDisabledTime :: Prelude.Maybe Prelude.Integer,+    -- | Describes the last time the user account was enabled. The value is+    -- determined as epoch time in milliseconds.+    lastEnabledTime :: Prelude.Maybe Prelude.Integer,+    -- | Describes the last time that the user logged into their account. The+    -- value is determined as epoch time in milliseconds.+    lastLoginTime :: Prelude.Maybe Prelude.Integer,+    -- | Describes the last time the user account was updated. The value is+    -- determined as epoch time in milliseconds.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | The last name of the user.+    lastName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The current status of the user account.+    --+    -- -   @CREATING@ – The user account creation is in progress.+    --+    -- -   @ENABLED@ – The user account is created and is currently active.+    --+    -- -   @DISABLED@ – The user account is currently inactive.+    status :: Prelude.Maybe UserStatus,+    -- | Indicates the type of user.+    --+    -- -   @SUPER_USER@ – A user with permission to all the functionality and+    --     data in FinSpace.+    --+    -- -   @APP_USER@ – A user with specific permissions in FinSpace. The users+    --     are assigned permissions by adding them to a permission group.+    type' :: Prelude.Maybe UserType,+    -- | The unique identifier for the user account that is retrieved.+    userId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetUserResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiAccess', 'getUserResponse_apiAccess' - Indicates whether the user can use the+-- @GetProgrammaticAccessCredentials@ API to obtain credentials that can+-- then be used to access other FinSpace Data API operations.+--+-- -   @ENABLED@ – The user has permissions to use the APIs.+--+-- -   @DISABLED@ – The user does not have permissions to use any APIs.+--+-- 'apiAccessPrincipalArn', 'getUserResponse_apiAccessPrincipalArn' - The ARN identifier of an AWS user or role that is allowed to call the+-- @GetProgrammaticAccessCredentials@ API to obtain a credentials token for+-- a specific FinSpace user. This must be an IAM role within your FinSpace+-- account.+--+-- 'createTime', 'getUserResponse_createTime' - The timestamp at which the user account was created in FinSpace. The+-- value is determined as epoch time in milliseconds.+--+-- 'emailAddress', 'getUserResponse_emailAddress' - The email address that is associated with the user.+--+-- 'firstName', 'getUserResponse_firstName' - The first name of the user.+--+-- 'lastDisabledTime', 'getUserResponse_lastDisabledTime' - Describes the last time the user account was disabled. The value is+-- determined as epoch time in milliseconds.+--+-- 'lastEnabledTime', 'getUserResponse_lastEnabledTime' - Describes the last time the user account was enabled. The value is+-- determined as epoch time in milliseconds.+--+-- 'lastLoginTime', 'getUserResponse_lastLoginTime' - Describes the last time that the user logged into their account. The+-- value is determined as epoch time in milliseconds.+--+-- 'lastModifiedTime', 'getUserResponse_lastModifiedTime' - Describes the last time the user account was updated. The value is+-- determined as epoch time in milliseconds.+--+-- 'lastName', 'getUserResponse_lastName' - The last name of the user.+--+-- 'status', 'getUserResponse_status' - The current status of the user account.+--+-- -   @CREATING@ – The user account creation is in progress.+--+-- -   @ENABLED@ – The user account is created and is currently active.+--+-- -   @DISABLED@ – The user account is currently inactive.+--+-- 'type'', 'getUserResponse_type' - Indicates the type of user.+--+-- -   @SUPER_USER@ – A user with permission to all the functionality and+--     data in FinSpace.+--+-- -   @APP_USER@ – A user with specific permissions in FinSpace. The users+--     are assigned permissions by adding them to a permission group.+--+-- 'userId', 'getUserResponse_userId' - The unique identifier for the user account that is retrieved.+--+-- 'httpStatus', 'getUserResponse_httpStatus' - The response's http status code.+newGetUserResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetUserResponse+newGetUserResponse pHttpStatus_ =+  GetUserResponse'+    { apiAccess = Prelude.Nothing,+      apiAccessPrincipalArn = Prelude.Nothing,+      createTime = Prelude.Nothing,+      emailAddress = Prelude.Nothing,+      firstName = Prelude.Nothing,+      lastDisabledTime = Prelude.Nothing,+      lastEnabledTime = Prelude.Nothing,+      lastLoginTime = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      lastName = Prelude.Nothing,+      status = Prelude.Nothing,+      type' = Prelude.Nothing,+      userId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Indicates whether the user can use the+-- @GetProgrammaticAccessCredentials@ API to obtain credentials that can+-- then be used to access other FinSpace Data API operations.+--+-- -   @ENABLED@ – The user has permissions to use the APIs.+--+-- -   @DISABLED@ – The user does not have permissions to use any APIs.+getUserResponse_apiAccess :: Lens.Lens' GetUserResponse (Prelude.Maybe ApiAccess)+getUserResponse_apiAccess = Lens.lens (\GetUserResponse' {apiAccess} -> apiAccess) (\s@GetUserResponse' {} a -> s {apiAccess = a} :: GetUserResponse)++-- | The ARN identifier of an AWS user or role that is allowed to call the+-- @GetProgrammaticAccessCredentials@ API to obtain a credentials token for+-- a specific FinSpace user. This must be an IAM role within your FinSpace+-- account.+getUserResponse_apiAccessPrincipalArn :: Lens.Lens' GetUserResponse (Prelude.Maybe Prelude.Text)+getUserResponse_apiAccessPrincipalArn = Lens.lens (\GetUserResponse' {apiAccessPrincipalArn} -> apiAccessPrincipalArn) (\s@GetUserResponse' {} a -> s {apiAccessPrincipalArn = a} :: GetUserResponse)++-- | The timestamp at which the user account was created in FinSpace. The+-- value is determined as epoch time in milliseconds.+getUserResponse_createTime :: Lens.Lens' GetUserResponse (Prelude.Maybe Prelude.Integer)+getUserResponse_createTime = Lens.lens (\GetUserResponse' {createTime} -> createTime) (\s@GetUserResponse' {} a -> s {createTime = a} :: GetUserResponse)++-- | The email address that is associated with the user.+getUserResponse_emailAddress :: Lens.Lens' GetUserResponse (Prelude.Maybe Prelude.Text)+getUserResponse_emailAddress = Lens.lens (\GetUserResponse' {emailAddress} -> emailAddress) (\s@GetUserResponse' {} a -> s {emailAddress = a} :: GetUserResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The first name of the user.+getUserResponse_firstName :: Lens.Lens' GetUserResponse (Prelude.Maybe Prelude.Text)+getUserResponse_firstName = Lens.lens (\GetUserResponse' {firstName} -> firstName) (\s@GetUserResponse' {} a -> s {firstName = a} :: GetUserResponse) Prelude.. Lens.mapping Data._Sensitive++-- | Describes the last time the user account was disabled. The value is+-- determined as epoch time in milliseconds.+getUserResponse_lastDisabledTime :: Lens.Lens' GetUserResponse (Prelude.Maybe Prelude.Integer)+getUserResponse_lastDisabledTime = Lens.lens (\GetUserResponse' {lastDisabledTime} -> lastDisabledTime) (\s@GetUserResponse' {} a -> s {lastDisabledTime = a} :: GetUserResponse)++-- | Describes the last time the user account was enabled. The value is+-- determined as epoch time in milliseconds.+getUserResponse_lastEnabledTime :: Lens.Lens' GetUserResponse (Prelude.Maybe Prelude.Integer)+getUserResponse_lastEnabledTime = Lens.lens (\GetUserResponse' {lastEnabledTime} -> lastEnabledTime) (\s@GetUserResponse' {} a -> s {lastEnabledTime = a} :: GetUserResponse)++-- | Describes the last time that the user logged into their account. The+-- value is determined as epoch time in milliseconds.+getUserResponse_lastLoginTime :: Lens.Lens' GetUserResponse (Prelude.Maybe Prelude.Integer)+getUserResponse_lastLoginTime = Lens.lens (\GetUserResponse' {lastLoginTime} -> lastLoginTime) (\s@GetUserResponse' {} a -> s {lastLoginTime = a} :: GetUserResponse)++-- | Describes the last time the user account was updated. The value is+-- determined as epoch time in milliseconds.+getUserResponse_lastModifiedTime :: Lens.Lens' GetUserResponse (Prelude.Maybe Prelude.Integer)+getUserResponse_lastModifiedTime = Lens.lens (\GetUserResponse' {lastModifiedTime} -> lastModifiedTime) (\s@GetUserResponse' {} a -> s {lastModifiedTime = a} :: GetUserResponse)++-- | The last name of the user.+getUserResponse_lastName :: Lens.Lens' GetUserResponse (Prelude.Maybe Prelude.Text)+getUserResponse_lastName = Lens.lens (\GetUserResponse' {lastName} -> lastName) (\s@GetUserResponse' {} a -> s {lastName = a} :: GetUserResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The current status of the user account.+--+-- -   @CREATING@ – The user account creation is in progress.+--+-- -   @ENABLED@ – The user account is created and is currently active.+--+-- -   @DISABLED@ – The user account is currently inactive.+getUserResponse_status :: Lens.Lens' GetUserResponse (Prelude.Maybe UserStatus)+getUserResponse_status = Lens.lens (\GetUserResponse' {status} -> status) (\s@GetUserResponse' {} a -> s {status = a} :: GetUserResponse)++-- | Indicates the type of user.+--+-- -   @SUPER_USER@ – A user with permission to all the functionality and+--     data in FinSpace.+--+-- -   @APP_USER@ – A user with specific permissions in FinSpace. The users+--     are assigned permissions by adding them to a permission group.+getUserResponse_type :: Lens.Lens' GetUserResponse (Prelude.Maybe UserType)+getUserResponse_type = Lens.lens (\GetUserResponse' {type'} -> type') (\s@GetUserResponse' {} a -> s {type' = a} :: GetUserResponse)++-- | The unique identifier for the user account that is retrieved.+getUserResponse_userId :: Lens.Lens' GetUserResponse (Prelude.Maybe Prelude.Text)+getUserResponse_userId = Lens.lens (\GetUserResponse' {userId} -> userId) (\s@GetUserResponse' {} a -> s {userId = a} :: GetUserResponse)++-- | The response's http status code.+getUserResponse_httpStatus :: Lens.Lens' GetUserResponse Prelude.Int+getUserResponse_httpStatus = Lens.lens (\GetUserResponse' {httpStatus} -> httpStatus) (\s@GetUserResponse' {} a -> s {httpStatus = a} :: GetUserResponse)++instance Prelude.NFData GetUserResponse where+  rnf GetUserResponse' {..} =+    Prelude.rnf apiAccess+      `Prelude.seq` Prelude.rnf apiAccessPrincipalArn+      `Prelude.seq` Prelude.rnf createTime+      `Prelude.seq` Prelude.rnf emailAddress+      `Prelude.seq` Prelude.rnf firstName+      `Prelude.seq` Prelude.rnf lastDisabledTime+      `Prelude.seq` Prelude.rnf lastEnabledTime+      `Prelude.seq` Prelude.rnf lastLoginTime+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf lastName+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf userId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/GetWorkingLocation.hs view
@@ -0,0 +1,212 @@+{-# 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.FinSpaceData.GetWorkingLocation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- A temporary Amazon S3 location, where you can copy your files from a+-- source location to stage or use as a scratch space in FinSpace notebook.+module Amazonka.FinSpaceData.GetWorkingLocation+  ( -- * Creating a Request+    GetWorkingLocation (..),+    newGetWorkingLocation,++    -- * Request Lenses+    getWorkingLocation_locationType,++    -- * Destructuring the Response+    GetWorkingLocationResponse (..),+    newGetWorkingLocationResponse,++    -- * Response Lenses+    getWorkingLocationResponse_s3Bucket,+    getWorkingLocationResponse_s3Path,+    getWorkingLocationResponse_s3Uri,+    getWorkingLocationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetWorkingLocation' smart constructor.+data GetWorkingLocation = GetWorkingLocation'+  { -- | Specify the type of the working location.+    --+    -- -   @SAGEMAKER@ – Use the Amazon S3 location as a temporary location to+    --     store data content when working with FinSpace Notebooks that run on+    --     SageMaker studio.+    --+    -- -   @INGESTION@ – Use the Amazon S3 location as a staging location to+    --     copy your data content and then use the location with the Changeset+    --     creation operation.+    locationType :: Prelude.Maybe LocationType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetWorkingLocation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'locationType', 'getWorkingLocation_locationType' - Specify the type of the working location.+--+-- -   @SAGEMAKER@ – Use the Amazon S3 location as a temporary location to+--     store data content when working with FinSpace Notebooks that run on+--     SageMaker studio.+--+-- -   @INGESTION@ – Use the Amazon S3 location as a staging location to+--     copy your data content and then use the location with the Changeset+--     creation operation.+newGetWorkingLocation ::+  GetWorkingLocation+newGetWorkingLocation =+  GetWorkingLocation' {locationType = Prelude.Nothing}++-- | Specify the type of the working location.+--+-- -   @SAGEMAKER@ – Use the Amazon S3 location as a temporary location to+--     store data content when working with FinSpace Notebooks that run on+--     SageMaker studio.+--+-- -   @INGESTION@ – Use the Amazon S3 location as a staging location to+--     copy your data content and then use the location with the Changeset+--     creation operation.+getWorkingLocation_locationType :: Lens.Lens' GetWorkingLocation (Prelude.Maybe LocationType)+getWorkingLocation_locationType = Lens.lens (\GetWorkingLocation' {locationType} -> locationType) (\s@GetWorkingLocation' {} a -> s {locationType = a} :: GetWorkingLocation)++instance Core.AWSRequest GetWorkingLocation where+  type+    AWSResponse GetWorkingLocation =+      GetWorkingLocationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetWorkingLocationResponse'+            Prelude.<$> (x Data..?> "s3Bucket")+            Prelude.<*> (x Data..?> "s3Path")+            Prelude.<*> (x Data..?> "s3Uri")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetWorkingLocation where+  hashWithSalt _salt GetWorkingLocation' {..} =+    _salt `Prelude.hashWithSalt` locationType++instance Prelude.NFData GetWorkingLocation where+  rnf GetWorkingLocation' {..} =+    Prelude.rnf locationType++instance Data.ToHeaders GetWorkingLocation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetWorkingLocation where+  toJSON GetWorkingLocation' {..} =+    Data.object+      ( Prelude.catMaybes+          [("locationType" Data..=) Prelude.<$> locationType]+      )++instance Data.ToPath GetWorkingLocation where+  toPath = Prelude.const "/workingLocationV1"++instance Data.ToQuery GetWorkingLocation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetWorkingLocationResponse' smart constructor.+data GetWorkingLocationResponse = GetWorkingLocationResponse'+  { -- | Returns the Amazon S3 bucket name for the working location.+    s3Bucket :: Prelude.Maybe Prelude.Text,+    -- | Returns the Amazon S3 Path for the working location.+    s3Path :: Prelude.Maybe Prelude.Text,+    -- | Returns the Amazon S3 URI for the working location.+    s3Uri :: 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 'GetWorkingLocationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Bucket', 'getWorkingLocationResponse_s3Bucket' - Returns the Amazon S3 bucket name for the working location.+--+-- 's3Path', 'getWorkingLocationResponse_s3Path' - Returns the Amazon S3 Path for the working location.+--+-- 's3Uri', 'getWorkingLocationResponse_s3Uri' - Returns the Amazon S3 URI for the working location.+--+-- 'httpStatus', 'getWorkingLocationResponse_httpStatus' - The response's http status code.+newGetWorkingLocationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetWorkingLocationResponse+newGetWorkingLocationResponse pHttpStatus_ =+  GetWorkingLocationResponse'+    { s3Bucket =+        Prelude.Nothing,+      s3Path = Prelude.Nothing,+      s3Uri = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Returns the Amazon S3 bucket name for the working location.+getWorkingLocationResponse_s3Bucket :: Lens.Lens' GetWorkingLocationResponse (Prelude.Maybe Prelude.Text)+getWorkingLocationResponse_s3Bucket = Lens.lens (\GetWorkingLocationResponse' {s3Bucket} -> s3Bucket) (\s@GetWorkingLocationResponse' {} a -> s {s3Bucket = a} :: GetWorkingLocationResponse)++-- | Returns the Amazon S3 Path for the working location.+getWorkingLocationResponse_s3Path :: Lens.Lens' GetWorkingLocationResponse (Prelude.Maybe Prelude.Text)+getWorkingLocationResponse_s3Path = Lens.lens (\GetWorkingLocationResponse' {s3Path} -> s3Path) (\s@GetWorkingLocationResponse' {} a -> s {s3Path = a} :: GetWorkingLocationResponse)++-- | Returns the Amazon S3 URI for the working location.+getWorkingLocationResponse_s3Uri :: Lens.Lens' GetWorkingLocationResponse (Prelude.Maybe Prelude.Text)+getWorkingLocationResponse_s3Uri = Lens.lens (\GetWorkingLocationResponse' {s3Uri} -> s3Uri) (\s@GetWorkingLocationResponse' {} a -> s {s3Uri = a} :: GetWorkingLocationResponse)++-- | The response's http status code.+getWorkingLocationResponse_httpStatus :: Lens.Lens' GetWorkingLocationResponse Prelude.Int+getWorkingLocationResponse_httpStatus = Lens.lens (\GetWorkingLocationResponse' {httpStatus} -> httpStatus) (\s@GetWorkingLocationResponse' {} a -> s {httpStatus = a} :: GetWorkingLocationResponse)++instance Prelude.NFData GetWorkingLocationResponse where+  rnf GetWorkingLocationResponse' {..} =+    Prelude.rnf s3Bucket+      `Prelude.seq` Prelude.rnf s3Path+      `Prelude.seq` Prelude.rnf s3Uri+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/Lens.hs view
@@ -0,0 +1,485 @@+{-# 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.FinSpaceData.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.FinSpaceData.Lens+  ( -- * Operations++    -- ** AssociateUserToPermissionGroup+    associateUserToPermissionGroup_clientToken,+    associateUserToPermissionGroup_permissionGroupId,+    associateUserToPermissionGroup_userId,+    associateUserToPermissionGroupResponse_statusCode,++    -- ** CreateChangeset+    createChangeset_clientToken,+    createChangeset_datasetId,+    createChangeset_changeType,+    createChangeset_sourceParams,+    createChangeset_formatParams,+    createChangesetResponse_changesetId,+    createChangesetResponse_datasetId,+    createChangesetResponse_httpStatus,++    -- ** CreateDataView+    createDataView_asOfTimestamp,+    createDataView_autoUpdate,+    createDataView_clientToken,+    createDataView_partitionColumns,+    createDataView_sortColumns,+    createDataView_datasetId,+    createDataView_destinationTypeParams,+    createDataViewResponse_dataViewId,+    createDataViewResponse_datasetId,+    createDataViewResponse_httpStatus,++    -- ** CreateDataset+    createDataset_alias,+    createDataset_clientToken,+    createDataset_datasetDescription,+    createDataset_ownerInfo,+    createDataset_schemaDefinition,+    createDataset_datasetTitle,+    createDataset_kind,+    createDataset_permissionGroupParams,+    createDatasetResponse_datasetId,+    createDatasetResponse_httpStatus,++    -- ** CreatePermissionGroup+    createPermissionGroup_clientToken,+    createPermissionGroup_description,+    createPermissionGroup_name,+    createPermissionGroup_applicationPermissions,+    createPermissionGroupResponse_permissionGroupId,+    createPermissionGroupResponse_httpStatus,++    -- ** CreateUser+    createUser_apiAccess,+    createUser_apiAccessPrincipalArn,+    createUser_clientToken,+    createUser_firstName,+    createUser_lastName,+    createUser_emailAddress,+    createUser_type,+    createUserResponse_userId,+    createUserResponse_httpStatus,++    -- ** DeleteDataset+    deleteDataset_clientToken,+    deleteDataset_datasetId,+    deleteDatasetResponse_datasetId,+    deleteDatasetResponse_httpStatus,++    -- ** DeletePermissionGroup+    deletePermissionGroup_clientToken,+    deletePermissionGroup_permissionGroupId,+    deletePermissionGroupResponse_permissionGroupId,+    deletePermissionGroupResponse_httpStatus,++    -- ** DisableUser+    disableUser_clientToken,+    disableUser_userId,+    disableUserResponse_userId,+    disableUserResponse_httpStatus,++    -- ** DisassociateUserFromPermissionGroup+    disassociateUserFromPermissionGroup_clientToken,+    disassociateUserFromPermissionGroup_permissionGroupId,+    disassociateUserFromPermissionGroup_userId,+    disassociateUserFromPermissionGroupResponse_statusCode,++    -- ** EnableUser+    enableUser_clientToken,+    enableUser_userId,+    enableUserResponse_userId,+    enableUserResponse_httpStatus,++    -- ** GetChangeset+    getChangeset_datasetId,+    getChangeset_changesetId,+    getChangesetResponse_activeFromTimestamp,+    getChangesetResponse_activeUntilTimestamp,+    getChangesetResponse_changeType,+    getChangesetResponse_changesetArn,+    getChangesetResponse_changesetId,+    getChangesetResponse_createTime,+    getChangesetResponse_datasetId,+    getChangesetResponse_errorInfo,+    getChangesetResponse_formatParams,+    getChangesetResponse_sourceParams,+    getChangesetResponse_status,+    getChangesetResponse_updatedByChangesetId,+    getChangesetResponse_updatesChangesetId,+    getChangesetResponse_httpStatus,++    -- ** GetDataView+    getDataView_dataViewId,+    getDataView_datasetId,+    getDataViewResponse_asOfTimestamp,+    getDataViewResponse_autoUpdate,+    getDataViewResponse_createTime,+    getDataViewResponse_dataViewArn,+    getDataViewResponse_dataViewId,+    getDataViewResponse_datasetId,+    getDataViewResponse_destinationTypeParams,+    getDataViewResponse_errorInfo,+    getDataViewResponse_lastModifiedTime,+    getDataViewResponse_partitionColumns,+    getDataViewResponse_sortColumns,+    getDataViewResponse_status,+    getDataViewResponse_httpStatus,++    -- ** GetDataset+    getDataset_datasetId,+    getDatasetResponse_alias,+    getDatasetResponse_createTime,+    getDatasetResponse_datasetArn,+    getDatasetResponse_datasetDescription,+    getDatasetResponse_datasetId,+    getDatasetResponse_datasetTitle,+    getDatasetResponse_kind,+    getDatasetResponse_lastModifiedTime,+    getDatasetResponse_schemaDefinition,+    getDatasetResponse_status,+    getDatasetResponse_httpStatus,++    -- ** GetExternalDataViewAccessDetails+    getExternalDataViewAccessDetails_dataViewId,+    getExternalDataViewAccessDetails_datasetId,+    getExternalDataViewAccessDetailsResponse_credentials,+    getExternalDataViewAccessDetailsResponse_s3Location,+    getExternalDataViewAccessDetailsResponse_httpStatus,++    -- ** GetPermissionGroup+    getPermissionGroup_permissionGroupId,+    getPermissionGroupResponse_permissionGroup,+    getPermissionGroupResponse_httpStatus,++    -- ** GetProgrammaticAccessCredentials+    getProgrammaticAccessCredentials_durationInMinutes,+    getProgrammaticAccessCredentials_environmentId,+    getProgrammaticAccessCredentialsResponse_credentials,+    getProgrammaticAccessCredentialsResponse_durationInMinutes,+    getProgrammaticAccessCredentialsResponse_httpStatus,++    -- ** GetUser+    getUser_userId,+    getUserResponse_apiAccess,+    getUserResponse_apiAccessPrincipalArn,+    getUserResponse_createTime,+    getUserResponse_emailAddress,+    getUserResponse_firstName,+    getUserResponse_lastDisabledTime,+    getUserResponse_lastEnabledTime,+    getUserResponse_lastLoginTime,+    getUserResponse_lastModifiedTime,+    getUserResponse_lastName,+    getUserResponse_status,+    getUserResponse_type,+    getUserResponse_userId,+    getUserResponse_httpStatus,++    -- ** GetWorkingLocation+    getWorkingLocation_locationType,+    getWorkingLocationResponse_s3Bucket,+    getWorkingLocationResponse_s3Path,+    getWorkingLocationResponse_s3Uri,+    getWorkingLocationResponse_httpStatus,++    -- ** ListChangesets+    listChangesets_maxResults,+    listChangesets_nextToken,+    listChangesets_datasetId,+    listChangesetsResponse_changesets,+    listChangesetsResponse_nextToken,+    listChangesetsResponse_httpStatus,++    -- ** ListDataViews+    listDataViews_maxResults,+    listDataViews_nextToken,+    listDataViews_datasetId,+    listDataViewsResponse_dataViews,+    listDataViewsResponse_nextToken,+    listDataViewsResponse_httpStatus,++    -- ** ListDatasets+    listDatasets_maxResults,+    listDatasets_nextToken,+    listDatasetsResponse_datasets,+    listDatasetsResponse_nextToken,+    listDatasetsResponse_httpStatus,++    -- ** ListPermissionGroups+    listPermissionGroups_nextToken,+    listPermissionGroups_maxResults,+    listPermissionGroupsResponse_nextToken,+    listPermissionGroupsResponse_permissionGroups,+    listPermissionGroupsResponse_httpStatus,++    -- ** ListPermissionGroupsByUser+    listPermissionGroupsByUser_nextToken,+    listPermissionGroupsByUser_userId,+    listPermissionGroupsByUser_maxResults,+    listPermissionGroupsByUserResponse_nextToken,+    listPermissionGroupsByUserResponse_permissionGroups,+    listPermissionGroupsByUserResponse_httpStatus,++    -- ** ListUsers+    listUsers_nextToken,+    listUsers_maxResults,+    listUsersResponse_nextToken,+    listUsersResponse_users,+    listUsersResponse_httpStatus,++    -- ** ListUsersByPermissionGroup+    listUsersByPermissionGroup_nextToken,+    listUsersByPermissionGroup_permissionGroupId,+    listUsersByPermissionGroup_maxResults,+    listUsersByPermissionGroupResponse_nextToken,+    listUsersByPermissionGroupResponse_users,+    listUsersByPermissionGroupResponse_httpStatus,++    -- ** ResetUserPassword+    resetUserPassword_clientToken,+    resetUserPassword_userId,+    resetUserPasswordResponse_temporaryPassword,+    resetUserPasswordResponse_userId,+    resetUserPasswordResponse_httpStatus,++    -- ** UpdateChangeset+    updateChangeset_clientToken,+    updateChangeset_datasetId,+    updateChangeset_changesetId,+    updateChangeset_sourceParams,+    updateChangeset_formatParams,+    updateChangesetResponse_changesetId,+    updateChangesetResponse_datasetId,+    updateChangesetResponse_httpStatus,++    -- ** UpdateDataset+    updateDataset_alias,+    updateDataset_clientToken,+    updateDataset_datasetDescription,+    updateDataset_schemaDefinition,+    updateDataset_datasetId,+    updateDataset_datasetTitle,+    updateDataset_kind,+    updateDatasetResponse_datasetId,+    updateDatasetResponse_httpStatus,++    -- ** UpdatePermissionGroup+    updatePermissionGroup_applicationPermissions,+    updatePermissionGroup_clientToken,+    updatePermissionGroup_description,+    updatePermissionGroup_name,+    updatePermissionGroup_permissionGroupId,+    updatePermissionGroupResponse_permissionGroupId,+    updatePermissionGroupResponse_httpStatus,++    -- ** UpdateUser+    updateUser_apiAccess,+    updateUser_apiAccessPrincipalArn,+    updateUser_clientToken,+    updateUser_firstName,+    updateUser_lastName,+    updateUser_type,+    updateUser_userId,+    updateUserResponse_userId,+    updateUserResponse_httpStatus,++    -- * Types++    -- ** AwsCredentials+    awsCredentials_accessKeyId,+    awsCredentials_expiration,+    awsCredentials_secretAccessKey,+    awsCredentials_sessionToken,++    -- ** ChangesetErrorInfo+    changesetErrorInfo_errorCategory,+    changesetErrorInfo_errorMessage,++    -- ** ChangesetSummary+    changesetSummary_activeFromTimestamp,+    changesetSummary_activeUntilTimestamp,+    changesetSummary_changeType,+    changesetSummary_changesetArn,+    changesetSummary_changesetId,+    changesetSummary_createTime,+    changesetSummary_datasetId,+    changesetSummary_errorInfo,+    changesetSummary_formatParams,+    changesetSummary_sourceParams,+    changesetSummary_status,+    changesetSummary_updatedByChangesetId,+    changesetSummary_updatesChangesetId,++    -- ** ColumnDefinition+    columnDefinition_columnDescription,+    columnDefinition_columnName,+    columnDefinition_dataType,++    -- ** Credentials+    credentials_accessKeyId,+    credentials_secretAccessKey,+    credentials_sessionToken,++    -- ** DataViewDestinationTypeParams+    dataViewDestinationTypeParams_s3DestinationExportFileFormat,+    dataViewDestinationTypeParams_s3DestinationExportFileFormatOptions,+    dataViewDestinationTypeParams_destinationType,++    -- ** DataViewErrorInfo+    dataViewErrorInfo_errorCategory,+    dataViewErrorInfo_errorMessage,++    -- ** DataViewSummary+    dataViewSummary_asOfTimestamp,+    dataViewSummary_autoUpdate,+    dataViewSummary_createTime,+    dataViewSummary_dataViewArn,+    dataViewSummary_dataViewId,+    dataViewSummary_datasetId,+    dataViewSummary_destinationTypeProperties,+    dataViewSummary_errorInfo,+    dataViewSummary_lastModifiedTime,+    dataViewSummary_partitionColumns,+    dataViewSummary_sortColumns,+    dataViewSummary_status,++    -- ** Dataset+    dataset_alias,+    dataset_createTime,+    dataset_datasetArn,+    dataset_datasetDescription,+    dataset_datasetId,+    dataset_datasetTitle,+    dataset_kind,+    dataset_lastModifiedTime,+    dataset_ownerInfo,+    dataset_schemaDefinition,++    -- ** DatasetOwnerInfo+    datasetOwnerInfo_email,+    datasetOwnerInfo_name,+    datasetOwnerInfo_phoneNumber,++    -- ** PermissionGroup+    permissionGroup_applicationPermissions,+    permissionGroup_createTime,+    permissionGroup_description,+    permissionGroup_lastModifiedTime,+    permissionGroup_membershipStatus,+    permissionGroup_name,+    permissionGroup_permissionGroupId,++    -- ** PermissionGroupByUser+    permissionGroupByUser_membershipStatus,+    permissionGroupByUser_name,+    permissionGroupByUser_permissionGroupId,++    -- ** PermissionGroupParams+    permissionGroupParams_datasetPermissions,+    permissionGroupParams_permissionGroupId,++    -- ** ResourcePermission+    resourcePermission_permission,++    -- ** S3Location+    s3Location_bucket,+    s3Location_key,++    -- ** SchemaDefinition+    schemaDefinition_columns,+    schemaDefinition_primaryKeyColumns,++    -- ** SchemaUnion+    schemaUnion_tabularSchemaConfig,++    -- ** User+    user_apiAccess,+    user_apiAccessPrincipalArn,+    user_createTime,+    user_emailAddress,+    user_firstName,+    user_lastDisabledTime,+    user_lastEnabledTime,+    user_lastLoginTime,+    user_lastModifiedTime,+    user_lastName,+    user_status,+    user_type,+    user_userId,++    -- ** UserByPermissionGroup+    userByPermissionGroup_apiAccess,+    userByPermissionGroup_apiAccessPrincipalArn,+    userByPermissionGroup_emailAddress,+    userByPermissionGroup_firstName,+    userByPermissionGroup_lastName,+    userByPermissionGroup_membershipStatus,+    userByPermissionGroup_status,+    userByPermissionGroup_type,+    userByPermissionGroup_userId,+  )+where++import Amazonka.FinSpaceData.AssociateUserToPermissionGroup+import Amazonka.FinSpaceData.CreateChangeset+import Amazonka.FinSpaceData.CreateDataView+import Amazonka.FinSpaceData.CreateDataset+import Amazonka.FinSpaceData.CreatePermissionGroup+import Amazonka.FinSpaceData.CreateUser+import Amazonka.FinSpaceData.DeleteDataset+import Amazonka.FinSpaceData.DeletePermissionGroup+import Amazonka.FinSpaceData.DisableUser+import Amazonka.FinSpaceData.DisassociateUserFromPermissionGroup+import Amazonka.FinSpaceData.EnableUser+import Amazonka.FinSpaceData.GetChangeset+import Amazonka.FinSpaceData.GetDataView+import Amazonka.FinSpaceData.GetDataset+import Amazonka.FinSpaceData.GetExternalDataViewAccessDetails+import Amazonka.FinSpaceData.GetPermissionGroup+import Amazonka.FinSpaceData.GetProgrammaticAccessCredentials+import Amazonka.FinSpaceData.GetUser+import Amazonka.FinSpaceData.GetWorkingLocation+import Amazonka.FinSpaceData.ListChangesets+import Amazonka.FinSpaceData.ListDataViews+import Amazonka.FinSpaceData.ListDatasets+import Amazonka.FinSpaceData.ListPermissionGroups+import Amazonka.FinSpaceData.ListPermissionGroupsByUser+import Amazonka.FinSpaceData.ListUsers+import Amazonka.FinSpaceData.ListUsersByPermissionGroup+import Amazonka.FinSpaceData.ResetUserPassword+import Amazonka.FinSpaceData.Types.AwsCredentials+import Amazonka.FinSpaceData.Types.ChangesetErrorInfo+import Amazonka.FinSpaceData.Types.ChangesetSummary+import Amazonka.FinSpaceData.Types.ColumnDefinition+import Amazonka.FinSpaceData.Types.Credentials+import Amazonka.FinSpaceData.Types.DataViewDestinationTypeParams+import Amazonka.FinSpaceData.Types.DataViewErrorInfo+import Amazonka.FinSpaceData.Types.DataViewSummary+import Amazonka.FinSpaceData.Types.Dataset+import Amazonka.FinSpaceData.Types.DatasetOwnerInfo+import Amazonka.FinSpaceData.Types.PermissionGroup+import Amazonka.FinSpaceData.Types.PermissionGroupByUser+import Amazonka.FinSpaceData.Types.PermissionGroupParams+import Amazonka.FinSpaceData.Types.ResourcePermission+import Amazonka.FinSpaceData.Types.S3Location+import Amazonka.FinSpaceData.Types.SchemaDefinition+import Amazonka.FinSpaceData.Types.SchemaUnion+import Amazonka.FinSpaceData.Types.User+import Amazonka.FinSpaceData.Types.UserByPermissionGroup+import Amazonka.FinSpaceData.UpdateChangeset+import Amazonka.FinSpaceData.UpdateDataset+import Amazonka.FinSpaceData.UpdatePermissionGroup+import Amazonka.FinSpaceData.UpdateUser
+ gen/Amazonka/FinSpaceData/ListChangesets.hs view
@@ -0,0 +1,235 @@+{-# 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.FinSpaceData.ListChangesets+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the FinSpace Changesets for a Dataset.+--+-- This operation returns paginated results.+module Amazonka.FinSpaceData.ListChangesets+  ( -- * Creating a Request+    ListChangesets (..),+    newListChangesets,++    -- * Request Lenses+    listChangesets_maxResults,+    listChangesets_nextToken,+    listChangesets_datasetId,++    -- * Destructuring the Response+    ListChangesetsResponse (..),+    newListChangesetsResponse,++    -- * Response Lenses+    listChangesetsResponse_changesets,+    listChangesetsResponse_nextToken,+    listChangesetsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Request to ListChangesetsRequest. It exposes minimal query filters.+--+-- /See:/ 'newListChangesets' smart constructor.+data ListChangesets = ListChangesets'+  { -- | The maximum number of results per page.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token that indicates where a results page should begin.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the FinSpace Dataset to which the Changeset+    -- belongs.+    datasetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListChangesets' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listChangesets_maxResults' - The maximum number of results per page.+--+-- 'nextToken', 'listChangesets_nextToken' - A token that indicates where a results page should begin.+--+-- 'datasetId', 'listChangesets_datasetId' - The unique identifier for the FinSpace Dataset to which the Changeset+-- belongs.+newListChangesets ::+  -- | 'datasetId'+  Prelude.Text ->+  ListChangesets+newListChangesets pDatasetId_ =+  ListChangesets'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      datasetId = pDatasetId_+    }++-- | The maximum number of results per page.+listChangesets_maxResults :: Lens.Lens' ListChangesets (Prelude.Maybe Prelude.Natural)+listChangesets_maxResults = Lens.lens (\ListChangesets' {maxResults} -> maxResults) (\s@ListChangesets' {} a -> s {maxResults = a} :: ListChangesets)++-- | A token that indicates where a results page should begin.+listChangesets_nextToken :: Lens.Lens' ListChangesets (Prelude.Maybe Prelude.Text)+listChangesets_nextToken = Lens.lens (\ListChangesets' {nextToken} -> nextToken) (\s@ListChangesets' {} a -> s {nextToken = a} :: ListChangesets)++-- | The unique identifier for the FinSpace Dataset to which the Changeset+-- belongs.+listChangesets_datasetId :: Lens.Lens' ListChangesets Prelude.Text+listChangesets_datasetId = Lens.lens (\ListChangesets' {datasetId} -> datasetId) (\s@ListChangesets' {} a -> s {datasetId = a} :: ListChangesets)++instance Core.AWSPager ListChangesets where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listChangesetsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listChangesetsResponse_changesets+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listChangesets_nextToken+          Lens..~ rs+          Lens.^? listChangesetsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListChangesets where+  type+    AWSResponse ListChangesets =+      ListChangesetsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListChangesetsResponse'+            Prelude.<$> (x Data..?> "changesets" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListChangesets where+  hashWithSalt _salt ListChangesets' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` datasetId++instance Prelude.NFData ListChangesets where+  rnf ListChangesets' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf datasetId++instance Data.ToHeaders ListChangesets where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListChangesets where+  toPath ListChangesets' {..} =+    Prelude.mconcat+      ["/datasets/", Data.toBS datasetId, "/changesetsv2"]++instance Data.ToQuery ListChangesets where+  toQuery ListChangesets' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | Response to ListChangesetsResponse. This returns a list of dataset+-- changesets that match the query criteria.+--+-- /See:/ 'newListChangesetsResponse' smart constructor.+data ListChangesetsResponse = ListChangesetsResponse'+  { -- | List of Changesets found.+    changesets :: Prelude.Maybe [ChangesetSummary],+    -- | A token that indicates where a results page should begin.+    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 'ListChangesetsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'changesets', 'listChangesetsResponse_changesets' - List of Changesets found.+--+-- 'nextToken', 'listChangesetsResponse_nextToken' - A token that indicates where a results page should begin.+--+-- 'httpStatus', 'listChangesetsResponse_httpStatus' - The response's http status code.+newListChangesetsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListChangesetsResponse+newListChangesetsResponse pHttpStatus_ =+  ListChangesetsResponse'+    { changesets =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | List of Changesets found.+listChangesetsResponse_changesets :: Lens.Lens' ListChangesetsResponse (Prelude.Maybe [ChangesetSummary])+listChangesetsResponse_changesets = Lens.lens (\ListChangesetsResponse' {changesets} -> changesets) (\s@ListChangesetsResponse' {} a -> s {changesets = a} :: ListChangesetsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token that indicates where a results page should begin.+listChangesetsResponse_nextToken :: Lens.Lens' ListChangesetsResponse (Prelude.Maybe Prelude.Text)+listChangesetsResponse_nextToken = Lens.lens (\ListChangesetsResponse' {nextToken} -> nextToken) (\s@ListChangesetsResponse' {} a -> s {nextToken = a} :: ListChangesetsResponse)++-- | The response's http status code.+listChangesetsResponse_httpStatus :: Lens.Lens' ListChangesetsResponse Prelude.Int+listChangesetsResponse_httpStatus = Lens.lens (\ListChangesetsResponse' {httpStatus} -> httpStatus) (\s@ListChangesetsResponse' {} a -> s {httpStatus = a} :: ListChangesetsResponse)++instance Prelude.NFData ListChangesetsResponse where+  rnf ListChangesetsResponse' {..} =+    Prelude.rnf changesets+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/ListDataViews.hs view
@@ -0,0 +1,228 @@+{-# 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.FinSpaceData.ListDataViews+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all available Dataviews for a Dataset.+--+-- This operation returns paginated results.+module Amazonka.FinSpaceData.ListDataViews+  ( -- * Creating a Request+    ListDataViews (..),+    newListDataViews,++    -- * Request Lenses+    listDataViews_maxResults,+    listDataViews_nextToken,+    listDataViews_datasetId,++    -- * Destructuring the Response+    ListDataViewsResponse (..),+    newListDataViewsResponse,++    -- * Response Lenses+    listDataViewsResponse_dataViews,+    listDataViewsResponse_nextToken,+    listDataViewsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Request for a list data views.+--+-- /See:/ 'newListDataViews' smart constructor.+data ListDataViews = ListDataViews'+  { -- | The maximum number of results per page.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token that indicates where a results page should begin.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the Dataset for which to retrieve Dataviews.+    datasetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDataViews' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listDataViews_maxResults' - The maximum number of results per page.+--+-- 'nextToken', 'listDataViews_nextToken' - A token that indicates where a results page should begin.+--+-- 'datasetId', 'listDataViews_datasetId' - The unique identifier of the Dataset for which to retrieve Dataviews.+newListDataViews ::+  -- | 'datasetId'+  Prelude.Text ->+  ListDataViews+newListDataViews pDatasetId_ =+  ListDataViews'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      datasetId = pDatasetId_+    }++-- | The maximum number of results per page.+listDataViews_maxResults :: Lens.Lens' ListDataViews (Prelude.Maybe Prelude.Natural)+listDataViews_maxResults = Lens.lens (\ListDataViews' {maxResults} -> maxResults) (\s@ListDataViews' {} a -> s {maxResults = a} :: ListDataViews)++-- | A token that indicates where a results page should begin.+listDataViews_nextToken :: Lens.Lens' ListDataViews (Prelude.Maybe Prelude.Text)+listDataViews_nextToken = Lens.lens (\ListDataViews' {nextToken} -> nextToken) (\s@ListDataViews' {} a -> s {nextToken = a} :: ListDataViews)++-- | The unique identifier of the Dataset for which to retrieve Dataviews.+listDataViews_datasetId :: Lens.Lens' ListDataViews Prelude.Text+listDataViews_datasetId = Lens.lens (\ListDataViews' {datasetId} -> datasetId) (\s@ListDataViews' {} a -> s {datasetId = a} :: ListDataViews)++instance Core.AWSPager ListDataViews where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listDataViewsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listDataViewsResponse_dataViews+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listDataViews_nextToken+          Lens..~ rs+          Lens.^? listDataViewsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListDataViews where+  type+    AWSResponse ListDataViews =+      ListDataViewsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDataViewsResponse'+            Prelude.<$> (x Data..?> "dataViews" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDataViews where+  hashWithSalt _salt ListDataViews' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` datasetId++instance Prelude.NFData ListDataViews where+  rnf ListDataViews' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf datasetId++instance Data.ToHeaders ListDataViews where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListDataViews where+  toPath ListDataViews' {..} =+    Prelude.mconcat+      ["/datasets/", Data.toBS datasetId, "/dataviewsv2"]++instance Data.ToQuery ListDataViews where+  toQuery ListDataViews' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListDataViewsResponse' smart constructor.+data ListDataViewsResponse = ListDataViewsResponse'+  { -- | A list of Dataviews.+    dataViews :: Prelude.Maybe [DataViewSummary],+    -- | A token that indicates where a results page should begin.+    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 'ListDataViewsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataViews', 'listDataViewsResponse_dataViews' - A list of Dataviews.+--+-- 'nextToken', 'listDataViewsResponse_nextToken' - A token that indicates where a results page should begin.+--+-- 'httpStatus', 'listDataViewsResponse_httpStatus' - The response's http status code.+newListDataViewsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDataViewsResponse+newListDataViewsResponse pHttpStatus_ =+  ListDataViewsResponse'+    { dataViews = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of Dataviews.+listDataViewsResponse_dataViews :: Lens.Lens' ListDataViewsResponse (Prelude.Maybe [DataViewSummary])+listDataViewsResponse_dataViews = Lens.lens (\ListDataViewsResponse' {dataViews} -> dataViews) (\s@ListDataViewsResponse' {} a -> s {dataViews = a} :: ListDataViewsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token that indicates where a results page should begin.+listDataViewsResponse_nextToken :: Lens.Lens' ListDataViewsResponse (Prelude.Maybe Prelude.Text)+listDataViewsResponse_nextToken = Lens.lens (\ListDataViewsResponse' {nextToken} -> nextToken) (\s@ListDataViewsResponse' {} a -> s {nextToken = a} :: ListDataViewsResponse)++-- | The response's http status code.+listDataViewsResponse_httpStatus :: Lens.Lens' ListDataViewsResponse Prelude.Int+listDataViewsResponse_httpStatus = Lens.lens (\ListDataViewsResponse' {httpStatus} -> httpStatus) (\s@ListDataViewsResponse' {} a -> s {httpStatus = a} :: ListDataViewsResponse)++instance Prelude.NFData ListDataViewsResponse where+  rnf ListDataViewsResponse' {..} =+    Prelude.rnf dataViews+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/ListDatasets.hs view
@@ -0,0 +1,212 @@+{-# 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.FinSpaceData.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)+--+-- Lists all of the active Datasets that a user has access to.+--+-- This operation returns paginated results.+module Amazonka.FinSpaceData.ListDatasets+  ( -- * Creating a Request+    ListDatasets (..),+    newListDatasets,++    -- * Request Lenses+    listDatasets_maxResults,+    listDatasets_nextToken,++    -- * 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.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Request for the ListDatasets operation.+--+-- /See:/ 'newListDatasets' smart constructor.+data ListDatasets = ListDatasets'+  { -- | The maximum number of results per page.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token that indicates where a results page should begin.+    nextToken :: 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 per page.+--+-- 'nextToken', 'listDatasets_nextToken' - A token that indicates where a results page should begin.+newListDatasets ::+  ListDatasets+newListDatasets =+  ListDatasets'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results per page.+listDatasets_maxResults :: Lens.Lens' ListDatasets (Prelude.Maybe Prelude.Natural)+listDatasets_maxResults = Lens.lens (\ListDatasets' {maxResults} -> maxResults) (\s@ListDatasets' {} a -> s {maxResults = a} :: ListDatasets)++-- | A token that indicates where a results page should begin.+listDatasets_nextToken :: Lens.Lens' ListDatasets (Prelude.Maybe Prelude.Text)+listDatasets_nextToken = Lens.lens (\ListDatasets' {nextToken} -> nextToken) (\s@ListDatasets' {} a -> s {nextToken = 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++instance Prelude.NFData ListDatasets where+  rnf ListDatasets' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++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 "/datasetsv2"++instance Data.ToQuery ListDatasets where+  toQuery ListDatasets' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | Response for the ListDatasets operation+--+-- /See:/ 'newListDatasetsResponse' smart constructor.+data ListDatasetsResponse = ListDatasetsResponse'+  { -- | List of Datasets.+    datasets :: Prelude.Maybe [Dataset],+    -- | A token that indicates where a results page should begin.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of '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' - List of Datasets.+--+-- 'nextToken', 'listDatasetsResponse_nextToken' - A token that indicates where a results page should begin.+--+-- '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_+    }++-- | List of Datasets.+listDatasetsResponse_datasets :: Lens.Lens' ListDatasetsResponse (Prelude.Maybe [Dataset])+listDatasetsResponse_datasets = Lens.lens (\ListDatasetsResponse' {datasets} -> datasets) (\s@ListDatasetsResponse' {} a -> s {datasets = a} :: ListDatasetsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token that indicates where a results page should begin.+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/FinSpaceData/ListPermissionGroups.hs view
@@ -0,0 +1,216 @@+{-# 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.FinSpaceData.ListPermissionGroups+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all available permission groups in FinSpace.+--+-- This operation returns paginated results.+module Amazonka.FinSpaceData.ListPermissionGroups+  ( -- * Creating a Request+    ListPermissionGroups (..),+    newListPermissionGroups,++    -- * Request Lenses+    listPermissionGroups_nextToken,+    listPermissionGroups_maxResults,++    -- * Destructuring the Response+    ListPermissionGroupsResponse (..),+    newListPermissionGroupsResponse,++    -- * Response Lenses+    listPermissionGroupsResponse_nextToken,+    listPermissionGroupsResponse_permissionGroups,+    listPermissionGroupsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListPermissionGroups' smart constructor.+data ListPermissionGroups = ListPermissionGroups'+  { -- | A token that indicates where a results page should begin.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of results per page.+    maxResults :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPermissionGroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listPermissionGroups_nextToken' - A token that indicates where a results page should begin.+--+-- 'maxResults', 'listPermissionGroups_maxResults' - The maximum number of results per page.+newListPermissionGroups ::+  -- | 'maxResults'+  Prelude.Natural ->+  ListPermissionGroups+newListPermissionGroups pMaxResults_ =+  ListPermissionGroups'+    { nextToken = Prelude.Nothing,+      maxResults = pMaxResults_+    }++-- | A token that indicates where a results page should begin.+listPermissionGroups_nextToken :: Lens.Lens' ListPermissionGroups (Prelude.Maybe Prelude.Text)+listPermissionGroups_nextToken = Lens.lens (\ListPermissionGroups' {nextToken} -> nextToken) (\s@ListPermissionGroups' {} a -> s {nextToken = a} :: ListPermissionGroups)++-- | The maximum number of results per page.+listPermissionGroups_maxResults :: Lens.Lens' ListPermissionGroups Prelude.Natural+listPermissionGroups_maxResults = Lens.lens (\ListPermissionGroups' {maxResults} -> maxResults) (\s@ListPermissionGroups' {} a -> s {maxResults = a} :: ListPermissionGroups)++instance Core.AWSPager ListPermissionGroups where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listPermissionGroupsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listPermissionGroupsResponse_permissionGroups+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listPermissionGroups_nextToken+          Lens..~ rs+          Lens.^? listPermissionGroupsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListPermissionGroups where+  type+    AWSResponse ListPermissionGroups =+      ListPermissionGroupsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListPermissionGroupsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "permissionGroups"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListPermissionGroups where+  hashWithSalt _salt ListPermissionGroups' {..} =+    _salt+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` maxResults++instance Prelude.NFData ListPermissionGroups where+  rnf ListPermissionGroups' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf maxResults++instance Data.ToHeaders ListPermissionGroups where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListPermissionGroups where+  toPath = Prelude.const "/permission-group"++instance Data.ToQuery ListPermissionGroups where+  toQuery ListPermissionGroups' {..} =+    Prelude.mconcat+      [ "nextToken" Data.=: nextToken,+        "maxResults" Data.=: maxResults+      ]++-- | /See:/ 'newListPermissionGroupsResponse' smart constructor.+data ListPermissionGroupsResponse = ListPermissionGroupsResponse'+  { -- | A token that indicates where a results page should begin.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of all the permission groups.+    permissionGroups :: Prelude.Maybe [PermissionGroup],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPermissionGroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listPermissionGroupsResponse_nextToken' - A token that indicates where a results page should begin.+--+-- 'permissionGroups', 'listPermissionGroupsResponse_permissionGroups' - A list of all the permission groups.+--+-- 'httpStatus', 'listPermissionGroupsResponse_httpStatus' - The response's http status code.+newListPermissionGroupsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListPermissionGroupsResponse+newListPermissionGroupsResponse pHttpStatus_ =+  ListPermissionGroupsResponse'+    { nextToken =+        Prelude.Nothing,+      permissionGroups = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A token that indicates where a results page should begin.+listPermissionGroupsResponse_nextToken :: Lens.Lens' ListPermissionGroupsResponse (Prelude.Maybe Prelude.Text)+listPermissionGroupsResponse_nextToken = Lens.lens (\ListPermissionGroupsResponse' {nextToken} -> nextToken) (\s@ListPermissionGroupsResponse' {} a -> s {nextToken = a} :: ListPermissionGroupsResponse)++-- | A list of all the permission groups.+listPermissionGroupsResponse_permissionGroups :: Lens.Lens' ListPermissionGroupsResponse (Prelude.Maybe [PermissionGroup])+listPermissionGroupsResponse_permissionGroups = Lens.lens (\ListPermissionGroupsResponse' {permissionGroups} -> permissionGroups) (\s@ListPermissionGroupsResponse' {} a -> s {permissionGroups = a} :: ListPermissionGroupsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listPermissionGroupsResponse_httpStatus :: Lens.Lens' ListPermissionGroupsResponse Prelude.Int+listPermissionGroupsResponse_httpStatus = Lens.lens (\ListPermissionGroupsResponse' {httpStatus} -> httpStatus) (\s@ListPermissionGroupsResponse' {} a -> s {httpStatus = a} :: ListPermissionGroupsResponse)++instance Prelude.NFData ListPermissionGroupsResponse where+  rnf ListPermissionGroupsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf permissionGroups+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/ListPermissionGroupsByUser.hs view
@@ -0,0 +1,213 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FinSpaceData.ListPermissionGroupsByUser+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all the permission groups that are associated with a specific user+-- account.+module Amazonka.FinSpaceData.ListPermissionGroupsByUser+  ( -- * Creating a Request+    ListPermissionGroupsByUser (..),+    newListPermissionGroupsByUser,++    -- * Request Lenses+    listPermissionGroupsByUser_nextToken,+    listPermissionGroupsByUser_userId,+    listPermissionGroupsByUser_maxResults,++    -- * Destructuring the Response+    ListPermissionGroupsByUserResponse (..),+    newListPermissionGroupsByUserResponse,++    -- * Response Lenses+    listPermissionGroupsByUserResponse_nextToken,+    listPermissionGroupsByUserResponse_permissionGroups,+    listPermissionGroupsByUserResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListPermissionGroupsByUser' smart constructor.+data ListPermissionGroupsByUser = ListPermissionGroupsByUser'+  { -- | A token that indicates where a results page should begin.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the user.+    userId :: Prelude.Text,+    -- | The maximum number of results per page.+    maxResults :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPermissionGroupsByUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listPermissionGroupsByUser_nextToken' - A token that indicates where a results page should begin.+--+-- 'userId', 'listPermissionGroupsByUser_userId' - The unique identifier for the user.+--+-- 'maxResults', 'listPermissionGroupsByUser_maxResults' - The maximum number of results per page.+newListPermissionGroupsByUser ::+  -- | 'userId'+  Prelude.Text ->+  -- | 'maxResults'+  Prelude.Natural ->+  ListPermissionGroupsByUser+newListPermissionGroupsByUser pUserId_ pMaxResults_ =+  ListPermissionGroupsByUser'+    { nextToken =+        Prelude.Nothing,+      userId = pUserId_,+      maxResults = pMaxResults_+    }++-- | A token that indicates where a results page should begin.+listPermissionGroupsByUser_nextToken :: Lens.Lens' ListPermissionGroupsByUser (Prelude.Maybe Prelude.Text)+listPermissionGroupsByUser_nextToken = Lens.lens (\ListPermissionGroupsByUser' {nextToken} -> nextToken) (\s@ListPermissionGroupsByUser' {} a -> s {nextToken = a} :: ListPermissionGroupsByUser)++-- | The unique identifier for the user.+listPermissionGroupsByUser_userId :: Lens.Lens' ListPermissionGroupsByUser Prelude.Text+listPermissionGroupsByUser_userId = Lens.lens (\ListPermissionGroupsByUser' {userId} -> userId) (\s@ListPermissionGroupsByUser' {} a -> s {userId = a} :: ListPermissionGroupsByUser)++-- | The maximum number of results per page.+listPermissionGroupsByUser_maxResults :: Lens.Lens' ListPermissionGroupsByUser Prelude.Natural+listPermissionGroupsByUser_maxResults = Lens.lens (\ListPermissionGroupsByUser' {maxResults} -> maxResults) (\s@ListPermissionGroupsByUser' {} a -> s {maxResults = a} :: ListPermissionGroupsByUser)++instance Core.AWSRequest ListPermissionGroupsByUser where+  type+    AWSResponse ListPermissionGroupsByUser =+      ListPermissionGroupsByUserResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListPermissionGroupsByUserResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "permissionGroups"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListPermissionGroupsByUser where+  hashWithSalt _salt ListPermissionGroupsByUser' {..} =+    _salt+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` userId+      `Prelude.hashWithSalt` maxResults++instance Prelude.NFData ListPermissionGroupsByUser where+  rnf ListPermissionGroupsByUser' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf userId+      `Prelude.seq` Prelude.rnf maxResults++instance Data.ToHeaders ListPermissionGroupsByUser where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListPermissionGroupsByUser where+  toPath ListPermissionGroupsByUser' {..} =+    Prelude.mconcat+      ["/user/", Data.toBS userId, "/permission-groups"]++instance Data.ToQuery ListPermissionGroupsByUser where+  toQuery ListPermissionGroupsByUser' {..} =+    Prelude.mconcat+      [ "nextToken" Data.=: nextToken,+        "maxResults" Data.=: maxResults+      ]++-- | /See:/ 'newListPermissionGroupsByUserResponse' smart constructor.+data ListPermissionGroupsByUserResponse = ListPermissionGroupsByUserResponse'+  { -- | A token that indicates where a results page should begin.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of returned permission groups.+    permissionGroups :: Prelude.Maybe [PermissionGroupByUser],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPermissionGroupsByUserResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listPermissionGroupsByUserResponse_nextToken' - A token that indicates where a results page should begin.+--+-- 'permissionGroups', 'listPermissionGroupsByUserResponse_permissionGroups' - A list of returned permission groups.+--+-- 'httpStatus', 'listPermissionGroupsByUserResponse_httpStatus' - The response's http status code.+newListPermissionGroupsByUserResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListPermissionGroupsByUserResponse+newListPermissionGroupsByUserResponse pHttpStatus_ =+  ListPermissionGroupsByUserResponse'+    { nextToken =+        Prelude.Nothing,+      permissionGroups = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A token that indicates where a results page should begin.+listPermissionGroupsByUserResponse_nextToken :: Lens.Lens' ListPermissionGroupsByUserResponse (Prelude.Maybe Prelude.Text)+listPermissionGroupsByUserResponse_nextToken = Lens.lens (\ListPermissionGroupsByUserResponse' {nextToken} -> nextToken) (\s@ListPermissionGroupsByUserResponse' {} a -> s {nextToken = a} :: ListPermissionGroupsByUserResponse)++-- | A list of returned permission groups.+listPermissionGroupsByUserResponse_permissionGroups :: Lens.Lens' ListPermissionGroupsByUserResponse (Prelude.Maybe [PermissionGroupByUser])+listPermissionGroupsByUserResponse_permissionGroups = Lens.lens (\ListPermissionGroupsByUserResponse' {permissionGroups} -> permissionGroups) (\s@ListPermissionGroupsByUserResponse' {} a -> s {permissionGroups = a} :: ListPermissionGroupsByUserResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listPermissionGroupsByUserResponse_httpStatus :: Lens.Lens' ListPermissionGroupsByUserResponse Prelude.Int+listPermissionGroupsByUserResponse_httpStatus = Lens.lens (\ListPermissionGroupsByUserResponse' {httpStatus} -> httpStatus) (\s@ListPermissionGroupsByUserResponse' {} a -> s {httpStatus = a} :: ListPermissionGroupsByUserResponse)++instance+  Prelude.NFData+    ListPermissionGroupsByUserResponse+  where+  rnf ListPermissionGroupsByUserResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf permissionGroups+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/ListUsers.hs view
@@ -0,0 +1,210 @@+{-# 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.FinSpaceData.ListUsers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all available user accounts in FinSpace.+--+-- This operation returns paginated results.+module Amazonka.FinSpaceData.ListUsers+  ( -- * Creating a Request+    ListUsers (..),+    newListUsers,++    -- * Request Lenses+    listUsers_nextToken,+    listUsers_maxResults,++    -- * Destructuring the Response+    ListUsersResponse (..),+    newListUsersResponse,++    -- * Response Lenses+    listUsersResponse_nextToken,+    listUsersResponse_users,+    listUsersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListUsers' smart constructor.+data ListUsers = ListUsers'+  { -- | A token that indicates where a results page should begin.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of results per page.+    maxResults :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListUsers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listUsers_nextToken' - A token that indicates where a results page should begin.+--+-- 'maxResults', 'listUsers_maxResults' - The maximum number of results per page.+newListUsers ::+  -- | 'maxResults'+  Prelude.Natural ->+  ListUsers+newListUsers pMaxResults_ =+  ListUsers'+    { nextToken = Prelude.Nothing,+      maxResults = pMaxResults_+    }++-- | A token that indicates where a results page should begin.+listUsers_nextToken :: Lens.Lens' ListUsers (Prelude.Maybe Prelude.Text)+listUsers_nextToken = Lens.lens (\ListUsers' {nextToken} -> nextToken) (\s@ListUsers' {} a -> s {nextToken = a} :: ListUsers)++-- | The maximum number of results per page.+listUsers_maxResults :: Lens.Lens' ListUsers Prelude.Natural+listUsers_maxResults = Lens.lens (\ListUsers' {maxResults} -> maxResults) (\s@ListUsers' {} a -> s {maxResults = a} :: ListUsers)++instance Core.AWSPager ListUsers where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listUsersResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listUsersResponse_users+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listUsers_nextToken+          Lens..~ rs+          Lens.^? listUsersResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListUsers where+  type AWSResponse ListUsers = ListUsersResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListUsersResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "users" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListUsers where+  hashWithSalt _salt ListUsers' {..} =+    _salt+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` maxResults++instance Prelude.NFData ListUsers where+  rnf ListUsers' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf maxResults++instance Data.ToHeaders ListUsers where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListUsers where+  toPath = Prelude.const "/user"++instance Data.ToQuery ListUsers where+  toQuery ListUsers' {..} =+    Prelude.mconcat+      [ "nextToken" Data.=: nextToken,+        "maxResults" Data.=: maxResults+      ]++-- | /See:/ 'newListUsersResponse' smart constructor.+data ListUsersResponse = ListUsersResponse'+  { -- | A token that indicates where a results page should begin.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of all the user accounts.+    users :: Prelude.Maybe [User],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListUsersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listUsersResponse_nextToken' - A token that indicates where a results page should begin.+--+-- 'users', 'listUsersResponse_users' - A list of all the user accounts.+--+-- 'httpStatus', 'listUsersResponse_httpStatus' - The response's http status code.+newListUsersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListUsersResponse+newListUsersResponse pHttpStatus_ =+  ListUsersResponse'+    { nextToken = Prelude.Nothing,+      users = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A token that indicates where a results page should begin.+listUsersResponse_nextToken :: Lens.Lens' ListUsersResponse (Prelude.Maybe Prelude.Text)+listUsersResponse_nextToken = Lens.lens (\ListUsersResponse' {nextToken} -> nextToken) (\s@ListUsersResponse' {} a -> s {nextToken = a} :: ListUsersResponse)++-- | A list of all the user accounts.+listUsersResponse_users :: Lens.Lens' ListUsersResponse (Prelude.Maybe [User])+listUsersResponse_users = Lens.lens (\ListUsersResponse' {users} -> users) (\s@ListUsersResponse' {} a -> s {users = a} :: ListUsersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listUsersResponse_httpStatus :: Lens.Lens' ListUsersResponse Prelude.Int+listUsersResponse_httpStatus = Lens.lens (\ListUsersResponse' {httpStatus} -> httpStatus) (\s@ListUsersResponse' {} a -> s {httpStatus = a} :: ListUsersResponse)++instance Prelude.NFData ListUsersResponse where+  rnf ListUsersResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf users+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/ListUsersByPermissionGroup.hs view
@@ -0,0 +1,214 @@+{-# 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.FinSpaceData.ListUsersByPermissionGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists details of all the users in a specific permission group.+module Amazonka.FinSpaceData.ListUsersByPermissionGroup+  ( -- * Creating a Request+    ListUsersByPermissionGroup (..),+    newListUsersByPermissionGroup,++    -- * Request Lenses+    listUsersByPermissionGroup_nextToken,+    listUsersByPermissionGroup_permissionGroupId,+    listUsersByPermissionGroup_maxResults,++    -- * Destructuring the Response+    ListUsersByPermissionGroupResponse (..),+    newListUsersByPermissionGroupResponse,++    -- * Response Lenses+    listUsersByPermissionGroupResponse_nextToken,+    listUsersByPermissionGroupResponse_users,+    listUsersByPermissionGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListUsersByPermissionGroup' smart constructor.+data ListUsersByPermissionGroup = ListUsersByPermissionGroup'+  { -- | A token that indicates where a results page should begin.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the permission group.+    permissionGroupId :: Prelude.Text,+    -- | The maximum number of results per page.+    maxResults :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListUsersByPermissionGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listUsersByPermissionGroup_nextToken' - A token that indicates where a results page should begin.+--+-- 'permissionGroupId', 'listUsersByPermissionGroup_permissionGroupId' - The unique identifier for the permission group.+--+-- 'maxResults', 'listUsersByPermissionGroup_maxResults' - The maximum number of results per page.+newListUsersByPermissionGroup ::+  -- | 'permissionGroupId'+  Prelude.Text ->+  -- | 'maxResults'+  Prelude.Natural ->+  ListUsersByPermissionGroup+newListUsersByPermissionGroup+  pPermissionGroupId_+  pMaxResults_ =+    ListUsersByPermissionGroup'+      { nextToken =+          Prelude.Nothing,+        permissionGroupId = pPermissionGroupId_,+        maxResults = pMaxResults_+      }++-- | A token that indicates where a results page should begin.+listUsersByPermissionGroup_nextToken :: Lens.Lens' ListUsersByPermissionGroup (Prelude.Maybe Prelude.Text)+listUsersByPermissionGroup_nextToken = Lens.lens (\ListUsersByPermissionGroup' {nextToken} -> nextToken) (\s@ListUsersByPermissionGroup' {} a -> s {nextToken = a} :: ListUsersByPermissionGroup)++-- | The unique identifier for the permission group.+listUsersByPermissionGroup_permissionGroupId :: Lens.Lens' ListUsersByPermissionGroup Prelude.Text+listUsersByPermissionGroup_permissionGroupId = Lens.lens (\ListUsersByPermissionGroup' {permissionGroupId} -> permissionGroupId) (\s@ListUsersByPermissionGroup' {} a -> s {permissionGroupId = a} :: ListUsersByPermissionGroup)++-- | The maximum number of results per page.+listUsersByPermissionGroup_maxResults :: Lens.Lens' ListUsersByPermissionGroup Prelude.Natural+listUsersByPermissionGroup_maxResults = Lens.lens (\ListUsersByPermissionGroup' {maxResults} -> maxResults) (\s@ListUsersByPermissionGroup' {} a -> s {maxResults = a} :: ListUsersByPermissionGroup)++instance Core.AWSRequest ListUsersByPermissionGroup where+  type+    AWSResponse ListUsersByPermissionGroup =+      ListUsersByPermissionGroupResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListUsersByPermissionGroupResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "users" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListUsersByPermissionGroup where+  hashWithSalt _salt ListUsersByPermissionGroup' {..} =+    _salt+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` permissionGroupId+      `Prelude.hashWithSalt` maxResults++instance Prelude.NFData ListUsersByPermissionGroup where+  rnf ListUsersByPermissionGroup' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf permissionGroupId+      `Prelude.seq` Prelude.rnf maxResults++instance Data.ToHeaders ListUsersByPermissionGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListUsersByPermissionGroup where+  toPath ListUsersByPermissionGroup' {..} =+    Prelude.mconcat+      [ "/permission-group/",+        Data.toBS permissionGroupId,+        "/users"+      ]++instance Data.ToQuery ListUsersByPermissionGroup where+  toQuery ListUsersByPermissionGroup' {..} =+    Prelude.mconcat+      [ "nextToken" Data.=: nextToken,+        "maxResults" Data.=: maxResults+      ]++-- | /See:/ 'newListUsersByPermissionGroupResponse' smart constructor.+data ListUsersByPermissionGroupResponse = ListUsersByPermissionGroupResponse'+  { -- | A token that indicates where a results page should begin.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Lists details of all users in a specific permission group.+    users :: Prelude.Maybe [UserByPermissionGroup],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListUsersByPermissionGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listUsersByPermissionGroupResponse_nextToken' - A token that indicates where a results page should begin.+--+-- 'users', 'listUsersByPermissionGroupResponse_users' - Lists details of all users in a specific permission group.+--+-- 'httpStatus', 'listUsersByPermissionGroupResponse_httpStatus' - The response's http status code.+newListUsersByPermissionGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListUsersByPermissionGroupResponse+newListUsersByPermissionGroupResponse pHttpStatus_ =+  ListUsersByPermissionGroupResponse'+    { nextToken =+        Prelude.Nothing,+      users = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A token that indicates where a results page should begin.+listUsersByPermissionGroupResponse_nextToken :: Lens.Lens' ListUsersByPermissionGroupResponse (Prelude.Maybe Prelude.Text)+listUsersByPermissionGroupResponse_nextToken = Lens.lens (\ListUsersByPermissionGroupResponse' {nextToken} -> nextToken) (\s@ListUsersByPermissionGroupResponse' {} a -> s {nextToken = a} :: ListUsersByPermissionGroupResponse)++-- | Lists details of all users in a specific permission group.+listUsersByPermissionGroupResponse_users :: Lens.Lens' ListUsersByPermissionGroupResponse (Prelude.Maybe [UserByPermissionGroup])+listUsersByPermissionGroupResponse_users = Lens.lens (\ListUsersByPermissionGroupResponse' {users} -> users) (\s@ListUsersByPermissionGroupResponse' {} a -> s {users = a} :: ListUsersByPermissionGroupResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listUsersByPermissionGroupResponse_httpStatus :: Lens.Lens' ListUsersByPermissionGroupResponse Prelude.Int+listUsersByPermissionGroupResponse_httpStatus = Lens.lens (\ListUsersByPermissionGroupResponse' {httpStatus} -> httpStatus) (\s@ListUsersByPermissionGroupResponse' {} a -> s {httpStatus = a} :: ListUsersByPermissionGroupResponse)++instance+  Prelude.NFData+    ListUsersByPermissionGroupResponse+  where+  rnf ListUsersByPermissionGroupResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf users+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/ResetUserPassword.hs view
@@ -0,0 +1,203 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FinSpaceData.ResetUserPassword+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Resets the password for a specified user ID and generates a temporary+-- one. Only a superuser can reset password for other users. Resetting the+-- password immediately invalidates the previous password associated with+-- the user.+module Amazonka.FinSpaceData.ResetUserPassword+  ( -- * Creating a Request+    ResetUserPassword (..),+    newResetUserPassword,++    -- * Request Lenses+    resetUserPassword_clientToken,+    resetUserPassword_userId,++    -- * Destructuring the Response+    ResetUserPasswordResponse (..),+    newResetUserPasswordResponse,++    -- * Response Lenses+    resetUserPasswordResponse_temporaryPassword,+    resetUserPasswordResponse_userId,+    resetUserPasswordResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newResetUserPassword' smart constructor.+data ResetUserPassword = ResetUserPassword'+  { -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the user that a temporary password is requested+    -- for.+    userId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResetUserPassword' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'resetUserPassword_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'userId', 'resetUserPassword_userId' - The unique identifier of the user that a temporary password is requested+-- for.+newResetUserPassword ::+  -- | 'userId'+  Prelude.Text ->+  ResetUserPassword+newResetUserPassword pUserId_ =+  ResetUserPassword'+    { clientToken = Prelude.Nothing,+      userId = pUserId_+    }++-- | A token that ensures idempotency. This token expires in 10 minutes.+resetUserPassword_clientToken :: Lens.Lens' ResetUserPassword (Prelude.Maybe Prelude.Text)+resetUserPassword_clientToken = Lens.lens (\ResetUserPassword' {clientToken} -> clientToken) (\s@ResetUserPassword' {} a -> s {clientToken = a} :: ResetUserPassword)++-- | The unique identifier of the user that a temporary password is requested+-- for.+resetUserPassword_userId :: Lens.Lens' ResetUserPassword Prelude.Text+resetUserPassword_userId = Lens.lens (\ResetUserPassword' {userId} -> userId) (\s@ResetUserPassword' {} a -> s {userId = a} :: ResetUserPassword)++instance Core.AWSRequest ResetUserPassword where+  type+    AWSResponse ResetUserPassword =+      ResetUserPasswordResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ResetUserPasswordResponse'+            Prelude.<$> (x Data..?> "temporaryPassword")+            Prelude.<*> (x Data..?> "userId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ResetUserPassword where+  hashWithSalt _salt ResetUserPassword' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` userId++instance Prelude.NFData ResetUserPassword where+  rnf ResetUserPassword' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf userId++instance Data.ToHeaders ResetUserPassword where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ResetUserPassword where+  toJSON ResetUserPassword' {..} =+    Data.object+      ( Prelude.catMaybes+          [("clientToken" Data..=) Prelude.<$> clientToken]+      )++instance Data.ToPath ResetUserPassword where+  toPath ResetUserPassword' {..} =+    Prelude.mconcat+      ["/user/", Data.toBS userId, "/password"]++instance Data.ToQuery ResetUserPassword where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newResetUserPasswordResponse' smart constructor.+data ResetUserPasswordResponse = ResetUserPasswordResponse'+  { -- | A randomly generated temporary password for the requested user account.+    -- This password expires in 7 days.+    temporaryPassword :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The unique identifier of the user that a new password is generated for.+    userId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResetUserPasswordResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'temporaryPassword', 'resetUserPasswordResponse_temporaryPassword' - A randomly generated temporary password for the requested user account.+-- This password expires in 7 days.+--+-- 'userId', 'resetUserPasswordResponse_userId' - The unique identifier of the user that a new password is generated for.+--+-- 'httpStatus', 'resetUserPasswordResponse_httpStatus' - The response's http status code.+newResetUserPasswordResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ResetUserPasswordResponse+newResetUserPasswordResponse pHttpStatus_ =+  ResetUserPasswordResponse'+    { temporaryPassword =+        Prelude.Nothing,+      userId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A randomly generated temporary password for the requested user account.+-- This password expires in 7 days.+resetUserPasswordResponse_temporaryPassword :: Lens.Lens' ResetUserPasswordResponse (Prelude.Maybe Prelude.Text)+resetUserPasswordResponse_temporaryPassword = Lens.lens (\ResetUserPasswordResponse' {temporaryPassword} -> temporaryPassword) (\s@ResetUserPasswordResponse' {} a -> s {temporaryPassword = a} :: ResetUserPasswordResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The unique identifier of the user that a new password is generated for.+resetUserPasswordResponse_userId :: Lens.Lens' ResetUserPasswordResponse (Prelude.Maybe Prelude.Text)+resetUserPasswordResponse_userId = Lens.lens (\ResetUserPasswordResponse' {userId} -> userId) (\s@ResetUserPasswordResponse' {} a -> s {userId = a} :: ResetUserPasswordResponse)++-- | The response's http status code.+resetUserPasswordResponse_httpStatus :: Lens.Lens' ResetUserPasswordResponse Prelude.Int+resetUserPasswordResponse_httpStatus = Lens.lens (\ResetUserPasswordResponse' {httpStatus} -> httpStatus) (\s@ResetUserPasswordResponse' {} a -> s {httpStatus = a} :: ResetUserPasswordResponse)++instance Prelude.NFData ResetUserPasswordResponse where+  rnf ResetUserPasswordResponse' {..} =+    Prelude.rnf temporaryPassword+      `Prelude.seq` Prelude.rnf userId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/Types.hs view
@@ -0,0 +1,407 @@+{-# 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.FinSpaceData.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.FinSpaceData.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _LimitExceededException,+    _ResourceNotFoundException,+    _ThrottlingException,+    _ValidationException,++    -- * ApiAccess+    ApiAccess (..),++    -- * ApplicationPermission+    ApplicationPermission (..),++    -- * ChangeType+    ChangeType (..),++    -- * ColumnDataType+    ColumnDataType (..),++    -- * DataViewStatus+    DataViewStatus (..),++    -- * DatasetKind+    DatasetKind (..),++    -- * DatasetStatus+    DatasetStatus (..),++    -- * ErrorCategory+    ErrorCategory (..),++    -- * ExportFileFormat+    ExportFileFormat (..),++    -- * IngestionStatus+    IngestionStatus (..),++    -- * LocationType+    LocationType (..),++    -- * PermissionGroupMembershipStatus+    PermissionGroupMembershipStatus (..),++    -- * UserStatus+    UserStatus (..),++    -- * UserType+    UserType (..),++    -- * AwsCredentials+    AwsCredentials (..),+    newAwsCredentials,+    awsCredentials_accessKeyId,+    awsCredentials_expiration,+    awsCredentials_secretAccessKey,+    awsCredentials_sessionToken,++    -- * ChangesetErrorInfo+    ChangesetErrorInfo (..),+    newChangesetErrorInfo,+    changesetErrorInfo_errorCategory,+    changesetErrorInfo_errorMessage,++    -- * ChangesetSummary+    ChangesetSummary (..),+    newChangesetSummary,+    changesetSummary_activeFromTimestamp,+    changesetSummary_activeUntilTimestamp,+    changesetSummary_changeType,+    changesetSummary_changesetArn,+    changesetSummary_changesetId,+    changesetSummary_createTime,+    changesetSummary_datasetId,+    changesetSummary_errorInfo,+    changesetSummary_formatParams,+    changesetSummary_sourceParams,+    changesetSummary_status,+    changesetSummary_updatedByChangesetId,+    changesetSummary_updatesChangesetId,++    -- * ColumnDefinition+    ColumnDefinition (..),+    newColumnDefinition,+    columnDefinition_columnDescription,+    columnDefinition_columnName,+    columnDefinition_dataType,++    -- * Credentials+    Credentials (..),+    newCredentials,+    credentials_accessKeyId,+    credentials_secretAccessKey,+    credentials_sessionToken,++    -- * DataViewDestinationTypeParams+    DataViewDestinationTypeParams (..),+    newDataViewDestinationTypeParams,+    dataViewDestinationTypeParams_s3DestinationExportFileFormat,+    dataViewDestinationTypeParams_s3DestinationExportFileFormatOptions,+    dataViewDestinationTypeParams_destinationType,++    -- * DataViewErrorInfo+    DataViewErrorInfo (..),+    newDataViewErrorInfo,+    dataViewErrorInfo_errorCategory,+    dataViewErrorInfo_errorMessage,++    -- * DataViewSummary+    DataViewSummary (..),+    newDataViewSummary,+    dataViewSummary_asOfTimestamp,+    dataViewSummary_autoUpdate,+    dataViewSummary_createTime,+    dataViewSummary_dataViewArn,+    dataViewSummary_dataViewId,+    dataViewSummary_datasetId,+    dataViewSummary_destinationTypeProperties,+    dataViewSummary_errorInfo,+    dataViewSummary_lastModifiedTime,+    dataViewSummary_partitionColumns,+    dataViewSummary_sortColumns,+    dataViewSummary_status,++    -- * Dataset+    Dataset (..),+    newDataset,+    dataset_alias,+    dataset_createTime,+    dataset_datasetArn,+    dataset_datasetDescription,+    dataset_datasetId,+    dataset_datasetTitle,+    dataset_kind,+    dataset_lastModifiedTime,+    dataset_ownerInfo,+    dataset_schemaDefinition,++    -- * DatasetOwnerInfo+    DatasetOwnerInfo (..),+    newDatasetOwnerInfo,+    datasetOwnerInfo_email,+    datasetOwnerInfo_name,+    datasetOwnerInfo_phoneNumber,++    -- * PermissionGroup+    PermissionGroup (..),+    newPermissionGroup,+    permissionGroup_applicationPermissions,+    permissionGroup_createTime,+    permissionGroup_description,+    permissionGroup_lastModifiedTime,+    permissionGroup_membershipStatus,+    permissionGroup_name,+    permissionGroup_permissionGroupId,++    -- * PermissionGroupByUser+    PermissionGroupByUser (..),+    newPermissionGroupByUser,+    permissionGroupByUser_membershipStatus,+    permissionGroupByUser_name,+    permissionGroupByUser_permissionGroupId,++    -- * PermissionGroupParams+    PermissionGroupParams (..),+    newPermissionGroupParams,+    permissionGroupParams_datasetPermissions,+    permissionGroupParams_permissionGroupId,++    -- * ResourcePermission+    ResourcePermission (..),+    newResourcePermission,+    resourcePermission_permission,++    -- * S3Location+    S3Location (..),+    newS3Location,+    s3Location_bucket,+    s3Location_key,++    -- * SchemaDefinition+    SchemaDefinition (..),+    newSchemaDefinition,+    schemaDefinition_columns,+    schemaDefinition_primaryKeyColumns,++    -- * SchemaUnion+    SchemaUnion (..),+    newSchemaUnion,+    schemaUnion_tabularSchemaConfig,++    -- * User+    User (..),+    newUser,+    user_apiAccess,+    user_apiAccessPrincipalArn,+    user_createTime,+    user_emailAddress,+    user_firstName,+    user_lastDisabledTime,+    user_lastEnabledTime,+    user_lastLoginTime,+    user_lastModifiedTime,+    user_lastName,+    user_status,+    user_type,+    user_userId,++    -- * UserByPermissionGroup+    UserByPermissionGroup (..),+    newUserByPermissionGroup,+    userByPermissionGroup_apiAccess,+    userByPermissionGroup_apiAccessPrincipalArn,+    userByPermissionGroup_emailAddress,+    userByPermissionGroup_firstName,+    userByPermissionGroup_lastName,+    userByPermissionGroup_membershipStatus,+    userByPermissionGroup_status,+    userByPermissionGroup_type,+    userByPermissionGroup_userId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.FinSpaceData.Types.ApiAccess+import Amazonka.FinSpaceData.Types.ApplicationPermission+import Amazonka.FinSpaceData.Types.AwsCredentials+import Amazonka.FinSpaceData.Types.ChangeType+import Amazonka.FinSpaceData.Types.ChangesetErrorInfo+import Amazonka.FinSpaceData.Types.ChangesetSummary+import Amazonka.FinSpaceData.Types.ColumnDataType+import Amazonka.FinSpaceData.Types.ColumnDefinition+import Amazonka.FinSpaceData.Types.Credentials+import Amazonka.FinSpaceData.Types.DataViewDestinationTypeParams+import Amazonka.FinSpaceData.Types.DataViewErrorInfo+import Amazonka.FinSpaceData.Types.DataViewStatus+import Amazonka.FinSpaceData.Types.DataViewSummary+import Amazonka.FinSpaceData.Types.Dataset+import Amazonka.FinSpaceData.Types.DatasetKind+import Amazonka.FinSpaceData.Types.DatasetOwnerInfo+import Amazonka.FinSpaceData.Types.DatasetStatus+import Amazonka.FinSpaceData.Types.ErrorCategory+import Amazonka.FinSpaceData.Types.ExportFileFormat+import Amazonka.FinSpaceData.Types.IngestionStatus+import Amazonka.FinSpaceData.Types.LocationType+import Amazonka.FinSpaceData.Types.PermissionGroup+import Amazonka.FinSpaceData.Types.PermissionGroupByUser+import Amazonka.FinSpaceData.Types.PermissionGroupMembershipStatus+import Amazonka.FinSpaceData.Types.PermissionGroupParams+import Amazonka.FinSpaceData.Types.ResourcePermission+import Amazonka.FinSpaceData.Types.S3Location+import Amazonka.FinSpaceData.Types.SchemaDefinition+import Amazonka.FinSpaceData.Types.SchemaUnion+import Amazonka.FinSpaceData.Types.User+import Amazonka.FinSpaceData.Types.UserByPermissionGroup+import Amazonka.FinSpaceData.Types.UserStatus+import Amazonka.FinSpaceData.Types.UserType+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-07-13@ of the Amazon FinSpace Public API SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "FinSpaceData",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "finspace-api",+      Core.signingName = "finspace-api",+      Core.version = "2020-07-13",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "FinSpaceData",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | You do not have sufficient access to perform this action.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | The request conflicts with an existing resource.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | The request processing has failed because of an unknown error, exception+-- or failure.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | A limit has exceeded.+_LimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LimitExceededException =+  Core._MatchServiceError+    defaultService+    "LimitExceededException"+    Prelude.. Core.hasStatus 400++-- | One or more resources can\'t be found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | The request was denied due to request throttling.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"+    Prelude.. Core.hasStatus 429++-- | The input fails to satisfy the constraints specified by an AWS service.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/FinSpaceData/Types/ApiAccess.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.FinSpaceData.Types.ApiAccess+-- 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.FinSpaceData.Types.ApiAccess+  ( ApiAccess+      ( ..,+        ApiAccess_DISABLED,+        ApiAccess_ENABLED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ApiAccess = ApiAccess'+  { fromApiAccess ::+      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 ApiAccess_DISABLED :: ApiAccess+pattern ApiAccess_DISABLED = ApiAccess' "DISABLED"++pattern ApiAccess_ENABLED :: ApiAccess+pattern ApiAccess_ENABLED = ApiAccess' "ENABLED"++{-# COMPLETE+  ApiAccess_DISABLED,+  ApiAccess_ENABLED,+  ApiAccess'+  #-}
+ gen/Amazonka/FinSpaceData/Types/ApplicationPermission.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FinSpaceData.Types.ApplicationPermission+-- 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.FinSpaceData.Types.ApplicationPermission+  ( ApplicationPermission+      ( ..,+        ApplicationPermission_AccessNotebooks,+        ApplicationPermission_CreateDataset,+        ApplicationPermission_GetTemporaryCredentials,+        ApplicationPermission_ManageAttributeSets,+        ApplicationPermission_ManageClusters,+        ApplicationPermission_ManageUsersAndGroups,+        ApplicationPermission_ViewAuditData+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ApplicationPermission = ApplicationPermission'+  { fromApplicationPermission ::+      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 ApplicationPermission_AccessNotebooks :: ApplicationPermission+pattern ApplicationPermission_AccessNotebooks = ApplicationPermission' "AccessNotebooks"++pattern ApplicationPermission_CreateDataset :: ApplicationPermission+pattern ApplicationPermission_CreateDataset = ApplicationPermission' "CreateDataset"++pattern ApplicationPermission_GetTemporaryCredentials :: ApplicationPermission+pattern ApplicationPermission_GetTemporaryCredentials = ApplicationPermission' "GetTemporaryCredentials"++pattern ApplicationPermission_ManageAttributeSets :: ApplicationPermission+pattern ApplicationPermission_ManageAttributeSets = ApplicationPermission' "ManageAttributeSets"++pattern ApplicationPermission_ManageClusters :: ApplicationPermission+pattern ApplicationPermission_ManageClusters = ApplicationPermission' "ManageClusters"++pattern ApplicationPermission_ManageUsersAndGroups :: ApplicationPermission+pattern ApplicationPermission_ManageUsersAndGroups = ApplicationPermission' "ManageUsersAndGroups"++pattern ApplicationPermission_ViewAuditData :: ApplicationPermission+pattern ApplicationPermission_ViewAuditData = ApplicationPermission' "ViewAuditData"++{-# COMPLETE+  ApplicationPermission_AccessNotebooks,+  ApplicationPermission_CreateDataset,+  ApplicationPermission_GetTemporaryCredentials,+  ApplicationPermission_ManageAttributeSets,+  ApplicationPermission_ManageClusters,+  ApplicationPermission_ManageUsersAndGroups,+  ApplicationPermission_ViewAuditData,+  ApplicationPermission'+  #-}
+ gen/Amazonka/FinSpaceData/Types/AwsCredentials.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FinSpaceData.Types.AwsCredentials+-- 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.FinSpaceData.Types.AwsCredentials 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 credentials required to access the external Dataview from the S3+-- location.+--+-- /See:/ 'newAwsCredentials' smart constructor.+data AwsCredentials = AwsCredentials'+  { -- | The unique identifier for the security credentials.+    accessKeyId :: Prelude.Maybe Prelude.Text,+    -- | The Epoch time when the current credentials expire.+    expiration :: Prelude.Maybe Prelude.Integer,+    -- | The secret access key that can be used to sign requests.+    secretAccessKey :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The token that users must pass to use the credentials.+    sessionToken :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AwsCredentials' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessKeyId', 'awsCredentials_accessKeyId' - The unique identifier for the security credentials.+--+-- 'expiration', 'awsCredentials_expiration' - The Epoch time when the current credentials expire.+--+-- 'secretAccessKey', 'awsCredentials_secretAccessKey' - The secret access key that can be used to sign requests.+--+-- 'sessionToken', 'awsCredentials_sessionToken' - The token that users must pass to use the credentials.+newAwsCredentials ::+  AwsCredentials+newAwsCredentials =+  AwsCredentials'+    { accessKeyId = Prelude.Nothing,+      expiration = Prelude.Nothing,+      secretAccessKey = Prelude.Nothing,+      sessionToken = Prelude.Nothing+    }++-- | The unique identifier for the security credentials.+awsCredentials_accessKeyId :: Lens.Lens' AwsCredentials (Prelude.Maybe Prelude.Text)+awsCredentials_accessKeyId = Lens.lens (\AwsCredentials' {accessKeyId} -> accessKeyId) (\s@AwsCredentials' {} a -> s {accessKeyId = a} :: AwsCredentials)++-- | The Epoch time when the current credentials expire.+awsCredentials_expiration :: Lens.Lens' AwsCredentials (Prelude.Maybe Prelude.Integer)+awsCredentials_expiration = Lens.lens (\AwsCredentials' {expiration} -> expiration) (\s@AwsCredentials' {} a -> s {expiration = a} :: AwsCredentials)++-- | The secret access key that can be used to sign requests.+awsCredentials_secretAccessKey :: Lens.Lens' AwsCredentials (Prelude.Maybe Prelude.Text)+awsCredentials_secretAccessKey = Lens.lens (\AwsCredentials' {secretAccessKey} -> secretAccessKey) (\s@AwsCredentials' {} a -> s {secretAccessKey = a} :: AwsCredentials) Prelude.. Lens.mapping Data._Sensitive++-- | The token that users must pass to use the credentials.+awsCredentials_sessionToken :: Lens.Lens' AwsCredentials (Prelude.Maybe Prelude.Text)+awsCredentials_sessionToken = Lens.lens (\AwsCredentials' {sessionToken} -> sessionToken) (\s@AwsCredentials' {} a -> s {sessionToken = a} :: AwsCredentials) Prelude.. Lens.mapping Data._Sensitive++instance Data.FromJSON AwsCredentials where+  parseJSON =+    Data.withObject+      "AwsCredentials"+      ( \x ->+          AwsCredentials'+            Prelude.<$> (x Data..:? "accessKeyId")+            Prelude.<*> (x Data..:? "expiration")+            Prelude.<*> (x Data..:? "secretAccessKey")+            Prelude.<*> (x Data..:? "sessionToken")+      )++instance Prelude.Hashable AwsCredentials where+  hashWithSalt _salt AwsCredentials' {..} =+    _salt+      `Prelude.hashWithSalt` accessKeyId+      `Prelude.hashWithSalt` expiration+      `Prelude.hashWithSalt` secretAccessKey+      `Prelude.hashWithSalt` sessionToken++instance Prelude.NFData AwsCredentials where+  rnf AwsCredentials' {..} =+    Prelude.rnf accessKeyId+      `Prelude.seq` Prelude.rnf expiration+      `Prelude.seq` Prelude.rnf secretAccessKey+      `Prelude.seq` Prelude.rnf sessionToken
+ gen/Amazonka/FinSpaceData/Types/ChangeType.hs view
@@ -0,0 +1,77 @@+{-# 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.FinSpaceData.Types.ChangeType+-- 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.FinSpaceData.Types.ChangeType+  ( ChangeType+      ( ..,+        ChangeType_APPEND,+        ChangeType_MODIFY,+        ChangeType_REPLACE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Indicates how the given change will be applied to the dataset.+newtype ChangeType = ChangeType'+  { fromChangeType ::+      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 ChangeType_APPEND :: ChangeType+pattern ChangeType_APPEND = ChangeType' "APPEND"++pattern ChangeType_MODIFY :: ChangeType+pattern ChangeType_MODIFY = ChangeType' "MODIFY"++pattern ChangeType_REPLACE :: ChangeType+pattern ChangeType_REPLACE = ChangeType' "REPLACE"++{-# COMPLETE+  ChangeType_APPEND,+  ChangeType_MODIFY,+  ChangeType_REPLACE,+  ChangeType'+  #-}
+ gen/Amazonka/FinSpaceData/Types/ChangesetErrorInfo.hs view
@@ -0,0 +1,149 @@+{-# 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.FinSpaceData.Types.ChangesetErrorInfo+-- 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.FinSpaceData.Types.ChangesetErrorInfo where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types.ErrorCategory+import qualified Amazonka.Prelude as Prelude++-- | The structure with error messages.+--+-- /See:/ 'newChangesetErrorInfo' smart constructor.+data ChangesetErrorInfo = ChangesetErrorInfo'+  { -- | The category of the error.+    --+    -- -   @VALIDATION@ – The inputs to this request are invalid.+    --+    -- -   @SERVICE_QUOTA_EXCEEDED@ – Service quotas have been exceeded. Please+    --     contact AWS support to increase quotas.+    --+    -- -   @ACCESS_DENIED@ – Missing required permission to perform this+    --     request.+    --+    -- -   @RESOURCE_NOT_FOUND@ – One or more inputs to this request were not+    --     found.+    --+    -- -   @THROTTLING@ – The system temporarily lacks sufficient resources to+    --     process the request.+    --+    -- -   @INTERNAL_SERVICE_EXCEPTION@ – An internal service error has+    --     occurred.+    --+    -- -   @CANCELLED@ – Cancelled.+    --+    -- -   @USER_RECOVERABLE@ – A user recoverable error has occurred.+    errorCategory :: Prelude.Maybe ErrorCategory,+    -- | The text of the error message.+    errorMessage :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ChangesetErrorInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errorCategory', 'changesetErrorInfo_errorCategory' - The category of the error.+--+-- -   @VALIDATION@ – The inputs to this request are invalid.+--+-- -   @SERVICE_QUOTA_EXCEEDED@ – Service quotas have been exceeded. Please+--     contact AWS support to increase quotas.+--+-- -   @ACCESS_DENIED@ – Missing required permission to perform this+--     request.+--+-- -   @RESOURCE_NOT_FOUND@ – One or more inputs to this request were not+--     found.+--+-- -   @THROTTLING@ – The system temporarily lacks sufficient resources to+--     process the request.+--+-- -   @INTERNAL_SERVICE_EXCEPTION@ – An internal service error has+--     occurred.+--+-- -   @CANCELLED@ – Cancelled.+--+-- -   @USER_RECOVERABLE@ – A user recoverable error has occurred.+--+-- 'errorMessage', 'changesetErrorInfo_errorMessage' - The text of the error message.+newChangesetErrorInfo ::+  ChangesetErrorInfo+newChangesetErrorInfo =+  ChangesetErrorInfo'+    { errorCategory =+        Prelude.Nothing,+      errorMessage = Prelude.Nothing+    }++-- | The category of the error.+--+-- -   @VALIDATION@ – The inputs to this request are invalid.+--+-- -   @SERVICE_QUOTA_EXCEEDED@ – Service quotas have been exceeded. Please+--     contact AWS support to increase quotas.+--+-- -   @ACCESS_DENIED@ – Missing required permission to perform this+--     request.+--+-- -   @RESOURCE_NOT_FOUND@ – One or more inputs to this request were not+--     found.+--+-- -   @THROTTLING@ – The system temporarily lacks sufficient resources to+--     process the request.+--+-- -   @INTERNAL_SERVICE_EXCEPTION@ – An internal service error has+--     occurred.+--+-- -   @CANCELLED@ – Cancelled.+--+-- -   @USER_RECOVERABLE@ – A user recoverable error has occurred.+changesetErrorInfo_errorCategory :: Lens.Lens' ChangesetErrorInfo (Prelude.Maybe ErrorCategory)+changesetErrorInfo_errorCategory = Lens.lens (\ChangesetErrorInfo' {errorCategory} -> errorCategory) (\s@ChangesetErrorInfo' {} a -> s {errorCategory = a} :: ChangesetErrorInfo)++-- | The text of the error message.+changesetErrorInfo_errorMessage :: Lens.Lens' ChangesetErrorInfo (Prelude.Maybe Prelude.Text)+changesetErrorInfo_errorMessage = Lens.lens (\ChangesetErrorInfo' {errorMessage} -> errorMessage) (\s@ChangesetErrorInfo' {} a -> s {errorMessage = a} :: ChangesetErrorInfo)++instance Data.FromJSON ChangesetErrorInfo where+  parseJSON =+    Data.withObject+      "ChangesetErrorInfo"+      ( \x ->+          ChangesetErrorInfo'+            Prelude.<$> (x Data..:? "errorCategory")+            Prelude.<*> (x Data..:? "errorMessage")+      )++instance Prelude.Hashable ChangesetErrorInfo where+  hashWithSalt _salt ChangesetErrorInfo' {..} =+    _salt+      `Prelude.hashWithSalt` errorCategory+      `Prelude.hashWithSalt` errorMessage++instance Prelude.NFData ChangesetErrorInfo where+  rnf ChangesetErrorInfo' {..} =+    Prelude.rnf errorCategory+      `Prelude.seq` Prelude.rnf errorMessage
+ gen/Amazonka/FinSpaceData/Types/ChangesetSummary.hs view
@@ -0,0 +1,298 @@+{-# 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.FinSpaceData.Types.ChangesetSummary+-- 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.FinSpaceData.Types.ChangesetSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types.ChangeType+import Amazonka.FinSpaceData.Types.ChangesetErrorInfo+import Amazonka.FinSpaceData.Types.IngestionStatus+import qualified Amazonka.Prelude as Prelude++-- | A Changeset is unit of data in a Dataset.+--+-- /See:/ 'newChangesetSummary' smart constructor.+data ChangesetSummary = ChangesetSummary'+  { -- | Beginning time from which the Changeset is active. The value is+    -- determined as epoch time in milliseconds. For example, the value for+    -- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+    activeFromTimestamp :: Prelude.Maybe Prelude.Integer,+    -- | Time until which the Changeset is active. The value is determined as+    -- epoch time in milliseconds. For example, the value for Monday, November+    -- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+    activeUntilTimestamp :: Prelude.Maybe Prelude.Integer,+    -- | Type that indicates how a Changeset is applied to a Dataset.+    --+    -- -   @REPLACE@ – Changeset is considered as a replacement to all prior+    --     loaded Changesets.+    --+    -- -   @APPEND@ – Changeset is considered as an addition to the end of all+    --     prior loaded Changesets.+    --+    -- -   @MODIFY@ – Changeset is considered as a replacement to a specific+    --     prior ingested Changeset.+    changeType :: Prelude.Maybe ChangeType,+    -- | The ARN identifier of the Changeset.+    changesetArn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for a Changeset.+    changesetId :: Prelude.Maybe Prelude.Text,+    -- | The timestamp at which the Changeset was created in FinSpace. The value+    -- is determined as epoch time in milliseconds. For example, the value for+    -- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+    createTime :: Prelude.Maybe Prelude.Integer,+    -- | The unique identifier for the FinSpace Dataset in which the Changeset is+    -- created.+    datasetId :: Prelude.Maybe Prelude.Text,+    -- | The structure with error messages.+    errorInfo :: Prelude.Maybe ChangesetErrorInfo,+    -- | Options that define the structure of the source file(s).+    formatParams :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Options that define the location of the data being ingested.+    sourceParams :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Status of the Changeset ingestion.+    --+    -- -   @PENDING@ – Changeset is pending creation.+    --+    -- -   @FAILED@ – Changeset creation has failed.+    --+    -- -   @SUCCESS@ – Changeset creation has succeeded.+    --+    -- -   @RUNNING@ – Changeset creation is running.+    --+    -- -   @STOP_REQUESTED@ – User requested Changeset creation to stop.+    status :: Prelude.Maybe IngestionStatus,+    -- | The unique identifier of the updated Changeset.+    updatedByChangesetId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the Changeset that is updated.+    updatesChangesetId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ChangesetSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'activeFromTimestamp', 'changesetSummary_activeFromTimestamp' - Beginning time from which the Changeset is active. The value is+-- determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'activeUntilTimestamp', 'changesetSummary_activeUntilTimestamp' - Time until which the Changeset is active. The value is determined as+-- epoch time in milliseconds. For example, the value for Monday, November+-- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'changeType', 'changesetSummary_changeType' - Type that indicates how a Changeset is applied to a Dataset.+--+-- -   @REPLACE@ – Changeset is considered as a replacement to all prior+--     loaded Changesets.+--+-- -   @APPEND@ – Changeset is considered as an addition to the end of all+--     prior loaded Changesets.+--+-- -   @MODIFY@ – Changeset is considered as a replacement to a specific+--     prior ingested Changeset.+--+-- 'changesetArn', 'changesetSummary_changesetArn' - The ARN identifier of the Changeset.+--+-- 'changesetId', 'changesetSummary_changesetId' - The unique identifier for a Changeset.+--+-- 'createTime', 'changesetSummary_createTime' - The timestamp at which the Changeset was created in FinSpace. The value+-- is determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'datasetId', 'changesetSummary_datasetId' - The unique identifier for the FinSpace Dataset in which the Changeset is+-- created.+--+-- 'errorInfo', 'changesetSummary_errorInfo' - The structure with error messages.+--+-- 'formatParams', 'changesetSummary_formatParams' - Options that define the structure of the source file(s).+--+-- 'sourceParams', 'changesetSummary_sourceParams' - Options that define the location of the data being ingested.+--+-- 'status', 'changesetSummary_status' - Status of the Changeset ingestion.+--+-- -   @PENDING@ – Changeset is pending creation.+--+-- -   @FAILED@ – Changeset creation has failed.+--+-- -   @SUCCESS@ – Changeset creation has succeeded.+--+-- -   @RUNNING@ – Changeset creation is running.+--+-- -   @STOP_REQUESTED@ – User requested Changeset creation to stop.+--+-- 'updatedByChangesetId', 'changesetSummary_updatedByChangesetId' - The unique identifier of the updated Changeset.+--+-- 'updatesChangesetId', 'changesetSummary_updatesChangesetId' - The unique identifier of the Changeset that is updated.+newChangesetSummary ::+  ChangesetSummary+newChangesetSummary =+  ChangesetSummary'+    { activeFromTimestamp =+        Prelude.Nothing,+      activeUntilTimestamp = Prelude.Nothing,+      changeType = Prelude.Nothing,+      changesetArn = Prelude.Nothing,+      changesetId = Prelude.Nothing,+      createTime = Prelude.Nothing,+      datasetId = Prelude.Nothing,+      errorInfo = Prelude.Nothing,+      formatParams = Prelude.Nothing,+      sourceParams = Prelude.Nothing,+      status = Prelude.Nothing,+      updatedByChangesetId = Prelude.Nothing,+      updatesChangesetId = Prelude.Nothing+    }++-- | Beginning time from which the Changeset is active. The value is+-- determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+changesetSummary_activeFromTimestamp :: Lens.Lens' ChangesetSummary (Prelude.Maybe Prelude.Integer)+changesetSummary_activeFromTimestamp = Lens.lens (\ChangesetSummary' {activeFromTimestamp} -> activeFromTimestamp) (\s@ChangesetSummary' {} a -> s {activeFromTimestamp = a} :: ChangesetSummary)++-- | Time until which the Changeset is active. The value is determined as+-- epoch time in milliseconds. For example, the value for Monday, November+-- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+changesetSummary_activeUntilTimestamp :: Lens.Lens' ChangesetSummary (Prelude.Maybe Prelude.Integer)+changesetSummary_activeUntilTimestamp = Lens.lens (\ChangesetSummary' {activeUntilTimestamp} -> activeUntilTimestamp) (\s@ChangesetSummary' {} a -> s {activeUntilTimestamp = a} :: ChangesetSummary)++-- | Type that indicates how a Changeset is applied to a Dataset.+--+-- -   @REPLACE@ – Changeset is considered as a replacement to all prior+--     loaded Changesets.+--+-- -   @APPEND@ – Changeset is considered as an addition to the end of all+--     prior loaded Changesets.+--+-- -   @MODIFY@ – Changeset is considered as a replacement to a specific+--     prior ingested Changeset.+changesetSummary_changeType :: Lens.Lens' ChangesetSummary (Prelude.Maybe ChangeType)+changesetSummary_changeType = Lens.lens (\ChangesetSummary' {changeType} -> changeType) (\s@ChangesetSummary' {} a -> s {changeType = a} :: ChangesetSummary)++-- | The ARN identifier of the Changeset.+changesetSummary_changesetArn :: Lens.Lens' ChangesetSummary (Prelude.Maybe Prelude.Text)+changesetSummary_changesetArn = Lens.lens (\ChangesetSummary' {changesetArn} -> changesetArn) (\s@ChangesetSummary' {} a -> s {changesetArn = a} :: ChangesetSummary)++-- | The unique identifier for a Changeset.+changesetSummary_changesetId :: Lens.Lens' ChangesetSummary (Prelude.Maybe Prelude.Text)+changesetSummary_changesetId = Lens.lens (\ChangesetSummary' {changesetId} -> changesetId) (\s@ChangesetSummary' {} a -> s {changesetId = a} :: ChangesetSummary)++-- | The timestamp at which the Changeset was created in FinSpace. The value+-- is determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+changesetSummary_createTime :: Lens.Lens' ChangesetSummary (Prelude.Maybe Prelude.Integer)+changesetSummary_createTime = Lens.lens (\ChangesetSummary' {createTime} -> createTime) (\s@ChangesetSummary' {} a -> s {createTime = a} :: ChangesetSummary)++-- | The unique identifier for the FinSpace Dataset in which the Changeset is+-- created.+changesetSummary_datasetId :: Lens.Lens' ChangesetSummary (Prelude.Maybe Prelude.Text)+changesetSummary_datasetId = Lens.lens (\ChangesetSummary' {datasetId} -> datasetId) (\s@ChangesetSummary' {} a -> s {datasetId = a} :: ChangesetSummary)++-- | The structure with error messages.+changesetSummary_errorInfo :: Lens.Lens' ChangesetSummary (Prelude.Maybe ChangesetErrorInfo)+changesetSummary_errorInfo = Lens.lens (\ChangesetSummary' {errorInfo} -> errorInfo) (\s@ChangesetSummary' {} a -> s {errorInfo = a} :: ChangesetSummary)++-- | Options that define the structure of the source file(s).+changesetSummary_formatParams :: Lens.Lens' ChangesetSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+changesetSummary_formatParams = Lens.lens (\ChangesetSummary' {formatParams} -> formatParams) (\s@ChangesetSummary' {} a -> s {formatParams = a} :: ChangesetSummary) Prelude.. Lens.mapping Lens.coerced++-- | Options that define the location of the data being ingested.+changesetSummary_sourceParams :: Lens.Lens' ChangesetSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+changesetSummary_sourceParams = Lens.lens (\ChangesetSummary' {sourceParams} -> sourceParams) (\s@ChangesetSummary' {} a -> s {sourceParams = a} :: ChangesetSummary) Prelude.. Lens.mapping Lens.coerced++-- | Status of the Changeset ingestion.+--+-- -   @PENDING@ – Changeset is pending creation.+--+-- -   @FAILED@ – Changeset creation has failed.+--+-- -   @SUCCESS@ – Changeset creation has succeeded.+--+-- -   @RUNNING@ – Changeset creation is running.+--+-- -   @STOP_REQUESTED@ – User requested Changeset creation to stop.+changesetSummary_status :: Lens.Lens' ChangesetSummary (Prelude.Maybe IngestionStatus)+changesetSummary_status = Lens.lens (\ChangesetSummary' {status} -> status) (\s@ChangesetSummary' {} a -> s {status = a} :: ChangesetSummary)++-- | The unique identifier of the updated Changeset.+changesetSummary_updatedByChangesetId :: Lens.Lens' ChangesetSummary (Prelude.Maybe Prelude.Text)+changesetSummary_updatedByChangesetId = Lens.lens (\ChangesetSummary' {updatedByChangesetId} -> updatedByChangesetId) (\s@ChangesetSummary' {} a -> s {updatedByChangesetId = a} :: ChangesetSummary)++-- | The unique identifier of the Changeset that is updated.+changesetSummary_updatesChangesetId :: Lens.Lens' ChangesetSummary (Prelude.Maybe Prelude.Text)+changesetSummary_updatesChangesetId = Lens.lens (\ChangesetSummary' {updatesChangesetId} -> updatesChangesetId) (\s@ChangesetSummary' {} a -> s {updatesChangesetId = a} :: ChangesetSummary)++instance Data.FromJSON ChangesetSummary where+  parseJSON =+    Data.withObject+      "ChangesetSummary"+      ( \x ->+          ChangesetSummary'+            Prelude.<$> (x Data..:? "activeFromTimestamp")+            Prelude.<*> (x Data..:? "activeUntilTimestamp")+            Prelude.<*> (x Data..:? "changeType")+            Prelude.<*> (x Data..:? "changesetArn")+            Prelude.<*> (x Data..:? "changesetId")+            Prelude.<*> (x Data..:? "createTime")+            Prelude.<*> (x Data..:? "datasetId")+            Prelude.<*> (x Data..:? "errorInfo")+            Prelude.<*> (x Data..:? "formatParams" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "sourceParams" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "updatedByChangesetId")+            Prelude.<*> (x Data..:? "updatesChangesetId")+      )++instance Prelude.Hashable ChangesetSummary where+  hashWithSalt _salt ChangesetSummary' {..} =+    _salt+      `Prelude.hashWithSalt` activeFromTimestamp+      `Prelude.hashWithSalt` activeUntilTimestamp+      `Prelude.hashWithSalt` changeType+      `Prelude.hashWithSalt` changesetArn+      `Prelude.hashWithSalt` changesetId+      `Prelude.hashWithSalt` createTime+      `Prelude.hashWithSalt` datasetId+      `Prelude.hashWithSalt` errorInfo+      `Prelude.hashWithSalt` formatParams+      `Prelude.hashWithSalt` sourceParams+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` updatedByChangesetId+      `Prelude.hashWithSalt` updatesChangesetId++instance Prelude.NFData ChangesetSummary where+  rnf ChangesetSummary' {..} =+    Prelude.rnf activeFromTimestamp+      `Prelude.seq` Prelude.rnf activeUntilTimestamp+      `Prelude.seq` Prelude.rnf changeType+      `Prelude.seq` Prelude.rnf changesetArn+      `Prelude.seq` Prelude.rnf changesetId+      `Prelude.seq` Prelude.rnf createTime+      `Prelude.seq` Prelude.rnf datasetId+      `Prelude.seq` Prelude.rnf errorInfo+      `Prelude.seq` Prelude.rnf formatParams+      `Prelude.seq` Prelude.rnf sourceParams+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf updatedByChangesetId+      `Prelude.seq` Prelude.rnf updatesChangesetId
+ gen/Amazonka/FinSpaceData/Types/ColumnDataType.hs view
@@ -0,0 +1,122 @@+{-# 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.FinSpaceData.Types.ColumnDataType+-- 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.FinSpaceData.Types.ColumnDataType+  ( ColumnDataType+      ( ..,+        ColumnDataType_BIGINT,+        ColumnDataType_BINARY,+        ColumnDataType_BOOLEAN,+        ColumnDataType_CHAR,+        ColumnDataType_DATE,+        ColumnDataType_DATETIME,+        ColumnDataType_DOUBLE,+        ColumnDataType_FLOAT,+        ColumnDataType_INTEGER,+        ColumnDataType_SMALLINT,+        ColumnDataType_STRING,+        ColumnDataType_TINYINT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Data type of a column.+newtype ColumnDataType = ColumnDataType'+  { fromColumnDataType ::+      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 ColumnDataType_BIGINT :: ColumnDataType+pattern ColumnDataType_BIGINT = ColumnDataType' "BIGINT"++pattern ColumnDataType_BINARY :: ColumnDataType+pattern ColumnDataType_BINARY = ColumnDataType' "BINARY"++pattern ColumnDataType_BOOLEAN :: ColumnDataType+pattern ColumnDataType_BOOLEAN = ColumnDataType' "BOOLEAN"++pattern ColumnDataType_CHAR :: ColumnDataType+pattern ColumnDataType_CHAR = ColumnDataType' "CHAR"++pattern ColumnDataType_DATE :: ColumnDataType+pattern ColumnDataType_DATE = ColumnDataType' "DATE"++pattern ColumnDataType_DATETIME :: ColumnDataType+pattern ColumnDataType_DATETIME = ColumnDataType' "DATETIME"++pattern ColumnDataType_DOUBLE :: ColumnDataType+pattern ColumnDataType_DOUBLE = ColumnDataType' "DOUBLE"++pattern ColumnDataType_FLOAT :: ColumnDataType+pattern ColumnDataType_FLOAT = ColumnDataType' "FLOAT"++pattern ColumnDataType_INTEGER :: ColumnDataType+pattern ColumnDataType_INTEGER = ColumnDataType' "INTEGER"++pattern ColumnDataType_SMALLINT :: ColumnDataType+pattern ColumnDataType_SMALLINT = ColumnDataType' "SMALLINT"++pattern ColumnDataType_STRING :: ColumnDataType+pattern ColumnDataType_STRING = ColumnDataType' "STRING"++pattern ColumnDataType_TINYINT :: ColumnDataType+pattern ColumnDataType_TINYINT = ColumnDataType' "TINYINT"++{-# COMPLETE+  ColumnDataType_BIGINT,+  ColumnDataType_BINARY,+  ColumnDataType_BOOLEAN,+  ColumnDataType_CHAR,+  ColumnDataType_DATE,+  ColumnDataType_DATETIME,+  ColumnDataType_DOUBLE,+  ColumnDataType_FLOAT,+  ColumnDataType_INTEGER,+  ColumnDataType_SMALLINT,+  ColumnDataType_STRING,+  ColumnDataType_TINYINT,+  ColumnDataType'+  #-}
+ gen/Amazonka/FinSpaceData/Types/ColumnDefinition.hs view
@@ -0,0 +1,181 @@+{-# 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.FinSpaceData.Types.ColumnDefinition+-- 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.FinSpaceData.Types.ColumnDefinition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types.ColumnDataType+import qualified Amazonka.Prelude as Prelude++-- | The definition of a column in a tabular Dataset.+--+-- /See:/ 'newColumnDefinition' smart constructor.+data ColumnDefinition = ColumnDefinition'+  { -- | Description for a column.+    columnDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of a column.+    columnName :: Prelude.Maybe Prelude.Text,+    -- | Data type of a column.+    --+    -- -   @STRING@ – A String data type.+    --+    --     @CHAR@ – A char data type.+    --+    --     @INTEGER@ – An integer data type.+    --+    --     @TINYINT@ – A tinyint data type.+    --+    --     @SMALLINT@ – A smallint data type.+    --+    --     @BIGINT@ – A bigint data type.+    --+    --     @FLOAT@ – A float data type.+    --+    --     @DOUBLE@ – A double data type.+    --+    --     @DATE@ – A date data type.+    --+    --     @DATETIME@ – A datetime data type.+    --+    --     @BOOLEAN@ – A boolean data type.+    --+    --     @BINARY@ – A binary data type.+    dataType :: Prelude.Maybe ColumnDataType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ColumnDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'columnDescription', 'columnDefinition_columnDescription' - Description for a column.+--+-- 'columnName', 'columnDefinition_columnName' - The name of a column.+--+-- 'dataType', 'columnDefinition_dataType' - Data type of a column.+--+-- -   @STRING@ – A String data type.+--+--     @CHAR@ – A char data type.+--+--     @INTEGER@ – An integer data type.+--+--     @TINYINT@ – A tinyint data type.+--+--     @SMALLINT@ – A smallint data type.+--+--     @BIGINT@ – A bigint data type.+--+--     @FLOAT@ – A float data type.+--+--     @DOUBLE@ – A double data type.+--+--     @DATE@ – A date data type.+--+--     @DATETIME@ – A datetime data type.+--+--     @BOOLEAN@ – A boolean data type.+--+--     @BINARY@ – A binary data type.+newColumnDefinition ::+  ColumnDefinition+newColumnDefinition =+  ColumnDefinition'+    { columnDescription =+        Prelude.Nothing,+      columnName = Prelude.Nothing,+      dataType = Prelude.Nothing+    }++-- | Description for a column.+columnDefinition_columnDescription :: Lens.Lens' ColumnDefinition (Prelude.Maybe Prelude.Text)+columnDefinition_columnDescription = Lens.lens (\ColumnDefinition' {columnDescription} -> columnDescription) (\s@ColumnDefinition' {} a -> s {columnDescription = a} :: ColumnDefinition)++-- | The name of a column.+columnDefinition_columnName :: Lens.Lens' ColumnDefinition (Prelude.Maybe Prelude.Text)+columnDefinition_columnName = Lens.lens (\ColumnDefinition' {columnName} -> columnName) (\s@ColumnDefinition' {} a -> s {columnName = a} :: ColumnDefinition)++-- | Data type of a column.+--+-- -   @STRING@ – A String data type.+--+--     @CHAR@ – A char data type.+--+--     @INTEGER@ – An integer data type.+--+--     @TINYINT@ – A tinyint data type.+--+--     @SMALLINT@ – A smallint data type.+--+--     @BIGINT@ – A bigint data type.+--+--     @FLOAT@ – A float data type.+--+--     @DOUBLE@ – A double data type.+--+--     @DATE@ – A date data type.+--+--     @DATETIME@ – A datetime data type.+--+--     @BOOLEAN@ – A boolean data type.+--+--     @BINARY@ – A binary data type.+columnDefinition_dataType :: Lens.Lens' ColumnDefinition (Prelude.Maybe ColumnDataType)+columnDefinition_dataType = Lens.lens (\ColumnDefinition' {dataType} -> dataType) (\s@ColumnDefinition' {} a -> s {dataType = a} :: ColumnDefinition)++instance Data.FromJSON ColumnDefinition where+  parseJSON =+    Data.withObject+      "ColumnDefinition"+      ( \x ->+          ColumnDefinition'+            Prelude.<$> (x Data..:? "columnDescription")+            Prelude.<*> (x Data..:? "columnName")+            Prelude.<*> (x Data..:? "dataType")+      )++instance Prelude.Hashable ColumnDefinition where+  hashWithSalt _salt ColumnDefinition' {..} =+    _salt+      `Prelude.hashWithSalt` columnDescription+      `Prelude.hashWithSalt` columnName+      `Prelude.hashWithSalt` dataType++instance Prelude.NFData ColumnDefinition where+  rnf ColumnDefinition' {..} =+    Prelude.rnf columnDescription+      `Prelude.seq` Prelude.rnf columnName+      `Prelude.seq` Prelude.rnf dataType++instance Data.ToJSON ColumnDefinition where+  toJSON ColumnDefinition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("columnDescription" Data..=)+              Prelude.<$> columnDescription,+            ("columnName" Data..=) Prelude.<$> columnName,+            ("dataType" Data..=) Prelude.<$> dataType+          ]+      )
+ gen/Amazonka/FinSpaceData/Types/Credentials.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.FinSpaceData.Types.Credentials+-- 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.FinSpaceData.Types.Credentials 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++-- | Short term API credentials.+--+-- /See:/ 'newCredentials' smart constructor.+data Credentials = Credentials'+  { -- | The access key identifier.+    accessKeyId :: Prelude.Maybe Prelude.Text,+    -- | The access key.+    secretAccessKey :: Prelude.Maybe Prelude.Text,+    -- | The session token.+    sessionToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Credentials' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessKeyId', 'credentials_accessKeyId' - The access key identifier.+--+-- 'secretAccessKey', 'credentials_secretAccessKey' - The access key.+--+-- 'sessionToken', 'credentials_sessionToken' - The session token.+newCredentials ::+  Credentials+newCredentials =+  Credentials'+    { accessKeyId = Prelude.Nothing,+      secretAccessKey = Prelude.Nothing,+      sessionToken = Prelude.Nothing+    }++-- | The access key identifier.+credentials_accessKeyId :: Lens.Lens' Credentials (Prelude.Maybe Prelude.Text)+credentials_accessKeyId = Lens.lens (\Credentials' {accessKeyId} -> accessKeyId) (\s@Credentials' {} a -> s {accessKeyId = a} :: Credentials)++-- | The access key.+credentials_secretAccessKey :: Lens.Lens' Credentials (Prelude.Maybe Prelude.Text)+credentials_secretAccessKey = Lens.lens (\Credentials' {secretAccessKey} -> secretAccessKey) (\s@Credentials' {} a -> s {secretAccessKey = a} :: Credentials)++-- | The session token.+credentials_sessionToken :: Lens.Lens' Credentials (Prelude.Maybe Prelude.Text)+credentials_sessionToken = Lens.lens (\Credentials' {sessionToken} -> sessionToken) (\s@Credentials' {} a -> s {sessionToken = a} :: Credentials)++instance Data.FromJSON Credentials where+  parseJSON =+    Data.withObject+      "Credentials"+      ( \x ->+          Credentials'+            Prelude.<$> (x Data..:? "accessKeyId")+            Prelude.<*> (x Data..:? "secretAccessKey")+            Prelude.<*> (x Data..:? "sessionToken")+      )++instance Prelude.Hashable Credentials where+  hashWithSalt _salt Credentials' {..} =+    _salt+      `Prelude.hashWithSalt` accessKeyId+      `Prelude.hashWithSalt` secretAccessKey+      `Prelude.hashWithSalt` sessionToken++instance Prelude.NFData Credentials where+  rnf Credentials' {..} =+    Prelude.rnf accessKeyId+      `Prelude.seq` Prelude.rnf secretAccessKey+      `Prelude.seq` Prelude.rnf sessionToken
+ gen/Amazonka/FinSpaceData/Types/DataViewDestinationTypeParams.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FinSpaceData.Types.DataViewDestinationTypeParams+-- 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.FinSpaceData.Types.DataViewDestinationTypeParams where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types.ExportFileFormat+import qualified Amazonka.Prelude as Prelude++-- | Structure for the Dataview destination type parameters.+--+-- /See:/ 'newDataViewDestinationTypeParams' smart constructor.+data DataViewDestinationTypeParams = DataViewDestinationTypeParams'+  { -- | Dataview export file format.+    --+    -- -   @PARQUET@ – Parquet export file format.+    --+    -- -   @DELIMITED_TEXT@ – Delimited text export file format.+    s3DestinationExportFileFormat :: Prelude.Maybe ExportFileFormat,+    -- | Format Options for S3 Destination type.+    --+    -- Here is an example of how you could specify the+    -- @s3DestinationExportFileFormatOptions@+    --+    -- @ { \"header\": \"true\", \"delimiter\": \",\", \"compression\": \"gzip\" }@+    s3DestinationExportFileFormatOptions :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Destination type for a Dataview.+    --+    -- -   @GLUE_TABLE@ – Glue table destination type.+    --+    -- -   @S3@ – S3 destination type.+    destinationType :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataViewDestinationTypeParams' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3DestinationExportFileFormat', 'dataViewDestinationTypeParams_s3DestinationExportFileFormat' - Dataview export file format.+--+-- -   @PARQUET@ – Parquet export file format.+--+-- -   @DELIMITED_TEXT@ – Delimited text export file format.+--+-- 's3DestinationExportFileFormatOptions', 'dataViewDestinationTypeParams_s3DestinationExportFileFormatOptions' - Format Options for S3 Destination type.+--+-- Here is an example of how you could specify the+-- @s3DestinationExportFileFormatOptions@+--+-- @ { \"header\": \"true\", \"delimiter\": \",\", \"compression\": \"gzip\" }@+--+-- 'destinationType', 'dataViewDestinationTypeParams_destinationType' - Destination type for a Dataview.+--+-- -   @GLUE_TABLE@ – Glue table destination type.+--+-- -   @S3@ – S3 destination type.+newDataViewDestinationTypeParams ::+  -- | 'destinationType'+  Prelude.Text ->+  DataViewDestinationTypeParams+newDataViewDestinationTypeParams pDestinationType_ =+  DataViewDestinationTypeParams'+    { s3DestinationExportFileFormat =+        Prelude.Nothing,+      s3DestinationExportFileFormatOptions =+        Prelude.Nothing,+      destinationType = pDestinationType_+    }++-- | Dataview export file format.+--+-- -   @PARQUET@ – Parquet export file format.+--+-- -   @DELIMITED_TEXT@ – Delimited text export file format.+dataViewDestinationTypeParams_s3DestinationExportFileFormat :: Lens.Lens' DataViewDestinationTypeParams (Prelude.Maybe ExportFileFormat)+dataViewDestinationTypeParams_s3DestinationExportFileFormat = Lens.lens (\DataViewDestinationTypeParams' {s3DestinationExportFileFormat} -> s3DestinationExportFileFormat) (\s@DataViewDestinationTypeParams' {} a -> s {s3DestinationExportFileFormat = a} :: DataViewDestinationTypeParams)++-- | Format Options for S3 Destination type.+--+-- Here is an example of how you could specify the+-- @s3DestinationExportFileFormatOptions@+--+-- @ { \"header\": \"true\", \"delimiter\": \",\", \"compression\": \"gzip\" }@+dataViewDestinationTypeParams_s3DestinationExportFileFormatOptions :: Lens.Lens' DataViewDestinationTypeParams (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+dataViewDestinationTypeParams_s3DestinationExportFileFormatOptions = Lens.lens (\DataViewDestinationTypeParams' {s3DestinationExportFileFormatOptions} -> s3DestinationExportFileFormatOptions) (\s@DataViewDestinationTypeParams' {} a -> s {s3DestinationExportFileFormatOptions = a} :: DataViewDestinationTypeParams) Prelude.. Lens.mapping Lens.coerced++-- | Destination type for a Dataview.+--+-- -   @GLUE_TABLE@ – Glue table destination type.+--+-- -   @S3@ – S3 destination type.+dataViewDestinationTypeParams_destinationType :: Lens.Lens' DataViewDestinationTypeParams Prelude.Text+dataViewDestinationTypeParams_destinationType = Lens.lens (\DataViewDestinationTypeParams' {destinationType} -> destinationType) (\s@DataViewDestinationTypeParams' {} a -> s {destinationType = a} :: DataViewDestinationTypeParams)++instance Data.FromJSON DataViewDestinationTypeParams where+  parseJSON =+    Data.withObject+      "DataViewDestinationTypeParams"+      ( \x ->+          DataViewDestinationTypeParams'+            Prelude.<$> (x Data..:? "s3DestinationExportFileFormat")+            Prelude.<*> ( x+                            Data..:? "s3DestinationExportFileFormatOptions"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "destinationType")+      )++instance+  Prelude.Hashable+    DataViewDestinationTypeParams+  where+  hashWithSalt _salt DataViewDestinationTypeParams' {..} =+    _salt+      `Prelude.hashWithSalt` s3DestinationExportFileFormat+      `Prelude.hashWithSalt` s3DestinationExportFileFormatOptions+      `Prelude.hashWithSalt` destinationType++instance Prelude.NFData DataViewDestinationTypeParams where+  rnf DataViewDestinationTypeParams' {..} =+    Prelude.rnf s3DestinationExportFileFormat+      `Prelude.seq` Prelude.rnf s3DestinationExportFileFormatOptions+      `Prelude.seq` Prelude.rnf destinationType++instance Data.ToJSON DataViewDestinationTypeParams where+  toJSON DataViewDestinationTypeParams' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("s3DestinationExportFileFormat" Data..=)+              Prelude.<$> s3DestinationExportFileFormat,+            ("s3DestinationExportFileFormatOptions" Data..=)+              Prelude.<$> s3DestinationExportFileFormatOptions,+            Prelude.Just+              ("destinationType" Data..= destinationType)+          ]+      )
+ gen/Amazonka/FinSpaceData/Types/DataViewErrorInfo.hs view
@@ -0,0 +1,148 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FinSpaceData.Types.DataViewErrorInfo+-- 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.FinSpaceData.Types.DataViewErrorInfo where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types.ErrorCategory+import qualified Amazonka.Prelude as Prelude++-- | The structure with error messages.+--+-- /See:/ 'newDataViewErrorInfo' smart constructor.+data DataViewErrorInfo = DataViewErrorInfo'+  { -- | The category of the error.+    --+    -- -   @VALIDATION@ – The inputs to this request are invalid.+    --+    -- -   @SERVICE_QUOTA_EXCEEDED@ – Service quotas have been exceeded. Please+    --     contact AWS support to increase quotas.+    --+    -- -   @ACCESS_DENIED@ – Missing required permission to perform this+    --     request.+    --+    -- -   @RESOURCE_NOT_FOUND@ – One or more inputs to this request were not+    --     found.+    --+    -- -   @THROTTLING@ – The system temporarily lacks sufficient resources to+    --     process the request.+    --+    -- -   @INTERNAL_SERVICE_EXCEPTION@ – An internal service error has+    --     occurred.+    --+    -- -   @CANCELLED@ – Cancelled.+    --+    -- -   @USER_RECOVERABLE@ – A user recoverable error has occurred.+    errorCategory :: Prelude.Maybe ErrorCategory,+    -- | The text of the error message.+    errorMessage :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataViewErrorInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errorCategory', 'dataViewErrorInfo_errorCategory' - The category of the error.+--+-- -   @VALIDATION@ – The inputs to this request are invalid.+--+-- -   @SERVICE_QUOTA_EXCEEDED@ – Service quotas have been exceeded. Please+--     contact AWS support to increase quotas.+--+-- -   @ACCESS_DENIED@ – Missing required permission to perform this+--     request.+--+-- -   @RESOURCE_NOT_FOUND@ – One or more inputs to this request were not+--     found.+--+-- -   @THROTTLING@ – The system temporarily lacks sufficient resources to+--     process the request.+--+-- -   @INTERNAL_SERVICE_EXCEPTION@ – An internal service error has+--     occurred.+--+-- -   @CANCELLED@ – Cancelled.+--+-- -   @USER_RECOVERABLE@ – A user recoverable error has occurred.+--+-- 'errorMessage', 'dataViewErrorInfo_errorMessage' - The text of the error message.+newDataViewErrorInfo ::+  DataViewErrorInfo+newDataViewErrorInfo =+  DataViewErrorInfo'+    { errorCategory = Prelude.Nothing,+      errorMessage = Prelude.Nothing+    }++-- | The category of the error.+--+-- -   @VALIDATION@ – The inputs to this request are invalid.+--+-- -   @SERVICE_QUOTA_EXCEEDED@ – Service quotas have been exceeded. Please+--     contact AWS support to increase quotas.+--+-- -   @ACCESS_DENIED@ – Missing required permission to perform this+--     request.+--+-- -   @RESOURCE_NOT_FOUND@ – One or more inputs to this request were not+--     found.+--+-- -   @THROTTLING@ – The system temporarily lacks sufficient resources to+--     process the request.+--+-- -   @INTERNAL_SERVICE_EXCEPTION@ – An internal service error has+--     occurred.+--+-- -   @CANCELLED@ – Cancelled.+--+-- -   @USER_RECOVERABLE@ – A user recoverable error has occurred.+dataViewErrorInfo_errorCategory :: Lens.Lens' DataViewErrorInfo (Prelude.Maybe ErrorCategory)+dataViewErrorInfo_errorCategory = Lens.lens (\DataViewErrorInfo' {errorCategory} -> errorCategory) (\s@DataViewErrorInfo' {} a -> s {errorCategory = a} :: DataViewErrorInfo)++-- | The text of the error message.+dataViewErrorInfo_errorMessage :: Lens.Lens' DataViewErrorInfo (Prelude.Maybe Prelude.Text)+dataViewErrorInfo_errorMessage = Lens.lens (\DataViewErrorInfo' {errorMessage} -> errorMessage) (\s@DataViewErrorInfo' {} a -> s {errorMessage = a} :: DataViewErrorInfo)++instance Data.FromJSON DataViewErrorInfo where+  parseJSON =+    Data.withObject+      "DataViewErrorInfo"+      ( \x ->+          DataViewErrorInfo'+            Prelude.<$> (x Data..:? "errorCategory")+            Prelude.<*> (x Data..:? "errorMessage")+      )++instance Prelude.Hashable DataViewErrorInfo where+  hashWithSalt _salt DataViewErrorInfo' {..} =+    _salt+      `Prelude.hashWithSalt` errorCategory+      `Prelude.hashWithSalt` errorMessage++instance Prelude.NFData DataViewErrorInfo where+  rnf DataViewErrorInfo' {..} =+    Prelude.rnf errorCategory+      `Prelude.seq` Prelude.rnf errorMessage
+ gen/Amazonka/FinSpaceData/Types/DataViewStatus.hs view
@@ -0,0 +1,102 @@+{-# 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.FinSpaceData.Types.DataViewStatus+-- 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.FinSpaceData.Types.DataViewStatus+  ( DataViewStatus+      ( ..,+        DataViewStatus_CANCELLED,+        DataViewStatus_FAILED,+        DataViewStatus_FAILED_CLEANUP_FAILED,+        DataViewStatus_PENDING,+        DataViewStatus_RUNNING,+        DataViewStatus_STARTING,+        DataViewStatus_SUCCESS,+        DataViewStatus_TIMEOUT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Status of a DataView+newtype DataViewStatus = DataViewStatus'+  { fromDataViewStatus ::+      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 DataViewStatus_CANCELLED :: DataViewStatus+pattern DataViewStatus_CANCELLED = DataViewStatus' "CANCELLED"++pattern DataViewStatus_FAILED :: DataViewStatus+pattern DataViewStatus_FAILED = DataViewStatus' "FAILED"++pattern DataViewStatus_FAILED_CLEANUP_FAILED :: DataViewStatus+pattern DataViewStatus_FAILED_CLEANUP_FAILED = DataViewStatus' "FAILED_CLEANUP_FAILED"++pattern DataViewStatus_PENDING :: DataViewStatus+pattern DataViewStatus_PENDING = DataViewStatus' "PENDING"++pattern DataViewStatus_RUNNING :: DataViewStatus+pattern DataViewStatus_RUNNING = DataViewStatus' "RUNNING"++pattern DataViewStatus_STARTING :: DataViewStatus+pattern DataViewStatus_STARTING = DataViewStatus' "STARTING"++pattern DataViewStatus_SUCCESS :: DataViewStatus+pattern DataViewStatus_SUCCESS = DataViewStatus' "SUCCESS"++pattern DataViewStatus_TIMEOUT :: DataViewStatus+pattern DataViewStatus_TIMEOUT = DataViewStatus' "TIMEOUT"++{-# COMPLETE+  DataViewStatus_CANCELLED,+  DataViewStatus_FAILED,+  DataViewStatus_FAILED_CLEANUP_FAILED,+  DataViewStatus_PENDING,+  DataViewStatus_RUNNING,+  DataViewStatus_STARTING,+  DataViewStatus_SUCCESS,+  DataViewStatus_TIMEOUT,+  DataViewStatus'+  #-}
+ gen/Amazonka/FinSpaceData/Types/DataViewSummary.hs view
@@ -0,0 +1,279 @@+{-# 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.FinSpaceData.Types.DataViewSummary+-- 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.FinSpaceData.Types.DataViewSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types.DataViewDestinationTypeParams+import Amazonka.FinSpaceData.Types.DataViewErrorInfo+import Amazonka.FinSpaceData.Types.DataViewStatus+import qualified Amazonka.Prelude as Prelude++-- | Structure for the summary of a Dataview.+--+-- /See:/ 'newDataViewSummary' smart constructor.+data DataViewSummary = DataViewSummary'+  { -- | Time range to use for the Dataview. The value is determined as epoch+    -- time in milliseconds. For example, the value for Monday, November 1,+    -- 2021 12:00:00 PM UTC is specified as 1635768000000.+    asOfTimestamp :: Prelude.Maybe Prelude.Integer,+    -- | The flag to indicate Dataview should be updated automatically.+    autoUpdate :: Prelude.Maybe Prelude.Bool,+    -- | The timestamp at which the Dataview was created in FinSpace. The value+    -- is determined as epoch time in milliseconds. For example, the value for+    -- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+    createTime :: Prelude.Maybe Prelude.Integer,+    -- | The ARN identifier of the Dataview.+    dataViewArn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the Dataview.+    dataViewId :: Prelude.Maybe Prelude.Text,+    -- | Th unique identifier for the Dataview Dataset.+    datasetId :: Prelude.Maybe Prelude.Text,+    -- | Information about the Dataview destination.+    destinationTypeProperties :: Prelude.Maybe DataViewDestinationTypeParams,+    -- | The structure with error messages.+    errorInfo :: Prelude.Maybe DataViewErrorInfo,+    -- | The last time that a Dataview was modified. The value is determined as+    -- epoch time in milliseconds. For example, the value for Monday, November+    -- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | Ordered set of column names used to partition data.+    partitionColumns :: Prelude.Maybe [Prelude.Text],+    -- | Columns to be used for sorting the data.+    sortColumns :: Prelude.Maybe [Prelude.Text],+    -- | The status of a Dataview creation.+    --+    -- -   @RUNNING@ – Dataview creation is running.+    --+    -- -   @STARTING@ – Dataview creation is starting.+    --+    -- -   @FAILED@ – Dataview creation has failed.+    --+    -- -   @CANCELLED@ – Dataview creation has been cancelled.+    --+    -- -   @TIMEOUT@ – Dataview creation has timed out.+    --+    -- -   @SUCCESS@ – Dataview creation has succeeded.+    --+    -- -   @PENDING@ – Dataview creation is pending.+    --+    -- -   @FAILED_CLEANUP_FAILED@ – Dataview creation failed and resource+    --     cleanup failed.+    status :: Prelude.Maybe DataViewStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataViewSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'asOfTimestamp', 'dataViewSummary_asOfTimestamp' - Time range to use for the Dataview. The value is determined as epoch+-- time in milliseconds. For example, the value for Monday, November 1,+-- 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'autoUpdate', 'dataViewSummary_autoUpdate' - The flag to indicate Dataview should be updated automatically.+--+-- 'createTime', 'dataViewSummary_createTime' - The timestamp at which the Dataview was created in FinSpace. The value+-- is determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'dataViewArn', 'dataViewSummary_dataViewArn' - The ARN identifier of the Dataview.+--+-- 'dataViewId', 'dataViewSummary_dataViewId' - The unique identifier for the Dataview.+--+-- 'datasetId', 'dataViewSummary_datasetId' - Th unique identifier for the Dataview Dataset.+--+-- 'destinationTypeProperties', 'dataViewSummary_destinationTypeProperties' - Information about the Dataview destination.+--+-- 'errorInfo', 'dataViewSummary_errorInfo' - The structure with error messages.+--+-- 'lastModifiedTime', 'dataViewSummary_lastModifiedTime' - The last time that a Dataview was modified. The value is determined as+-- epoch time in milliseconds. For example, the value for Monday, November+-- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'partitionColumns', 'dataViewSummary_partitionColumns' - Ordered set of column names used to partition data.+--+-- 'sortColumns', 'dataViewSummary_sortColumns' - Columns to be used for sorting the data.+--+-- 'status', 'dataViewSummary_status' - The status of a Dataview creation.+--+-- -   @RUNNING@ – Dataview creation is running.+--+-- -   @STARTING@ – Dataview creation is starting.+--+-- -   @FAILED@ – Dataview creation has failed.+--+-- -   @CANCELLED@ – Dataview creation has been cancelled.+--+-- -   @TIMEOUT@ – Dataview creation has timed out.+--+-- -   @SUCCESS@ – Dataview creation has succeeded.+--+-- -   @PENDING@ – Dataview creation is pending.+--+-- -   @FAILED_CLEANUP_FAILED@ – Dataview creation failed and resource+--     cleanup failed.+newDataViewSummary ::+  DataViewSummary+newDataViewSummary =+  DataViewSummary'+    { asOfTimestamp = Prelude.Nothing,+      autoUpdate = Prelude.Nothing,+      createTime = Prelude.Nothing,+      dataViewArn = Prelude.Nothing,+      dataViewId = Prelude.Nothing,+      datasetId = Prelude.Nothing,+      destinationTypeProperties = Prelude.Nothing,+      errorInfo = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      partitionColumns = Prelude.Nothing,+      sortColumns = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | Time range to use for the Dataview. The value is determined as epoch+-- time in milliseconds. For example, the value for Monday, November 1,+-- 2021 12:00:00 PM UTC is specified as 1635768000000.+dataViewSummary_asOfTimestamp :: Lens.Lens' DataViewSummary (Prelude.Maybe Prelude.Integer)+dataViewSummary_asOfTimestamp = Lens.lens (\DataViewSummary' {asOfTimestamp} -> asOfTimestamp) (\s@DataViewSummary' {} a -> s {asOfTimestamp = a} :: DataViewSummary)++-- | The flag to indicate Dataview should be updated automatically.+dataViewSummary_autoUpdate :: Lens.Lens' DataViewSummary (Prelude.Maybe Prelude.Bool)+dataViewSummary_autoUpdate = Lens.lens (\DataViewSummary' {autoUpdate} -> autoUpdate) (\s@DataViewSummary' {} a -> s {autoUpdate = a} :: DataViewSummary)++-- | The timestamp at which the Dataview was created in FinSpace. The value+-- is determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+dataViewSummary_createTime :: Lens.Lens' DataViewSummary (Prelude.Maybe Prelude.Integer)+dataViewSummary_createTime = Lens.lens (\DataViewSummary' {createTime} -> createTime) (\s@DataViewSummary' {} a -> s {createTime = a} :: DataViewSummary)++-- | The ARN identifier of the Dataview.+dataViewSummary_dataViewArn :: Lens.Lens' DataViewSummary (Prelude.Maybe Prelude.Text)+dataViewSummary_dataViewArn = Lens.lens (\DataViewSummary' {dataViewArn} -> dataViewArn) (\s@DataViewSummary' {} a -> s {dataViewArn = a} :: DataViewSummary)++-- | The unique identifier for the Dataview.+dataViewSummary_dataViewId :: Lens.Lens' DataViewSummary (Prelude.Maybe Prelude.Text)+dataViewSummary_dataViewId = Lens.lens (\DataViewSummary' {dataViewId} -> dataViewId) (\s@DataViewSummary' {} a -> s {dataViewId = a} :: DataViewSummary)++-- | Th unique identifier for the Dataview Dataset.+dataViewSummary_datasetId :: Lens.Lens' DataViewSummary (Prelude.Maybe Prelude.Text)+dataViewSummary_datasetId = Lens.lens (\DataViewSummary' {datasetId} -> datasetId) (\s@DataViewSummary' {} a -> s {datasetId = a} :: DataViewSummary)++-- | Information about the Dataview destination.+dataViewSummary_destinationTypeProperties :: Lens.Lens' DataViewSummary (Prelude.Maybe DataViewDestinationTypeParams)+dataViewSummary_destinationTypeProperties = Lens.lens (\DataViewSummary' {destinationTypeProperties} -> destinationTypeProperties) (\s@DataViewSummary' {} a -> s {destinationTypeProperties = a} :: DataViewSummary)++-- | The structure with error messages.+dataViewSummary_errorInfo :: Lens.Lens' DataViewSummary (Prelude.Maybe DataViewErrorInfo)+dataViewSummary_errorInfo = Lens.lens (\DataViewSummary' {errorInfo} -> errorInfo) (\s@DataViewSummary' {} a -> s {errorInfo = a} :: DataViewSummary)++-- | The last time that a Dataview was modified. The value is determined as+-- epoch time in milliseconds. For example, the value for Monday, November+-- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+dataViewSummary_lastModifiedTime :: Lens.Lens' DataViewSummary (Prelude.Maybe Prelude.Integer)+dataViewSummary_lastModifiedTime = Lens.lens (\DataViewSummary' {lastModifiedTime} -> lastModifiedTime) (\s@DataViewSummary' {} a -> s {lastModifiedTime = a} :: DataViewSummary)++-- | Ordered set of column names used to partition data.+dataViewSummary_partitionColumns :: Lens.Lens' DataViewSummary (Prelude.Maybe [Prelude.Text])+dataViewSummary_partitionColumns = Lens.lens (\DataViewSummary' {partitionColumns} -> partitionColumns) (\s@DataViewSummary' {} a -> s {partitionColumns = a} :: DataViewSummary) Prelude.. Lens.mapping Lens.coerced++-- | Columns to be used for sorting the data.+dataViewSummary_sortColumns :: Lens.Lens' DataViewSummary (Prelude.Maybe [Prelude.Text])+dataViewSummary_sortColumns = Lens.lens (\DataViewSummary' {sortColumns} -> sortColumns) (\s@DataViewSummary' {} a -> s {sortColumns = a} :: DataViewSummary) Prelude.. Lens.mapping Lens.coerced++-- | The status of a Dataview creation.+--+-- -   @RUNNING@ – Dataview creation is running.+--+-- -   @STARTING@ – Dataview creation is starting.+--+-- -   @FAILED@ – Dataview creation has failed.+--+-- -   @CANCELLED@ – Dataview creation has been cancelled.+--+-- -   @TIMEOUT@ – Dataview creation has timed out.+--+-- -   @SUCCESS@ – Dataview creation has succeeded.+--+-- -   @PENDING@ – Dataview creation is pending.+--+-- -   @FAILED_CLEANUP_FAILED@ – Dataview creation failed and resource+--     cleanup failed.+dataViewSummary_status :: Lens.Lens' DataViewSummary (Prelude.Maybe DataViewStatus)+dataViewSummary_status = Lens.lens (\DataViewSummary' {status} -> status) (\s@DataViewSummary' {} a -> s {status = a} :: DataViewSummary)++instance Data.FromJSON DataViewSummary where+  parseJSON =+    Data.withObject+      "DataViewSummary"+      ( \x ->+          DataViewSummary'+            Prelude.<$> (x Data..:? "asOfTimestamp")+            Prelude.<*> (x Data..:? "autoUpdate")+            Prelude.<*> (x Data..:? "createTime")+            Prelude.<*> (x Data..:? "dataViewArn")+            Prelude.<*> (x Data..:? "dataViewId")+            Prelude.<*> (x Data..:? "datasetId")+            Prelude.<*> (x Data..:? "destinationTypeProperties")+            Prelude.<*> (x Data..:? "errorInfo")+            Prelude.<*> (x Data..:? "lastModifiedTime")+            Prelude.<*> ( x+                            Data..:? "partitionColumns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "sortColumns" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable DataViewSummary where+  hashWithSalt _salt DataViewSummary' {..} =+    _salt+      `Prelude.hashWithSalt` asOfTimestamp+      `Prelude.hashWithSalt` autoUpdate+      `Prelude.hashWithSalt` createTime+      `Prelude.hashWithSalt` dataViewArn+      `Prelude.hashWithSalt` dataViewId+      `Prelude.hashWithSalt` datasetId+      `Prelude.hashWithSalt` destinationTypeProperties+      `Prelude.hashWithSalt` errorInfo+      `Prelude.hashWithSalt` lastModifiedTime+      `Prelude.hashWithSalt` partitionColumns+      `Prelude.hashWithSalt` sortColumns+      `Prelude.hashWithSalt` status++instance Prelude.NFData DataViewSummary where+  rnf DataViewSummary' {..} =+    Prelude.rnf asOfTimestamp+      `Prelude.seq` Prelude.rnf autoUpdate+      `Prelude.seq` Prelude.rnf createTime+      `Prelude.seq` Prelude.rnf dataViewArn+      `Prelude.seq` Prelude.rnf dataViewId+      `Prelude.seq` Prelude.rnf datasetId+      `Prelude.seq` Prelude.rnf destinationTypeProperties+      `Prelude.seq` Prelude.rnf errorInfo+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf partitionColumns+      `Prelude.seq` Prelude.rnf sortColumns+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/FinSpaceData/Types/Dataset.hs view
@@ -0,0 +1,207 @@+{-# 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.FinSpaceData.Types.Dataset+-- 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.FinSpaceData.Types.Dataset where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types.DatasetKind+import Amazonka.FinSpaceData.Types.DatasetOwnerInfo+import Amazonka.FinSpaceData.Types.SchemaUnion+import qualified Amazonka.Prelude as Prelude++-- | The structure for a Dataset.+--+-- /See:/ 'newDataset' smart constructor.+data Dataset = Dataset'+  { -- | The unique resource identifier for a Dataset.+    alias :: Prelude.Maybe Prelude.Text,+    -- | The timestamp at which the Dataset was created in FinSpace. The value is+    -- determined as epoch time in milliseconds. For example, the value for+    -- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+    createTime :: Prelude.Maybe Prelude.Integer,+    -- | The ARN identifier of the Dataset.+    datasetArn :: Prelude.Maybe Prelude.Text,+    -- | Description for a Dataset.+    datasetDescription :: Prelude.Maybe Prelude.Text,+    -- | An identifier for a Dataset.+    datasetId :: Prelude.Maybe Prelude.Text,+    -- | Display title for a Dataset.+    datasetTitle :: Prelude.Maybe Prelude.Text,+    -- | The format in which Dataset data is structured.+    --+    -- -   @TABULAR@ – Data is structured in a tabular format.+    --+    -- -   @NON_TABULAR@ – Data is structured in a non-tabular format.+    kind :: Prelude.Maybe DatasetKind,+    -- | The last time that the Dataset was modified. The value is determined as+    -- epoch time in milliseconds. For example, the value for Monday, November+    -- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | Contact information for a Dataset owner.+    ownerInfo :: Prelude.Maybe DatasetOwnerInfo,+    -- | Definition for a schema on a tabular Dataset.+    schemaDefinition :: Prelude.Maybe SchemaUnion+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Dataset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alias', 'dataset_alias' - The unique resource identifier for a Dataset.+--+-- 'createTime', 'dataset_createTime' - The timestamp at which the Dataset was created in FinSpace. The value is+-- determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'datasetArn', 'dataset_datasetArn' - The ARN identifier of the Dataset.+--+-- 'datasetDescription', 'dataset_datasetDescription' - Description for a Dataset.+--+-- 'datasetId', 'dataset_datasetId' - An identifier for a Dataset.+--+-- 'datasetTitle', 'dataset_datasetTitle' - Display title for a Dataset.+--+-- 'kind', 'dataset_kind' - The format in which Dataset data is structured.+--+-- -   @TABULAR@ – Data is structured in a tabular format.+--+-- -   @NON_TABULAR@ – Data is structured in a non-tabular format.+--+-- 'lastModifiedTime', 'dataset_lastModifiedTime' - The last time that the Dataset was modified. The value is determined as+-- epoch time in milliseconds. For example, the value for Monday, November+-- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+--+-- 'ownerInfo', 'dataset_ownerInfo' - Contact information for a Dataset owner.+--+-- 'schemaDefinition', 'dataset_schemaDefinition' - Definition for a schema on a tabular Dataset.+newDataset ::+  Dataset+newDataset =+  Dataset'+    { alias = Prelude.Nothing,+      createTime = Prelude.Nothing,+      datasetArn = Prelude.Nothing,+      datasetDescription = Prelude.Nothing,+      datasetId = Prelude.Nothing,+      datasetTitle = Prelude.Nothing,+      kind = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      ownerInfo = Prelude.Nothing,+      schemaDefinition = Prelude.Nothing+    }++-- | The unique resource identifier for a Dataset.+dataset_alias :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Text)+dataset_alias = Lens.lens (\Dataset' {alias} -> alias) (\s@Dataset' {} a -> s {alias = a} :: Dataset)++-- | The timestamp at which the Dataset was created in FinSpace. The value is+-- determined as epoch time in milliseconds. For example, the value for+-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+dataset_createTime :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Integer)+dataset_createTime = Lens.lens (\Dataset' {createTime} -> createTime) (\s@Dataset' {} a -> s {createTime = a} :: Dataset)++-- | The ARN identifier of the Dataset.+dataset_datasetArn :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Text)+dataset_datasetArn = Lens.lens (\Dataset' {datasetArn} -> datasetArn) (\s@Dataset' {} a -> s {datasetArn = a} :: Dataset)++-- | Description for a Dataset.+dataset_datasetDescription :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Text)+dataset_datasetDescription = Lens.lens (\Dataset' {datasetDescription} -> datasetDescription) (\s@Dataset' {} a -> s {datasetDescription = a} :: Dataset)++-- | An identifier for a Dataset.+dataset_datasetId :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Text)+dataset_datasetId = Lens.lens (\Dataset' {datasetId} -> datasetId) (\s@Dataset' {} a -> s {datasetId = a} :: Dataset)++-- | Display title for a Dataset.+dataset_datasetTitle :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Text)+dataset_datasetTitle = Lens.lens (\Dataset' {datasetTitle} -> datasetTitle) (\s@Dataset' {} a -> s {datasetTitle = a} :: Dataset)++-- | The format in which Dataset data is structured.+--+-- -   @TABULAR@ – Data is structured in a tabular format.+--+-- -   @NON_TABULAR@ – Data is structured in a non-tabular format.+dataset_kind :: Lens.Lens' Dataset (Prelude.Maybe DatasetKind)+dataset_kind = Lens.lens (\Dataset' {kind} -> kind) (\s@Dataset' {} a -> s {kind = a} :: Dataset)++-- | The last time that the Dataset was modified. The value is determined as+-- epoch time in milliseconds. For example, the value for Monday, November+-- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.+dataset_lastModifiedTime :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Integer)+dataset_lastModifiedTime = Lens.lens (\Dataset' {lastModifiedTime} -> lastModifiedTime) (\s@Dataset' {} a -> s {lastModifiedTime = a} :: Dataset)++-- | Contact information for a Dataset owner.+dataset_ownerInfo :: Lens.Lens' Dataset (Prelude.Maybe DatasetOwnerInfo)+dataset_ownerInfo = Lens.lens (\Dataset' {ownerInfo} -> ownerInfo) (\s@Dataset' {} a -> s {ownerInfo = a} :: Dataset)++-- | Definition for a schema on a tabular Dataset.+dataset_schemaDefinition :: Lens.Lens' Dataset (Prelude.Maybe SchemaUnion)+dataset_schemaDefinition = Lens.lens (\Dataset' {schemaDefinition} -> schemaDefinition) (\s@Dataset' {} a -> s {schemaDefinition = a} :: Dataset)++instance Data.FromJSON Dataset where+  parseJSON =+    Data.withObject+      "Dataset"+      ( \x ->+          Dataset'+            Prelude.<$> (x Data..:? "alias")+            Prelude.<*> (x Data..:? "createTime")+            Prelude.<*> (x Data..:? "datasetArn")+            Prelude.<*> (x Data..:? "datasetDescription")+            Prelude.<*> (x Data..:? "datasetId")+            Prelude.<*> (x Data..:? "datasetTitle")+            Prelude.<*> (x Data..:? "kind")+            Prelude.<*> (x Data..:? "lastModifiedTime")+            Prelude.<*> (x Data..:? "ownerInfo")+            Prelude.<*> (x Data..:? "schemaDefinition")+      )++instance Prelude.Hashable Dataset where+  hashWithSalt _salt Dataset' {..} =+    _salt+      `Prelude.hashWithSalt` alias+      `Prelude.hashWithSalt` createTime+      `Prelude.hashWithSalt` datasetArn+      `Prelude.hashWithSalt` datasetDescription+      `Prelude.hashWithSalt` datasetId+      `Prelude.hashWithSalt` datasetTitle+      `Prelude.hashWithSalt` kind+      `Prelude.hashWithSalt` lastModifiedTime+      `Prelude.hashWithSalt` ownerInfo+      `Prelude.hashWithSalt` schemaDefinition++instance Prelude.NFData Dataset where+  rnf Dataset' {..} =+    Prelude.rnf alias+      `Prelude.seq` Prelude.rnf createTime+      `Prelude.seq` Prelude.rnf datasetArn+      `Prelude.seq` Prelude.rnf datasetDescription+      `Prelude.seq` Prelude.rnf datasetId+      `Prelude.seq` Prelude.rnf datasetTitle+      `Prelude.seq` Prelude.rnf kind+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf ownerInfo+      `Prelude.seq` Prelude.rnf schemaDefinition
+ gen/Amazonka/FinSpaceData/Types/DatasetKind.hs view
@@ -0,0 +1,72 @@+{-# 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.FinSpaceData.Types.DatasetKind+-- 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.FinSpaceData.Types.DatasetKind+  ( DatasetKind+      ( ..,+        DatasetKind_NON_TABULAR,+        DatasetKind_TABULAR+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Dataset Kind+newtype DatasetKind = DatasetKind'+  { fromDatasetKind ::+      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 DatasetKind_NON_TABULAR :: DatasetKind+pattern DatasetKind_NON_TABULAR = DatasetKind' "NON_TABULAR"++pattern DatasetKind_TABULAR :: DatasetKind+pattern DatasetKind_TABULAR = DatasetKind' "TABULAR"++{-# COMPLETE+  DatasetKind_NON_TABULAR,+  DatasetKind_TABULAR,+  DatasetKind'+  #-}
+ gen/Amazonka/FinSpaceData/Types/DatasetOwnerInfo.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FinSpaceData.Types.DatasetOwnerInfo+-- 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.FinSpaceData.Types.DatasetOwnerInfo 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 for Dataset owner info.+--+-- /See:/ 'newDatasetOwnerInfo' smart constructor.+data DatasetOwnerInfo = DatasetOwnerInfo'+  { -- | Email address for the Dataset owner.+    email :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The name of the Dataset owner.+    name :: Prelude.Maybe Prelude.Text,+    -- | Phone number for the Dataset owner.+    phoneNumber :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetOwnerInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'email', 'datasetOwnerInfo_email' - Email address for the Dataset owner.+--+-- 'name', 'datasetOwnerInfo_name' - The name of the Dataset owner.+--+-- 'phoneNumber', 'datasetOwnerInfo_phoneNumber' - Phone number for the Dataset owner.+newDatasetOwnerInfo ::+  DatasetOwnerInfo+newDatasetOwnerInfo =+  DatasetOwnerInfo'+    { email = Prelude.Nothing,+      name = Prelude.Nothing,+      phoneNumber = Prelude.Nothing+    }++-- | Email address for the Dataset owner.+datasetOwnerInfo_email :: Lens.Lens' DatasetOwnerInfo (Prelude.Maybe Prelude.Text)+datasetOwnerInfo_email = Lens.lens (\DatasetOwnerInfo' {email} -> email) (\s@DatasetOwnerInfo' {} a -> s {email = a} :: DatasetOwnerInfo) Prelude.. Lens.mapping Data._Sensitive++-- | The name of the Dataset owner.+datasetOwnerInfo_name :: Lens.Lens' DatasetOwnerInfo (Prelude.Maybe Prelude.Text)+datasetOwnerInfo_name = Lens.lens (\DatasetOwnerInfo' {name} -> name) (\s@DatasetOwnerInfo' {} a -> s {name = a} :: DatasetOwnerInfo)++-- | Phone number for the Dataset owner.+datasetOwnerInfo_phoneNumber :: Lens.Lens' DatasetOwnerInfo (Prelude.Maybe Prelude.Text)+datasetOwnerInfo_phoneNumber = Lens.lens (\DatasetOwnerInfo' {phoneNumber} -> phoneNumber) (\s@DatasetOwnerInfo' {} a -> s {phoneNumber = a} :: DatasetOwnerInfo)++instance Data.FromJSON DatasetOwnerInfo where+  parseJSON =+    Data.withObject+      "DatasetOwnerInfo"+      ( \x ->+          DatasetOwnerInfo'+            Prelude.<$> (x Data..:? "email")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "phoneNumber")+      )++instance Prelude.Hashable DatasetOwnerInfo where+  hashWithSalt _salt DatasetOwnerInfo' {..} =+    _salt+      `Prelude.hashWithSalt` email+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` phoneNumber++instance Prelude.NFData DatasetOwnerInfo where+  rnf DatasetOwnerInfo' {..} =+    Prelude.rnf email+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf phoneNumber++instance Data.ToJSON DatasetOwnerInfo where+  toJSON DatasetOwnerInfo' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("email" Data..=) Prelude.<$> email,+            ("name" Data..=) Prelude.<$> name,+            ("phoneNumber" Data..=) Prelude.<$> phoneNumber+          ]+      )
+ gen/Amazonka/FinSpaceData/Types/DatasetStatus.hs view
@@ -0,0 +1,82 @@+{-# 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.FinSpaceData.Types.DatasetStatus+-- 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.FinSpaceData.Types.DatasetStatus+  ( DatasetStatus+      ( ..,+        DatasetStatus_FAILED,+        DatasetStatus_PENDING,+        DatasetStatus_RUNNING,+        DatasetStatus_SUCCESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Status of the dataset process returned from scheduler service.+newtype DatasetStatus = DatasetStatus'+  { fromDatasetStatus ::+      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 DatasetStatus_FAILED :: DatasetStatus+pattern DatasetStatus_FAILED = DatasetStatus' "FAILED"++pattern DatasetStatus_PENDING :: DatasetStatus+pattern DatasetStatus_PENDING = DatasetStatus' "PENDING"++pattern DatasetStatus_RUNNING :: DatasetStatus+pattern DatasetStatus_RUNNING = DatasetStatus' "RUNNING"++pattern DatasetStatus_SUCCESS :: DatasetStatus+pattern DatasetStatus_SUCCESS = DatasetStatus' "SUCCESS"++{-# COMPLETE+  DatasetStatus_FAILED,+  DatasetStatus_PENDING,+  DatasetStatus_RUNNING,+  DatasetStatus_SUCCESS,+  DatasetStatus'+  #-}
+ gen/Amazonka/FinSpaceData/Types/ErrorCategory.hs view
@@ -0,0 +1,102 @@+{-# 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.FinSpaceData.Types.ErrorCategory+-- 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.FinSpaceData.Types.ErrorCategory+  ( ErrorCategory+      ( ..,+        ErrorCategory_ACCESS_DENIED,+        ErrorCategory_CANCELLED,+        ErrorCategory_INTERNAL_SERVICE_EXCEPTION,+        ErrorCategory_RESOURCE_NOT_FOUND,+        ErrorCategory_SERVICE_QUOTA_EXCEEDED,+        ErrorCategory_THROTTLING,+        ErrorCategory_USER_RECOVERABLE,+        ErrorCategory_VALIDATION+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Changeset Error Category+newtype ErrorCategory = ErrorCategory'+  { fromErrorCategory ::+      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 ErrorCategory_ACCESS_DENIED :: ErrorCategory+pattern ErrorCategory_ACCESS_DENIED = ErrorCategory' "ACCESS_DENIED"++pattern ErrorCategory_CANCELLED :: ErrorCategory+pattern ErrorCategory_CANCELLED = ErrorCategory' "CANCELLED"++pattern ErrorCategory_INTERNAL_SERVICE_EXCEPTION :: ErrorCategory+pattern ErrorCategory_INTERNAL_SERVICE_EXCEPTION = ErrorCategory' "INTERNAL_SERVICE_EXCEPTION"++pattern ErrorCategory_RESOURCE_NOT_FOUND :: ErrorCategory+pattern ErrorCategory_RESOURCE_NOT_FOUND = ErrorCategory' "RESOURCE_NOT_FOUND"++pattern ErrorCategory_SERVICE_QUOTA_EXCEEDED :: ErrorCategory+pattern ErrorCategory_SERVICE_QUOTA_EXCEEDED = ErrorCategory' "SERVICE_QUOTA_EXCEEDED"++pattern ErrorCategory_THROTTLING :: ErrorCategory+pattern ErrorCategory_THROTTLING = ErrorCategory' "THROTTLING"++pattern ErrorCategory_USER_RECOVERABLE :: ErrorCategory+pattern ErrorCategory_USER_RECOVERABLE = ErrorCategory' "USER_RECOVERABLE"++pattern ErrorCategory_VALIDATION :: ErrorCategory+pattern ErrorCategory_VALIDATION = ErrorCategory' "VALIDATION"++{-# COMPLETE+  ErrorCategory_ACCESS_DENIED,+  ErrorCategory_CANCELLED,+  ErrorCategory_INTERNAL_SERVICE_EXCEPTION,+  ErrorCategory_RESOURCE_NOT_FOUND,+  ErrorCategory_SERVICE_QUOTA_EXCEEDED,+  ErrorCategory_THROTTLING,+  ErrorCategory_USER_RECOVERABLE,+  ErrorCategory_VALIDATION,+  ErrorCategory'+  #-}
+ gen/Amazonka/FinSpaceData/Types/ExportFileFormat.hs view
@@ -0,0 +1,72 @@+{-# 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.FinSpaceData.Types.ExportFileFormat+-- 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.FinSpaceData.Types.ExportFileFormat+  ( ExportFileFormat+      ( ..,+        ExportFileFormat_DELIMITED_TEXT,+        ExportFileFormat_PARQUET+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Data View Export File Format+newtype ExportFileFormat = ExportFileFormat'+  { fromExportFileFormat ::+      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 ExportFileFormat_DELIMITED_TEXT :: ExportFileFormat+pattern ExportFileFormat_DELIMITED_TEXT = ExportFileFormat' "DELIMITED_TEXT"++pattern ExportFileFormat_PARQUET :: ExportFileFormat+pattern ExportFileFormat_PARQUET = ExportFileFormat' "PARQUET"++{-# COMPLETE+  ExportFileFormat_DELIMITED_TEXT,+  ExportFileFormat_PARQUET,+  ExportFileFormat'+  #-}
+ gen/Amazonka/FinSpaceData/Types/IngestionStatus.hs view
@@ -0,0 +1,87 @@+{-# 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.FinSpaceData.Types.IngestionStatus+-- 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.FinSpaceData.Types.IngestionStatus+  ( IngestionStatus+      ( ..,+        IngestionStatus_FAILED,+        IngestionStatus_PENDING,+        IngestionStatus_RUNNING,+        IngestionStatus_STOP_REQUESTED,+        IngestionStatus_SUCCESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Status of the ingestion process returned from scheduler service.+newtype IngestionStatus = IngestionStatus'+  { fromIngestionStatus ::+      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 IngestionStatus_FAILED :: IngestionStatus+pattern IngestionStatus_FAILED = IngestionStatus' "FAILED"++pattern IngestionStatus_PENDING :: IngestionStatus+pattern IngestionStatus_PENDING = IngestionStatus' "PENDING"++pattern IngestionStatus_RUNNING :: IngestionStatus+pattern IngestionStatus_RUNNING = IngestionStatus' "RUNNING"++pattern IngestionStatus_STOP_REQUESTED :: IngestionStatus+pattern IngestionStatus_STOP_REQUESTED = IngestionStatus' "STOP_REQUESTED"++pattern IngestionStatus_SUCCESS :: IngestionStatus+pattern IngestionStatus_SUCCESS = IngestionStatus' "SUCCESS"++{-# COMPLETE+  IngestionStatus_FAILED,+  IngestionStatus_PENDING,+  IngestionStatus_RUNNING,+  IngestionStatus_STOP_REQUESTED,+  IngestionStatus_SUCCESS,+  IngestionStatus'+  #-}
+ gen/Amazonka/FinSpaceData/Types/LocationType.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.FinSpaceData.Types.LocationType+-- 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.FinSpaceData.Types.LocationType+  ( LocationType+      ( ..,+        LocationType_INGESTION,+        LocationType_SAGEMAKER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LocationType = LocationType'+  { fromLocationType ::+      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 LocationType_INGESTION :: LocationType+pattern LocationType_INGESTION = LocationType' "INGESTION"++pattern LocationType_SAGEMAKER :: LocationType+pattern LocationType_SAGEMAKER = LocationType' "SAGEMAKER"++{-# COMPLETE+  LocationType_INGESTION,+  LocationType_SAGEMAKER,+  LocationType'+  #-}
+ gen/Amazonka/FinSpaceData/Types/PermissionGroup.hs view
@@ -0,0 +1,261 @@+{-# 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.FinSpaceData.Types.PermissionGroup+-- 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.FinSpaceData.Types.PermissionGroup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types.ApplicationPermission+import Amazonka.FinSpaceData.Types.PermissionGroupMembershipStatus+import qualified Amazonka.Prelude as Prelude++-- | The structure for a permission group.+--+-- /See:/ 'newPermissionGroup' smart constructor.+data PermissionGroup = PermissionGroup'+  { -- | Indicates the permissions that are granted to a specific group for+    -- accessing the FinSpace application.+    --+    -- When assigning application permissions, be aware that the permission+    -- @ManageUsersAndGroups@ allows users to grant themselves or others access+    -- to any functionality in their FinSpace environment\'s application. It+    -- should only be granted to trusted users.+    --+    -- -   @CreateDataset@ – Group members can create new datasets.+    --+    -- -   @ManageClusters@ – Group members can manage Apache Spark clusters+    --     from FinSpace notebooks.+    --+    -- -   @ManageUsersAndGroups@ – Group members can manage users and+    --     permission groups. This is a privileged permission that allows users+    --     to grant themselves or others access to any functionality in the+    --     application. It should only be granted to trusted users.+    --+    -- -   @ManageAttributeSets@ – Group members can manage attribute sets.+    --+    -- -   @ViewAuditData@ – Group members can view audit data.+    --+    -- -   @AccessNotebooks@ – Group members will have access to FinSpace+    --     notebooks.+    --+    -- -   @GetTemporaryCredentials@ – Group members can get temporary API+    --     credentials.+    applicationPermissions :: Prelude.Maybe [ApplicationPermission],+    -- | The timestamp at which the group was created in FinSpace. The value is+    -- determined as epoch time in milliseconds.+    createTime :: Prelude.Maybe Prelude.Integer,+    -- | A brief description for the permission group.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | Describes the last time the permission group was updated. The value is+    -- determined as epoch time in milliseconds.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | Indicates the status of the user account within a permission group.+    --+    -- -   @ADDITION_IN_PROGRESS@ – The user account is currently being added+    --     to the permission group.+    --+    -- -   @ADDITION_SUCCESS@ – The user account is successfully added to the+    --     permission group.+    --+    -- -   @REMOVAL_IN_PROGRESS@ – The user is currently being removed from the+    --     permission group.+    membershipStatus :: Prelude.Maybe PermissionGroupMembershipStatus,+    -- | The name of the permission group.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The unique identifier for the permission group.+    permissionGroupId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PermissionGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationPermissions', 'permissionGroup_applicationPermissions' - Indicates the permissions that are granted to a specific group for+-- accessing the FinSpace application.+--+-- When assigning application permissions, be aware that the permission+-- @ManageUsersAndGroups@ allows users to grant themselves or others access+-- to any functionality in their FinSpace environment\'s application. It+-- should only be granted to trusted users.+--+-- -   @CreateDataset@ – Group members can create new datasets.+--+-- -   @ManageClusters@ – Group members can manage Apache Spark clusters+--     from FinSpace notebooks.+--+-- -   @ManageUsersAndGroups@ – Group members can manage users and+--     permission groups. This is a privileged permission that allows users+--     to grant themselves or others access to any functionality in the+--     application. It should only be granted to trusted users.+--+-- -   @ManageAttributeSets@ – Group members can manage attribute sets.+--+-- -   @ViewAuditData@ – Group members can view audit data.+--+-- -   @AccessNotebooks@ – Group members will have access to FinSpace+--     notebooks.+--+-- -   @GetTemporaryCredentials@ – Group members can get temporary API+--     credentials.+--+-- 'createTime', 'permissionGroup_createTime' - The timestamp at which the group was created in FinSpace. The value is+-- determined as epoch time in milliseconds.+--+-- 'description', 'permissionGroup_description' - A brief description for the permission group.+--+-- 'lastModifiedTime', 'permissionGroup_lastModifiedTime' - Describes the last time the permission group was updated. The value is+-- determined as epoch time in milliseconds.+--+-- 'membershipStatus', 'permissionGroup_membershipStatus' - Indicates the status of the user account within a permission group.+--+-- -   @ADDITION_IN_PROGRESS@ – The user account is currently being added+--     to the permission group.+--+-- -   @ADDITION_SUCCESS@ – The user account is successfully added to the+--     permission group.+--+-- -   @REMOVAL_IN_PROGRESS@ – The user is currently being removed from the+--     permission group.+--+-- 'name', 'permissionGroup_name' - The name of the permission group.+--+-- 'permissionGroupId', 'permissionGroup_permissionGroupId' - The unique identifier for the permission group.+newPermissionGroup ::+  PermissionGroup+newPermissionGroup =+  PermissionGroup'+    { applicationPermissions =+        Prelude.Nothing,+      createTime = Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      membershipStatus = Prelude.Nothing,+      name = Prelude.Nothing,+      permissionGroupId = Prelude.Nothing+    }++-- | Indicates the permissions that are granted to a specific group for+-- accessing the FinSpace application.+--+-- When assigning application permissions, be aware that the permission+-- @ManageUsersAndGroups@ allows users to grant themselves or others access+-- to any functionality in their FinSpace environment\'s application. It+-- should only be granted to trusted users.+--+-- -   @CreateDataset@ – Group members can create new datasets.+--+-- -   @ManageClusters@ – Group members can manage Apache Spark clusters+--     from FinSpace notebooks.+--+-- -   @ManageUsersAndGroups@ – Group members can manage users and+--     permission groups. This is a privileged permission that allows users+--     to grant themselves or others access to any functionality in the+--     application. It should only be granted to trusted users.+--+-- -   @ManageAttributeSets@ – Group members can manage attribute sets.+--+-- -   @ViewAuditData@ – Group members can view audit data.+--+-- -   @AccessNotebooks@ – Group members will have access to FinSpace+--     notebooks.+--+-- -   @GetTemporaryCredentials@ – Group members can get temporary API+--     credentials.+permissionGroup_applicationPermissions :: Lens.Lens' PermissionGroup (Prelude.Maybe [ApplicationPermission])+permissionGroup_applicationPermissions = Lens.lens (\PermissionGroup' {applicationPermissions} -> applicationPermissions) (\s@PermissionGroup' {} a -> s {applicationPermissions = a} :: PermissionGroup) Prelude.. Lens.mapping Lens.coerced++-- | The timestamp at which the group was created in FinSpace. The value is+-- determined as epoch time in milliseconds.+permissionGroup_createTime :: Lens.Lens' PermissionGroup (Prelude.Maybe Prelude.Integer)+permissionGroup_createTime = Lens.lens (\PermissionGroup' {createTime} -> createTime) (\s@PermissionGroup' {} a -> s {createTime = a} :: PermissionGroup)++-- | A brief description for the permission group.+permissionGroup_description :: Lens.Lens' PermissionGroup (Prelude.Maybe Prelude.Text)+permissionGroup_description = Lens.lens (\PermissionGroup' {description} -> description) (\s@PermissionGroup' {} a -> s {description = a} :: PermissionGroup) Prelude.. Lens.mapping Data._Sensitive++-- | Describes the last time the permission group was updated. The value is+-- determined as epoch time in milliseconds.+permissionGroup_lastModifiedTime :: Lens.Lens' PermissionGroup (Prelude.Maybe Prelude.Integer)+permissionGroup_lastModifiedTime = Lens.lens (\PermissionGroup' {lastModifiedTime} -> lastModifiedTime) (\s@PermissionGroup' {} a -> s {lastModifiedTime = a} :: PermissionGroup)++-- | Indicates the status of the user account within a permission group.+--+-- -   @ADDITION_IN_PROGRESS@ – The user account is currently being added+--     to the permission group.+--+-- -   @ADDITION_SUCCESS@ – The user account is successfully added to the+--     permission group.+--+-- -   @REMOVAL_IN_PROGRESS@ – The user is currently being removed from the+--     permission group.+permissionGroup_membershipStatus :: Lens.Lens' PermissionGroup (Prelude.Maybe PermissionGroupMembershipStatus)+permissionGroup_membershipStatus = Lens.lens (\PermissionGroup' {membershipStatus} -> membershipStatus) (\s@PermissionGroup' {} a -> s {membershipStatus = a} :: PermissionGroup)++-- | The name of the permission group.+permissionGroup_name :: Lens.Lens' PermissionGroup (Prelude.Maybe Prelude.Text)+permissionGroup_name = Lens.lens (\PermissionGroup' {name} -> name) (\s@PermissionGroup' {} a -> s {name = a} :: PermissionGroup) Prelude.. Lens.mapping Data._Sensitive++-- | The unique identifier for the permission group.+permissionGroup_permissionGroupId :: Lens.Lens' PermissionGroup (Prelude.Maybe Prelude.Text)+permissionGroup_permissionGroupId = Lens.lens (\PermissionGroup' {permissionGroupId} -> permissionGroupId) (\s@PermissionGroup' {} a -> s {permissionGroupId = a} :: PermissionGroup)++instance Data.FromJSON PermissionGroup where+  parseJSON =+    Data.withObject+      "PermissionGroup"+      ( \x ->+          PermissionGroup'+            Prelude.<$> ( x+                            Data..:? "applicationPermissions"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "createTime")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastModifiedTime")+            Prelude.<*> (x Data..:? "membershipStatus")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "permissionGroupId")+      )++instance Prelude.Hashable PermissionGroup where+  hashWithSalt _salt PermissionGroup' {..} =+    _salt+      `Prelude.hashWithSalt` applicationPermissions+      `Prelude.hashWithSalt` createTime+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastModifiedTime+      `Prelude.hashWithSalt` membershipStatus+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` permissionGroupId++instance Prelude.NFData PermissionGroup where+  rnf PermissionGroup' {..} =+    Prelude.rnf applicationPermissions+      `Prelude.seq` Prelude.rnf createTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf membershipStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf permissionGroupId
+ gen/Amazonka/FinSpaceData/Types/PermissionGroupByUser.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.FinSpaceData.Types.PermissionGroupByUser+-- 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.FinSpaceData.Types.PermissionGroupByUser where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types.PermissionGroupMembershipStatus+import qualified Amazonka.Prelude as Prelude++-- | The structure of a permission group associated with a user account.+--+-- /See:/ 'newPermissionGroupByUser' smart constructor.+data PermissionGroupByUser = PermissionGroupByUser'+  { -- | Indicates the status of the user account within a permission group.+    --+    -- -   @ADDITION_IN_PROGRESS@ – The user account is currently being added+    --     to the permission group.+    --+    -- -   @ADDITION_SUCCESS@ – The user account is successfully added to the+    --     permission group.+    --+    -- -   @REMOVAL_IN_PROGRESS@ – The user is currently being removed from the+    --     permission group.+    membershipStatus :: Prelude.Maybe PermissionGroupMembershipStatus,+    -- | The name of the permission group.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The unique identifier for the permission group.+    permissionGroupId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PermissionGroupByUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'membershipStatus', 'permissionGroupByUser_membershipStatus' - Indicates the status of the user account within a permission group.+--+-- -   @ADDITION_IN_PROGRESS@ – The user account is currently being added+--     to the permission group.+--+-- -   @ADDITION_SUCCESS@ – The user account is successfully added to the+--     permission group.+--+-- -   @REMOVAL_IN_PROGRESS@ – The user is currently being removed from the+--     permission group.+--+-- 'name', 'permissionGroupByUser_name' - The name of the permission group.+--+-- 'permissionGroupId', 'permissionGroupByUser_permissionGroupId' - The unique identifier for the permission group.+newPermissionGroupByUser ::+  PermissionGroupByUser+newPermissionGroupByUser =+  PermissionGroupByUser'+    { membershipStatus =+        Prelude.Nothing,+      name = Prelude.Nothing,+      permissionGroupId = Prelude.Nothing+    }++-- | Indicates the status of the user account within a permission group.+--+-- -   @ADDITION_IN_PROGRESS@ – The user account is currently being added+--     to the permission group.+--+-- -   @ADDITION_SUCCESS@ – The user account is successfully added to the+--     permission group.+--+-- -   @REMOVAL_IN_PROGRESS@ – The user is currently being removed from the+--     permission group.+permissionGroupByUser_membershipStatus :: Lens.Lens' PermissionGroupByUser (Prelude.Maybe PermissionGroupMembershipStatus)+permissionGroupByUser_membershipStatus = Lens.lens (\PermissionGroupByUser' {membershipStatus} -> membershipStatus) (\s@PermissionGroupByUser' {} a -> s {membershipStatus = a} :: PermissionGroupByUser)++-- | The name of the permission group.+permissionGroupByUser_name :: Lens.Lens' PermissionGroupByUser (Prelude.Maybe Prelude.Text)+permissionGroupByUser_name = Lens.lens (\PermissionGroupByUser' {name} -> name) (\s@PermissionGroupByUser' {} a -> s {name = a} :: PermissionGroupByUser) Prelude.. Lens.mapping Data._Sensitive++-- | The unique identifier for the permission group.+permissionGroupByUser_permissionGroupId :: Lens.Lens' PermissionGroupByUser (Prelude.Maybe Prelude.Text)+permissionGroupByUser_permissionGroupId = Lens.lens (\PermissionGroupByUser' {permissionGroupId} -> permissionGroupId) (\s@PermissionGroupByUser' {} a -> s {permissionGroupId = a} :: PermissionGroupByUser)++instance Data.FromJSON PermissionGroupByUser where+  parseJSON =+    Data.withObject+      "PermissionGroupByUser"+      ( \x ->+          PermissionGroupByUser'+            Prelude.<$> (x Data..:? "membershipStatus")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "permissionGroupId")+      )++instance Prelude.Hashable PermissionGroupByUser where+  hashWithSalt _salt PermissionGroupByUser' {..} =+    _salt+      `Prelude.hashWithSalt` membershipStatus+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` permissionGroupId++instance Prelude.NFData PermissionGroupByUser where+  rnf PermissionGroupByUser' {..} =+    Prelude.rnf membershipStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf permissionGroupId
+ gen/Amazonka/FinSpaceData/Types/PermissionGroupMembershipStatus.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.FinSpaceData.Types.PermissionGroupMembershipStatus+-- 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.FinSpaceData.Types.PermissionGroupMembershipStatus+  ( PermissionGroupMembershipStatus+      ( ..,+        PermissionGroupMembershipStatus_ADDITION_IN_PROGRESS,+        PermissionGroupMembershipStatus_ADDITION_SUCCESS,+        PermissionGroupMembershipStatus_REMOVAL_IN_PROGRESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PermissionGroupMembershipStatus = PermissionGroupMembershipStatus'+  { fromPermissionGroupMembershipStatus ::+      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 PermissionGroupMembershipStatus_ADDITION_IN_PROGRESS :: PermissionGroupMembershipStatus+pattern PermissionGroupMembershipStatus_ADDITION_IN_PROGRESS = PermissionGroupMembershipStatus' "ADDITION_IN_PROGRESS"++pattern PermissionGroupMembershipStatus_ADDITION_SUCCESS :: PermissionGroupMembershipStatus+pattern PermissionGroupMembershipStatus_ADDITION_SUCCESS = PermissionGroupMembershipStatus' "ADDITION_SUCCESS"++pattern PermissionGroupMembershipStatus_REMOVAL_IN_PROGRESS :: PermissionGroupMembershipStatus+pattern PermissionGroupMembershipStatus_REMOVAL_IN_PROGRESS = PermissionGroupMembershipStatus' "REMOVAL_IN_PROGRESS"++{-# COMPLETE+  PermissionGroupMembershipStatus_ADDITION_IN_PROGRESS,+  PermissionGroupMembershipStatus_ADDITION_SUCCESS,+  PermissionGroupMembershipStatus_REMOVAL_IN_PROGRESS,+  PermissionGroupMembershipStatus'+  #-}
+ gen/Amazonka/FinSpaceData/Types/PermissionGroupParams.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FinSpaceData.Types.PermissionGroupParams+-- 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.FinSpaceData.Types.PermissionGroupParams where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types.ResourcePermission+import qualified Amazonka.Prelude as Prelude++-- | Permission group parameters for Dataset permissions.+--+-- Here is an example of how you could specify the @PermissionGroupParams@:+--+-- @ { \"permissionGroupId\": \"0r6fCRtSTUk4XPfXQe3M0g\", \"datasetPermissions\": [ {\"permission\": \"ViewDatasetDetails\"}, {\"permission\": \"AddDatasetData\"}, {\"permission\": \"EditDatasetMetadata\"}, {\"permission\": \"DeleteDataset\"} ] } @+--+-- /See:/ 'newPermissionGroupParams' smart constructor.+data PermissionGroupParams = PermissionGroupParams'+  { -- | List of resource permissions.+    datasetPermissions :: Prelude.Maybe [ResourcePermission],+    -- | The unique identifier for the @PermissionGroup@.+    permissionGroupId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PermissionGroupParams' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetPermissions', 'permissionGroupParams_datasetPermissions' - List of resource permissions.+--+-- 'permissionGroupId', 'permissionGroupParams_permissionGroupId' - The unique identifier for the @PermissionGroup@.+newPermissionGroupParams ::+  PermissionGroupParams+newPermissionGroupParams =+  PermissionGroupParams'+    { datasetPermissions =+        Prelude.Nothing,+      permissionGroupId = Prelude.Nothing+    }++-- | List of resource permissions.+permissionGroupParams_datasetPermissions :: Lens.Lens' PermissionGroupParams (Prelude.Maybe [ResourcePermission])+permissionGroupParams_datasetPermissions = Lens.lens (\PermissionGroupParams' {datasetPermissions} -> datasetPermissions) (\s@PermissionGroupParams' {} a -> s {datasetPermissions = a} :: PermissionGroupParams) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifier for the @PermissionGroup@.+permissionGroupParams_permissionGroupId :: Lens.Lens' PermissionGroupParams (Prelude.Maybe Prelude.Text)+permissionGroupParams_permissionGroupId = Lens.lens (\PermissionGroupParams' {permissionGroupId} -> permissionGroupId) (\s@PermissionGroupParams' {} a -> s {permissionGroupId = a} :: PermissionGroupParams)++instance Prelude.Hashable PermissionGroupParams where+  hashWithSalt _salt PermissionGroupParams' {..} =+    _salt+      `Prelude.hashWithSalt` datasetPermissions+      `Prelude.hashWithSalt` permissionGroupId++instance Prelude.NFData PermissionGroupParams where+  rnf PermissionGroupParams' {..} =+    Prelude.rnf datasetPermissions+      `Prelude.seq` Prelude.rnf permissionGroupId++instance Data.ToJSON PermissionGroupParams where+  toJSON PermissionGroupParams' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("datasetPermissions" Data..=)+              Prelude.<$> datasetPermissions,+            ("permissionGroupId" Data..=)+              Prelude.<$> permissionGroupId+          ]+      )
+ gen/Amazonka/FinSpaceData/Types/ResourcePermission.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FinSpaceData.Types.ResourcePermission+-- 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.FinSpaceData.Types.ResourcePermission 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++-- | Resource permission for a dataset. When you create a dataset, all the+-- other members of the same user group inherit access to the dataset. You+-- can only create a dataset if your user group has application permission+-- for Create Datasets.+--+-- The following is a list of valid dataset permissions that you can apply:+--+-- -   @ViewDatasetDetails@+--+-- -   @ReadDatasetDetails@+--+-- -   @AddDatasetData@+--+-- -   @CreateDataView@+--+-- -   @EditDatasetMetadata@+--+-- -   @DeleteDataset@+--+-- For more information on the dataset permissions, see+-- <https://docs.aws.amazon.com/finspace/latest/userguide/managing-user-permissions.html#supported-dataset-permissions Supported Dataset Permissions>+-- in the FinSpace User Guide.+--+-- /See:/ 'newResourcePermission' smart constructor.+data ResourcePermission = ResourcePermission'+  { -- | Permission for a resource.+    permission :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourcePermission' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'permission', 'resourcePermission_permission' - Permission for a resource.+newResourcePermission ::+  ResourcePermission+newResourcePermission =+  ResourcePermission' {permission = Prelude.Nothing}++-- | Permission for a resource.+resourcePermission_permission :: Lens.Lens' ResourcePermission (Prelude.Maybe Prelude.Text)+resourcePermission_permission = Lens.lens (\ResourcePermission' {permission} -> permission) (\s@ResourcePermission' {} a -> s {permission = a} :: ResourcePermission)++instance Prelude.Hashable ResourcePermission where+  hashWithSalt _salt ResourcePermission' {..} =+    _salt `Prelude.hashWithSalt` permission++instance Prelude.NFData ResourcePermission where+  rnf ResourcePermission' {..} = Prelude.rnf permission++instance Data.ToJSON ResourcePermission where+  toJSON ResourcePermission' {..} =+    Data.object+      ( Prelude.catMaybes+          [("permission" Data..=) Prelude.<$> permission]+      )
+ gen/Amazonka/FinSpaceData/Types/S3Location.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.FinSpaceData.Types.S3Location+-- 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.FinSpaceData.Types.S3Location 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 location of an external Dataview in an S3 bucket.+--+-- /See:/ 'newS3Location' smart constructor.+data S3Location = S3Location'+  { -- | The name of the S3 bucket.+    bucket :: Prelude.Text,+    -- | The path of the folder, within the S3 bucket that contains the Dataset.+    key :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3Location' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 's3Location_bucket' - The name of the S3 bucket.+--+-- 'key', 's3Location_key' - The path of the folder, within the S3 bucket that contains the Dataset.+newS3Location ::+  -- | 'bucket'+  Prelude.Text ->+  -- | 'key'+  Prelude.Text ->+  S3Location+newS3Location pBucket_ pKey_ =+  S3Location' {bucket = pBucket_, key = pKey_}++-- | The name of the S3 bucket.+s3Location_bucket :: Lens.Lens' S3Location Prelude.Text+s3Location_bucket = Lens.lens (\S3Location' {bucket} -> bucket) (\s@S3Location' {} a -> s {bucket = a} :: S3Location)++-- | The path of the folder, within the S3 bucket that contains the Dataset.+s3Location_key :: Lens.Lens' S3Location Prelude.Text+s3Location_key = Lens.lens (\S3Location' {key} -> key) (\s@S3Location' {} a -> s {key = a} :: S3Location)++instance Data.FromJSON S3Location where+  parseJSON =+    Data.withObject+      "S3Location"+      ( \x ->+          S3Location'+            Prelude.<$> (x Data..: "bucket")+            Prelude.<*> (x Data..: "key")+      )++instance Prelude.Hashable S3Location where+  hashWithSalt _salt S3Location' {..} =+    _salt+      `Prelude.hashWithSalt` bucket+      `Prelude.hashWithSalt` key++instance Prelude.NFData S3Location where+  rnf S3Location' {..} =+    Prelude.rnf bucket `Prelude.seq` Prelude.rnf key
+ gen/Amazonka/FinSpaceData/Types/SchemaDefinition.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FinSpaceData.Types.SchemaDefinition+-- 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.FinSpaceData.Types.SchemaDefinition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types.ColumnDefinition+import qualified Amazonka.Prelude as Prelude++-- | Definition for a schema on a tabular Dataset.+--+-- /See:/ 'newSchemaDefinition' smart constructor.+data SchemaDefinition = SchemaDefinition'+  { -- | List of column definitions.+    columns :: Prelude.Maybe [ColumnDefinition],+    -- | List of column names used for primary key.+    primaryKeyColumns :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SchemaDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'columns', 'schemaDefinition_columns' - List of column definitions.+--+-- 'primaryKeyColumns', 'schemaDefinition_primaryKeyColumns' - List of column names used for primary key.+newSchemaDefinition ::+  SchemaDefinition+newSchemaDefinition =+  SchemaDefinition'+    { columns = Prelude.Nothing,+      primaryKeyColumns = Prelude.Nothing+    }++-- | List of column definitions.+schemaDefinition_columns :: Lens.Lens' SchemaDefinition (Prelude.Maybe [ColumnDefinition])+schemaDefinition_columns = Lens.lens (\SchemaDefinition' {columns} -> columns) (\s@SchemaDefinition' {} a -> s {columns = a} :: SchemaDefinition) Prelude.. Lens.mapping Lens.coerced++-- | List of column names used for primary key.+schemaDefinition_primaryKeyColumns :: Lens.Lens' SchemaDefinition (Prelude.Maybe [Prelude.Text])+schemaDefinition_primaryKeyColumns = Lens.lens (\SchemaDefinition' {primaryKeyColumns} -> primaryKeyColumns) (\s@SchemaDefinition' {} a -> s {primaryKeyColumns = a} :: SchemaDefinition) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON SchemaDefinition where+  parseJSON =+    Data.withObject+      "SchemaDefinition"+      ( \x ->+          SchemaDefinition'+            Prelude.<$> (x Data..:? "columns" Data..!= Prelude.mempty)+            Prelude.<*> ( x+                            Data..:? "primaryKeyColumns"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable SchemaDefinition where+  hashWithSalt _salt SchemaDefinition' {..} =+    _salt+      `Prelude.hashWithSalt` columns+      `Prelude.hashWithSalt` primaryKeyColumns++instance Prelude.NFData SchemaDefinition where+  rnf SchemaDefinition' {..} =+    Prelude.rnf columns+      `Prelude.seq` Prelude.rnf primaryKeyColumns++instance Data.ToJSON SchemaDefinition where+  toJSON SchemaDefinition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("columns" Data..=) Prelude.<$> columns,+            ("primaryKeyColumns" Data..=)+              Prelude.<$> primaryKeyColumns+          ]+      )
+ gen/Amazonka/FinSpaceData/Types/SchemaUnion.hs view
@@ -0,0 +1,79 @@+{-# 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.FinSpaceData.Types.SchemaUnion+-- 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.FinSpaceData.Types.SchemaUnion where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types.SchemaDefinition+import qualified Amazonka.Prelude as Prelude++-- | A union of schema types.+--+-- /See:/ 'newSchemaUnion' smart constructor.+data SchemaUnion = SchemaUnion'+  { -- | The configuration for a schema on a tabular Dataset.+    tabularSchemaConfig :: Prelude.Maybe SchemaDefinition+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SchemaUnion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tabularSchemaConfig', 'schemaUnion_tabularSchemaConfig' - The configuration for a schema on a tabular Dataset.+newSchemaUnion ::+  SchemaUnion+newSchemaUnion =+  SchemaUnion' {tabularSchemaConfig = Prelude.Nothing}++-- | The configuration for a schema on a tabular Dataset.+schemaUnion_tabularSchemaConfig :: Lens.Lens' SchemaUnion (Prelude.Maybe SchemaDefinition)+schemaUnion_tabularSchemaConfig = Lens.lens (\SchemaUnion' {tabularSchemaConfig} -> tabularSchemaConfig) (\s@SchemaUnion' {} a -> s {tabularSchemaConfig = a} :: SchemaUnion)++instance Data.FromJSON SchemaUnion where+  parseJSON =+    Data.withObject+      "SchemaUnion"+      ( \x ->+          SchemaUnion'+            Prelude.<$> (x Data..:? "tabularSchemaConfig")+      )++instance Prelude.Hashable SchemaUnion where+  hashWithSalt _salt SchemaUnion' {..} =+    _salt `Prelude.hashWithSalt` tabularSchemaConfig++instance Prelude.NFData SchemaUnion where+  rnf SchemaUnion' {..} =+    Prelude.rnf tabularSchemaConfig++instance Data.ToJSON SchemaUnion where+  toJSON SchemaUnion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tabularSchemaConfig" Data..=)+              Prelude.<$> tabularSchemaConfig+          ]+      )
+ gen/Amazonka/FinSpaceData/Types/User.hs view
@@ -0,0 +1,300 @@+{-# 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.FinSpaceData.Types.User+-- 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.FinSpaceData.Types.User where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types.ApiAccess+import Amazonka.FinSpaceData.Types.UserStatus+import Amazonka.FinSpaceData.Types.UserType+import qualified Amazonka.Prelude as Prelude++-- | The details of the user account.+--+-- /See:/ 'newUser' smart constructor.+data User = User'+  { -- | Indicates whether the user can use the+    -- @GetProgrammaticAccessCredentials@ API to obtain credentials that can+    -- then be used to access other FinSpace Data API operations.+    --+    -- -   @ENABLED@ – The user has permissions to use the APIs.+    --+    -- -   @DISABLED@ – The user does not have permissions to use any APIs.+    apiAccess :: Prelude.Maybe ApiAccess,+    -- | The ARN identifier of an AWS user or role that is allowed to call the+    -- @GetProgrammaticAccessCredentials@ API to obtain a credentials token for+    -- a specific FinSpace user. This must be an IAM role within your FinSpace+    -- account.+    apiAccessPrincipalArn :: Prelude.Maybe Prelude.Text,+    -- | The timestamp at which the user account was created in FinSpace. The+    -- value is determined as epoch time in milliseconds.+    createTime :: Prelude.Maybe Prelude.Integer,+    -- | The email address of the user. The email address serves as a uniquer+    -- identifier for each user and cannot be changed after it\'s created.+    emailAddress :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The first name of the user.+    firstName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | Describes the last time the user account was disabled. The value is+    -- determined as epoch time in milliseconds.+    lastDisabledTime :: Prelude.Maybe Prelude.Integer,+    -- | Describes the last time the user account was enabled. The value is+    -- determined as epoch time in milliseconds.+    lastEnabledTime :: Prelude.Maybe Prelude.Integer,+    -- | Describes the last time that the user logged into their account. The+    -- value is determined as epoch time in milliseconds.+    lastLoginTime :: Prelude.Maybe Prelude.Integer,+    -- | Describes the last time the user account was updated. The value is+    -- determined as epoch time in milliseconds.+    lastModifiedTime :: Prelude.Maybe Prelude.Integer,+    -- | The last name of the user.+    lastName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The current status of the user account.+    --+    -- -   @CREATING@ – The user account creation is in progress.+    --+    -- -   @ENABLED@ – The user account is created and is currently active.+    --+    -- -   @DISABLED@ – The user account is currently inactive.+    status :: Prelude.Maybe UserStatus,+    -- | Indicates the type of user.+    --+    -- -   @SUPER_USER@ – A user with permission to all the functionality and+    --     data in FinSpace.+    --+    -- -   @APP_USER@ – A user with specific permissions in FinSpace. The users+    --     are assigned permissions by adding them to a permission group.+    type' :: Prelude.Maybe UserType,+    -- | The unique identifier for the user.+    userId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'User' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiAccess', 'user_apiAccess' - Indicates whether the user can use the+-- @GetProgrammaticAccessCredentials@ API to obtain credentials that can+-- then be used to access other FinSpace Data API operations.+--+-- -   @ENABLED@ – The user has permissions to use the APIs.+--+-- -   @DISABLED@ – The user does not have permissions to use any APIs.+--+-- 'apiAccessPrincipalArn', 'user_apiAccessPrincipalArn' - The ARN identifier of an AWS user or role that is allowed to call the+-- @GetProgrammaticAccessCredentials@ API to obtain a credentials token for+-- a specific FinSpace user. This must be an IAM role within your FinSpace+-- account.+--+-- 'createTime', 'user_createTime' - The timestamp at which the user account was created in FinSpace. The+-- value is determined as epoch time in milliseconds.+--+-- 'emailAddress', 'user_emailAddress' - The email address of the user. The email address serves as a uniquer+-- identifier for each user and cannot be changed after it\'s created.+--+-- 'firstName', 'user_firstName' - The first name of the user.+--+-- 'lastDisabledTime', 'user_lastDisabledTime' - Describes the last time the user account was disabled. The value is+-- determined as epoch time in milliseconds.+--+-- 'lastEnabledTime', 'user_lastEnabledTime' - Describes the last time the user account was enabled. The value is+-- determined as epoch time in milliseconds.+--+-- 'lastLoginTime', 'user_lastLoginTime' - Describes the last time that the user logged into their account. The+-- value is determined as epoch time in milliseconds.+--+-- 'lastModifiedTime', 'user_lastModifiedTime' - Describes the last time the user account was updated. The value is+-- determined as epoch time in milliseconds.+--+-- 'lastName', 'user_lastName' - The last name of the user.+--+-- 'status', 'user_status' - The current status of the user account.+--+-- -   @CREATING@ – The user account creation is in progress.+--+-- -   @ENABLED@ – The user account is created and is currently active.+--+-- -   @DISABLED@ – The user account is currently inactive.+--+-- 'type'', 'user_type' - Indicates the type of user.+--+-- -   @SUPER_USER@ – A user with permission to all the functionality and+--     data in FinSpace.+--+-- -   @APP_USER@ – A user with specific permissions in FinSpace. The users+--     are assigned permissions by adding them to a permission group.+--+-- 'userId', 'user_userId' - The unique identifier for the user.+newUser ::+  User+newUser =+  User'+    { apiAccess = Prelude.Nothing,+      apiAccessPrincipalArn = Prelude.Nothing,+      createTime = Prelude.Nothing,+      emailAddress = Prelude.Nothing,+      firstName = Prelude.Nothing,+      lastDisabledTime = Prelude.Nothing,+      lastEnabledTime = Prelude.Nothing,+      lastLoginTime = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      lastName = Prelude.Nothing,+      status = Prelude.Nothing,+      type' = Prelude.Nothing,+      userId = Prelude.Nothing+    }++-- | Indicates whether the user can use the+-- @GetProgrammaticAccessCredentials@ API to obtain credentials that can+-- then be used to access other FinSpace Data API operations.+--+-- -   @ENABLED@ – The user has permissions to use the APIs.+--+-- -   @DISABLED@ – The user does not have permissions to use any APIs.+user_apiAccess :: Lens.Lens' User (Prelude.Maybe ApiAccess)+user_apiAccess = Lens.lens (\User' {apiAccess} -> apiAccess) (\s@User' {} a -> s {apiAccess = a} :: User)++-- | The ARN identifier of an AWS user or role that is allowed to call the+-- @GetProgrammaticAccessCredentials@ API to obtain a credentials token for+-- a specific FinSpace user. This must be an IAM role within your FinSpace+-- account.+user_apiAccessPrincipalArn :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_apiAccessPrincipalArn = Lens.lens (\User' {apiAccessPrincipalArn} -> apiAccessPrincipalArn) (\s@User' {} a -> s {apiAccessPrincipalArn = a} :: User)++-- | The timestamp at which the user account was created in FinSpace. The+-- value is determined as epoch time in milliseconds.+user_createTime :: Lens.Lens' User (Prelude.Maybe Prelude.Integer)+user_createTime = Lens.lens (\User' {createTime} -> createTime) (\s@User' {} a -> s {createTime = a} :: User)++-- | The email address of the user. The email address serves as a uniquer+-- identifier for each user and cannot be changed after it\'s created.+user_emailAddress :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_emailAddress = Lens.lens (\User' {emailAddress} -> emailAddress) (\s@User' {} a -> s {emailAddress = a} :: User) Prelude.. Lens.mapping Data._Sensitive++-- | The first name of the user.+user_firstName :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_firstName = Lens.lens (\User' {firstName} -> firstName) (\s@User' {} a -> s {firstName = a} :: User) Prelude.. Lens.mapping Data._Sensitive++-- | Describes the last time the user account was disabled. The value is+-- determined as epoch time in milliseconds.+user_lastDisabledTime :: Lens.Lens' User (Prelude.Maybe Prelude.Integer)+user_lastDisabledTime = Lens.lens (\User' {lastDisabledTime} -> lastDisabledTime) (\s@User' {} a -> s {lastDisabledTime = a} :: User)++-- | Describes the last time the user account was enabled. The value is+-- determined as epoch time in milliseconds.+user_lastEnabledTime :: Lens.Lens' User (Prelude.Maybe Prelude.Integer)+user_lastEnabledTime = Lens.lens (\User' {lastEnabledTime} -> lastEnabledTime) (\s@User' {} a -> s {lastEnabledTime = a} :: User)++-- | Describes the last time that the user logged into their account. The+-- value is determined as epoch time in milliseconds.+user_lastLoginTime :: Lens.Lens' User (Prelude.Maybe Prelude.Integer)+user_lastLoginTime = Lens.lens (\User' {lastLoginTime} -> lastLoginTime) (\s@User' {} a -> s {lastLoginTime = a} :: User)++-- | Describes the last time the user account was updated. The value is+-- determined as epoch time in milliseconds.+user_lastModifiedTime :: Lens.Lens' User (Prelude.Maybe Prelude.Integer)+user_lastModifiedTime = Lens.lens (\User' {lastModifiedTime} -> lastModifiedTime) (\s@User' {} a -> s {lastModifiedTime = a} :: User)++-- | The last name of the user.+user_lastName :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_lastName = Lens.lens (\User' {lastName} -> lastName) (\s@User' {} a -> s {lastName = a} :: User) Prelude.. Lens.mapping Data._Sensitive++-- | The current status of the user account.+--+-- -   @CREATING@ – The user account creation is in progress.+--+-- -   @ENABLED@ – The user account is created and is currently active.+--+-- -   @DISABLED@ – The user account is currently inactive.+user_status :: Lens.Lens' User (Prelude.Maybe UserStatus)+user_status = Lens.lens (\User' {status} -> status) (\s@User' {} a -> s {status = a} :: User)++-- | Indicates the type of user.+--+-- -   @SUPER_USER@ – A user with permission to all the functionality and+--     data in FinSpace.+--+-- -   @APP_USER@ – A user with specific permissions in FinSpace. The users+--     are assigned permissions by adding them to a permission group.+user_type :: Lens.Lens' User (Prelude.Maybe UserType)+user_type = Lens.lens (\User' {type'} -> type') (\s@User' {} a -> s {type' = a} :: User)++-- | The unique identifier for the user.+user_userId :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_userId = Lens.lens (\User' {userId} -> userId) (\s@User' {} a -> s {userId = a} :: User)++instance Data.FromJSON User where+  parseJSON =+    Data.withObject+      "User"+      ( \x ->+          User'+            Prelude.<$> (x Data..:? "apiAccess")+            Prelude.<*> (x Data..:? "apiAccessPrincipalArn")+            Prelude.<*> (x Data..:? "createTime")+            Prelude.<*> (x Data..:? "emailAddress")+            Prelude.<*> (x Data..:? "firstName")+            Prelude.<*> (x Data..:? "lastDisabledTime")+            Prelude.<*> (x Data..:? "lastEnabledTime")+            Prelude.<*> (x Data..:? "lastLoginTime")+            Prelude.<*> (x Data..:? "lastModifiedTime")+            Prelude.<*> (x Data..:? "lastName")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "type")+            Prelude.<*> (x Data..:? "userId")+      )++instance Prelude.Hashable User where+  hashWithSalt _salt User' {..} =+    _salt+      `Prelude.hashWithSalt` apiAccess+      `Prelude.hashWithSalt` apiAccessPrincipalArn+      `Prelude.hashWithSalt` createTime+      `Prelude.hashWithSalt` emailAddress+      `Prelude.hashWithSalt` firstName+      `Prelude.hashWithSalt` lastDisabledTime+      `Prelude.hashWithSalt` lastEnabledTime+      `Prelude.hashWithSalt` lastLoginTime+      `Prelude.hashWithSalt` lastModifiedTime+      `Prelude.hashWithSalt` lastName+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` userId++instance Prelude.NFData User where+  rnf User' {..} =+    Prelude.rnf apiAccess+      `Prelude.seq` Prelude.rnf apiAccessPrincipalArn+      `Prelude.seq` Prelude.rnf createTime+      `Prelude.seq` Prelude.rnf emailAddress+      `Prelude.seq` Prelude.rnf firstName+      `Prelude.seq` Prelude.rnf lastDisabledTime+      `Prelude.seq` Prelude.rnf lastEnabledTime+      `Prelude.seq` Prelude.rnf lastLoginTime+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf lastName+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf userId
+ gen/Amazonka/FinSpaceData/Types/UserByPermissionGroup.hs view
@@ -0,0 +1,253 @@+{-# 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.FinSpaceData.Types.UserByPermissionGroup+-- 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.FinSpaceData.Types.UserByPermissionGroup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types.ApiAccess+import Amazonka.FinSpaceData.Types.PermissionGroupMembershipStatus+import Amazonka.FinSpaceData.Types.UserStatus+import Amazonka.FinSpaceData.Types.UserType+import qualified Amazonka.Prelude as Prelude++-- | The structure of a user account associated with a permission group.+--+-- /See:/ 'newUserByPermissionGroup' smart constructor.+data UserByPermissionGroup = UserByPermissionGroup'+  { -- | Indicates whether the user can access FinSpace API operations.+    --+    -- -   @ENABLED@ – The user has permissions to use the API operations.+    --+    -- -   @DISABLED@ – The user does not have permissions to use any API+    --     operations.+    apiAccess :: Prelude.Maybe ApiAccess,+    -- | The IAM ARN identifier that is attached to FinSpace API calls.+    apiAccessPrincipalArn :: Prelude.Maybe Prelude.Text,+    -- | The email address of the user. The email address serves as a unique+    -- identifier for each user and cannot be changed after it\'s created.+    emailAddress :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The first name of the user.+    firstName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The last name of the user.+    lastName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | Indicates the status of the user account within a permission group.+    --+    -- -   @ADDITION_IN_PROGRESS@ – The user account is currently being added+    --     to the permission group.+    --+    -- -   @ADDITION_SUCCESS@ – The user account is successfully added to the+    --     permission group.+    --+    -- -   @REMOVAL_IN_PROGRESS@ – The user is currently being removed from the+    --     permission group.+    membershipStatus :: Prelude.Maybe PermissionGroupMembershipStatus,+    -- | The current status of the user account.+    --+    -- -   @CREATING@ – The user account creation is in progress.+    --+    -- -   @ENABLED@ – The user account is created and is currently active.+    --+    -- -   @DISABLED@ – The user account is currently inactive.+    status :: Prelude.Maybe UserStatus,+    -- | Indicates the type of user.+    --+    -- -   @SUPER_USER@ – A user with permission to all the functionality and+    --     data in FinSpace.+    --+    -- -   @APP_USER@ – A user with specific permissions in FinSpace. The users+    --     are assigned permissions by adding them to a permission group.+    type' :: Prelude.Maybe UserType,+    -- | The unique identifier for the user.+    userId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UserByPermissionGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiAccess', 'userByPermissionGroup_apiAccess' - Indicates whether the user can access FinSpace API operations.+--+-- -   @ENABLED@ – The user has permissions to use the API operations.+--+-- -   @DISABLED@ – The user does not have permissions to use any API+--     operations.+--+-- 'apiAccessPrincipalArn', 'userByPermissionGroup_apiAccessPrincipalArn' - The IAM ARN identifier that is attached to FinSpace API calls.+--+-- 'emailAddress', 'userByPermissionGroup_emailAddress' - The email address of the user. The email address serves as a unique+-- identifier for each user and cannot be changed after it\'s created.+--+-- 'firstName', 'userByPermissionGroup_firstName' - The first name of the user.+--+-- 'lastName', 'userByPermissionGroup_lastName' - The last name of the user.+--+-- 'membershipStatus', 'userByPermissionGroup_membershipStatus' - Indicates the status of the user account within a permission group.+--+-- -   @ADDITION_IN_PROGRESS@ – The user account is currently being added+--     to the permission group.+--+-- -   @ADDITION_SUCCESS@ – The user account is successfully added to the+--     permission group.+--+-- -   @REMOVAL_IN_PROGRESS@ – The user is currently being removed from the+--     permission group.+--+-- 'status', 'userByPermissionGroup_status' - The current status of the user account.+--+-- -   @CREATING@ – The user account creation is in progress.+--+-- -   @ENABLED@ – The user account is created and is currently active.+--+-- -   @DISABLED@ – The user account is currently inactive.+--+-- 'type'', 'userByPermissionGroup_type' - Indicates the type of user.+--+-- -   @SUPER_USER@ – A user with permission to all the functionality and+--     data in FinSpace.+--+-- -   @APP_USER@ – A user with specific permissions in FinSpace. The users+--     are assigned permissions by adding them to a permission group.+--+-- 'userId', 'userByPermissionGroup_userId' - The unique identifier for the user.+newUserByPermissionGroup ::+  UserByPermissionGroup+newUserByPermissionGroup =+  UserByPermissionGroup'+    { apiAccess = Prelude.Nothing,+      apiAccessPrincipalArn = Prelude.Nothing,+      emailAddress = Prelude.Nothing,+      firstName = Prelude.Nothing,+      lastName = Prelude.Nothing,+      membershipStatus = Prelude.Nothing,+      status = Prelude.Nothing,+      type' = Prelude.Nothing,+      userId = Prelude.Nothing+    }++-- | Indicates whether the user can access FinSpace API operations.+--+-- -   @ENABLED@ – The user has permissions to use the API operations.+--+-- -   @DISABLED@ – The user does not have permissions to use any API+--     operations.+userByPermissionGroup_apiAccess :: Lens.Lens' UserByPermissionGroup (Prelude.Maybe ApiAccess)+userByPermissionGroup_apiAccess = Lens.lens (\UserByPermissionGroup' {apiAccess} -> apiAccess) (\s@UserByPermissionGroup' {} a -> s {apiAccess = a} :: UserByPermissionGroup)++-- | The IAM ARN identifier that is attached to FinSpace API calls.+userByPermissionGroup_apiAccessPrincipalArn :: Lens.Lens' UserByPermissionGroup (Prelude.Maybe Prelude.Text)+userByPermissionGroup_apiAccessPrincipalArn = Lens.lens (\UserByPermissionGroup' {apiAccessPrincipalArn} -> apiAccessPrincipalArn) (\s@UserByPermissionGroup' {} a -> s {apiAccessPrincipalArn = a} :: UserByPermissionGroup)++-- | The email address of the user. The email address serves as a unique+-- identifier for each user and cannot be changed after it\'s created.+userByPermissionGroup_emailAddress :: Lens.Lens' UserByPermissionGroup (Prelude.Maybe Prelude.Text)+userByPermissionGroup_emailAddress = Lens.lens (\UserByPermissionGroup' {emailAddress} -> emailAddress) (\s@UserByPermissionGroup' {} a -> s {emailAddress = a} :: UserByPermissionGroup) Prelude.. Lens.mapping Data._Sensitive++-- | The first name of the user.+userByPermissionGroup_firstName :: Lens.Lens' UserByPermissionGroup (Prelude.Maybe Prelude.Text)+userByPermissionGroup_firstName = Lens.lens (\UserByPermissionGroup' {firstName} -> firstName) (\s@UserByPermissionGroup' {} a -> s {firstName = a} :: UserByPermissionGroup) Prelude.. Lens.mapping Data._Sensitive++-- | The last name of the user.+userByPermissionGroup_lastName :: Lens.Lens' UserByPermissionGroup (Prelude.Maybe Prelude.Text)+userByPermissionGroup_lastName = Lens.lens (\UserByPermissionGroup' {lastName} -> lastName) (\s@UserByPermissionGroup' {} a -> s {lastName = a} :: UserByPermissionGroup) Prelude.. Lens.mapping Data._Sensitive++-- | Indicates the status of the user account within a permission group.+--+-- -   @ADDITION_IN_PROGRESS@ – The user account is currently being added+--     to the permission group.+--+-- -   @ADDITION_SUCCESS@ – The user account is successfully added to the+--     permission group.+--+-- -   @REMOVAL_IN_PROGRESS@ – The user is currently being removed from the+--     permission group.+userByPermissionGroup_membershipStatus :: Lens.Lens' UserByPermissionGroup (Prelude.Maybe PermissionGroupMembershipStatus)+userByPermissionGroup_membershipStatus = Lens.lens (\UserByPermissionGroup' {membershipStatus} -> membershipStatus) (\s@UserByPermissionGroup' {} a -> s {membershipStatus = a} :: UserByPermissionGroup)++-- | The current status of the user account.+--+-- -   @CREATING@ – The user account creation is in progress.+--+-- -   @ENABLED@ – The user account is created and is currently active.+--+-- -   @DISABLED@ – The user account is currently inactive.+userByPermissionGroup_status :: Lens.Lens' UserByPermissionGroup (Prelude.Maybe UserStatus)+userByPermissionGroup_status = Lens.lens (\UserByPermissionGroup' {status} -> status) (\s@UserByPermissionGroup' {} a -> s {status = a} :: UserByPermissionGroup)++-- | Indicates the type of user.+--+-- -   @SUPER_USER@ – A user with permission to all the functionality and+--     data in FinSpace.+--+-- -   @APP_USER@ – A user with specific permissions in FinSpace. The users+--     are assigned permissions by adding them to a permission group.+userByPermissionGroup_type :: Lens.Lens' UserByPermissionGroup (Prelude.Maybe UserType)+userByPermissionGroup_type = Lens.lens (\UserByPermissionGroup' {type'} -> type') (\s@UserByPermissionGroup' {} a -> s {type' = a} :: UserByPermissionGroup)++-- | The unique identifier for the user.+userByPermissionGroup_userId :: Lens.Lens' UserByPermissionGroup (Prelude.Maybe Prelude.Text)+userByPermissionGroup_userId = Lens.lens (\UserByPermissionGroup' {userId} -> userId) (\s@UserByPermissionGroup' {} a -> s {userId = a} :: UserByPermissionGroup)++instance Data.FromJSON UserByPermissionGroup where+  parseJSON =+    Data.withObject+      "UserByPermissionGroup"+      ( \x ->+          UserByPermissionGroup'+            Prelude.<$> (x Data..:? "apiAccess")+            Prelude.<*> (x Data..:? "apiAccessPrincipalArn")+            Prelude.<*> (x Data..:? "emailAddress")+            Prelude.<*> (x Data..:? "firstName")+            Prelude.<*> (x Data..:? "lastName")+            Prelude.<*> (x Data..:? "membershipStatus")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "type")+            Prelude.<*> (x Data..:? "userId")+      )++instance Prelude.Hashable UserByPermissionGroup where+  hashWithSalt _salt UserByPermissionGroup' {..} =+    _salt+      `Prelude.hashWithSalt` apiAccess+      `Prelude.hashWithSalt` apiAccessPrincipalArn+      `Prelude.hashWithSalt` emailAddress+      `Prelude.hashWithSalt` firstName+      `Prelude.hashWithSalt` lastName+      `Prelude.hashWithSalt` membershipStatus+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` userId++instance Prelude.NFData UserByPermissionGroup where+  rnf UserByPermissionGroup' {..} =+    Prelude.rnf apiAccess+      `Prelude.seq` Prelude.rnf apiAccessPrincipalArn+      `Prelude.seq` Prelude.rnf emailAddress+      `Prelude.seq` Prelude.rnf firstName+      `Prelude.seq` Prelude.rnf lastName+      `Prelude.seq` Prelude.rnf membershipStatus+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf userId
+ gen/Amazonka/FinSpaceData/Types/UserStatus.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.FinSpaceData.Types.UserStatus+-- 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.FinSpaceData.Types.UserStatus+  ( UserStatus+      ( ..,+        UserStatus_CREATING,+        UserStatus_DISABLED,+        UserStatus_ENABLED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype UserStatus = UserStatus'+  { fromUserStatus ::+      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 UserStatus_CREATING :: UserStatus+pattern UserStatus_CREATING = UserStatus' "CREATING"++pattern UserStatus_DISABLED :: UserStatus+pattern UserStatus_DISABLED = UserStatus' "DISABLED"++pattern UserStatus_ENABLED :: UserStatus+pattern UserStatus_ENABLED = UserStatus' "ENABLED"++{-# COMPLETE+  UserStatus_CREATING,+  UserStatus_DISABLED,+  UserStatus_ENABLED,+  UserStatus'+  #-}
+ gen/Amazonka/FinSpaceData/Types/UserType.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.FinSpaceData.Types.UserType+-- 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.FinSpaceData.Types.UserType+  ( UserType+      ( ..,+        UserType_APP_USER,+        UserType_SUPER_USER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype UserType = UserType'+  { fromUserType ::+      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 UserType_APP_USER :: UserType+pattern UserType_APP_USER = UserType' "APP_USER"++pattern UserType_SUPER_USER :: UserType+pattern UserType_SUPER_USER = UserType' "SUPER_USER"++{-# COMPLETE+  UserType_APP_USER,+  UserType_SUPER_USER,+  UserType'+  #-}
+ gen/Amazonka/FinSpaceData/UpdateChangeset.hs view
@@ -0,0 +1,360 @@+{-# 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.FinSpaceData.UpdateChangeset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a FinSpace Changeset.+module Amazonka.FinSpaceData.UpdateChangeset+  ( -- * Creating a Request+    UpdateChangeset (..),+    newUpdateChangeset,++    -- * Request Lenses+    updateChangeset_clientToken,+    updateChangeset_datasetId,+    updateChangeset_changesetId,+    updateChangeset_sourceParams,+    updateChangeset_formatParams,++    -- * Destructuring the Response+    UpdateChangesetResponse (..),+    newUpdateChangesetResponse,++    -- * Response Lenses+    updateChangesetResponse_changesetId,+    updateChangesetResponse_datasetId,+    updateChangesetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Request to update an existing changeset.+--+-- /See:/ 'newUpdateChangeset' smart constructor.+data UpdateChangeset = UpdateChangeset'+  { -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the FinSpace Dataset in which the Changeset is+    -- created.+    datasetId :: Prelude.Text,+    -- | The unique identifier for the Changeset to update.+    changesetId :: Prelude.Text,+    -- | Options that define the location of the data being ingested+    -- (@s3SourcePath@) and the source of the changeset (@sourceType@).+    --+    -- Both @s3SourcePath@ and @sourceType@ are required attributes.+    --+    -- Here is an example of how you could specify the @sourceParams@:+    --+    -- @ \"sourceParams\": { \"s3SourcePath\": \"s3:\/\/finspace-landing-us-east-2-bk7gcfvitndqa6ebnvys4d\/scratch\/wr5hh8pwkpqqkxa4sxrmcw\/ingestion\/equity.csv\", \"sourceType\": \"S3\" } @+    --+    -- The S3 path that you specify must allow the FinSpace role access. To do+    -- that, you first need to configure the IAM policy on S3 bucket. For more+    -- information, see+    -- <https://docs.aws.amazon.com/finspace/latest/data-api/fs-using-the-finspace-api.html#access-s3-buckets Loading data from an Amazon S3 Bucket using the FinSpace API>section.+    sourceParams :: Prelude.HashMap Prelude.Text Prelude.Text,+    -- | Options that define the structure of the source file(s) including the+    -- format type (@formatType@), header row (@withHeader@), data separation+    -- character (@separator@) and the type of compression (@compression@).+    --+    -- @formatType@ is a required attribute and can have the following values:+    --+    -- -   @PARQUET@ – Parquet source file format.+    --+    -- -   @CSV@ – CSV source file format.+    --+    -- -   @JSON@ – JSON source file format.+    --+    -- -   @XML@ – XML source file format.+    --+    -- Here is an example of how you could specify the @formatParams@:+    --+    -- @ \"formatParams\": { \"formatType\": \"CSV\", \"withHeader\": \"true\", \"separator\": \",\", \"compression\":\"None\" } @+    --+    -- Note that if you only provide @formatType@ as @CSV@, the rest of the+    -- attributes will automatically default to CSV values as following:+    --+    -- @ { \"withHeader\": \"true\", \"separator\": \",\" } @+    --+    -- For more information about supported file formats, see+    -- <https://docs.aws.amazon.com/finspace/latest/userguide/supported-data-types.html Supported Data Types and File Formats>+    -- in the FinSpace User Guide.+    formatParams :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateChangeset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateChangeset_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'datasetId', 'updateChangeset_datasetId' - The unique identifier for the FinSpace Dataset in which the Changeset is+-- created.+--+-- 'changesetId', 'updateChangeset_changesetId' - The unique identifier for the Changeset to update.+--+-- 'sourceParams', 'updateChangeset_sourceParams' - Options that define the location of the data being ingested+-- (@s3SourcePath@) and the source of the changeset (@sourceType@).+--+-- Both @s3SourcePath@ and @sourceType@ are required attributes.+--+-- Here is an example of how you could specify the @sourceParams@:+--+-- @ \"sourceParams\": { \"s3SourcePath\": \"s3:\/\/finspace-landing-us-east-2-bk7gcfvitndqa6ebnvys4d\/scratch\/wr5hh8pwkpqqkxa4sxrmcw\/ingestion\/equity.csv\", \"sourceType\": \"S3\" } @+--+-- The S3 path that you specify must allow the FinSpace role access. To do+-- that, you first need to configure the IAM policy on S3 bucket. For more+-- information, see+-- <https://docs.aws.amazon.com/finspace/latest/data-api/fs-using-the-finspace-api.html#access-s3-buckets Loading data from an Amazon S3 Bucket using the FinSpace API>section.+--+-- 'formatParams', 'updateChangeset_formatParams' - Options that define the structure of the source file(s) including the+-- format type (@formatType@), header row (@withHeader@), data separation+-- character (@separator@) and the type of compression (@compression@).+--+-- @formatType@ is a required attribute and can have the following values:+--+-- -   @PARQUET@ – Parquet source file format.+--+-- -   @CSV@ – CSV source file format.+--+-- -   @JSON@ – JSON source file format.+--+-- -   @XML@ – XML source file format.+--+-- Here is an example of how you could specify the @formatParams@:+--+-- @ \"formatParams\": { \"formatType\": \"CSV\", \"withHeader\": \"true\", \"separator\": \",\", \"compression\":\"None\" } @+--+-- Note that if you only provide @formatType@ as @CSV@, the rest of the+-- attributes will automatically default to CSV values as following:+--+-- @ { \"withHeader\": \"true\", \"separator\": \",\" } @+--+-- For more information about supported file formats, see+-- <https://docs.aws.amazon.com/finspace/latest/userguide/supported-data-types.html Supported Data Types and File Formats>+-- in the FinSpace User Guide.+newUpdateChangeset ::+  -- | 'datasetId'+  Prelude.Text ->+  -- | 'changesetId'+  Prelude.Text ->+  UpdateChangeset+newUpdateChangeset pDatasetId_ pChangesetId_ =+  UpdateChangeset'+    { clientToken = Prelude.Nothing,+      datasetId = pDatasetId_,+      changesetId = pChangesetId_,+      sourceParams = Prelude.mempty,+      formatParams = Prelude.mempty+    }++-- | A token that ensures idempotency. This token expires in 10 minutes.+updateChangeset_clientToken :: Lens.Lens' UpdateChangeset (Prelude.Maybe Prelude.Text)+updateChangeset_clientToken = Lens.lens (\UpdateChangeset' {clientToken} -> clientToken) (\s@UpdateChangeset' {} a -> s {clientToken = a} :: UpdateChangeset)++-- | The unique identifier for the FinSpace Dataset in which the Changeset is+-- created.+updateChangeset_datasetId :: Lens.Lens' UpdateChangeset Prelude.Text+updateChangeset_datasetId = Lens.lens (\UpdateChangeset' {datasetId} -> datasetId) (\s@UpdateChangeset' {} a -> s {datasetId = a} :: UpdateChangeset)++-- | The unique identifier for the Changeset to update.+updateChangeset_changesetId :: Lens.Lens' UpdateChangeset Prelude.Text+updateChangeset_changesetId = Lens.lens (\UpdateChangeset' {changesetId} -> changesetId) (\s@UpdateChangeset' {} a -> s {changesetId = a} :: UpdateChangeset)++-- | Options that define the location of the data being ingested+-- (@s3SourcePath@) and the source of the changeset (@sourceType@).+--+-- Both @s3SourcePath@ and @sourceType@ are required attributes.+--+-- Here is an example of how you could specify the @sourceParams@:+--+-- @ \"sourceParams\": { \"s3SourcePath\": \"s3:\/\/finspace-landing-us-east-2-bk7gcfvitndqa6ebnvys4d\/scratch\/wr5hh8pwkpqqkxa4sxrmcw\/ingestion\/equity.csv\", \"sourceType\": \"S3\" } @+--+-- The S3 path that you specify must allow the FinSpace role access. To do+-- that, you first need to configure the IAM policy on S3 bucket. For more+-- information, see+-- <https://docs.aws.amazon.com/finspace/latest/data-api/fs-using-the-finspace-api.html#access-s3-buckets Loading data from an Amazon S3 Bucket using the FinSpace API>section.+updateChangeset_sourceParams :: Lens.Lens' UpdateChangeset (Prelude.HashMap Prelude.Text Prelude.Text)+updateChangeset_sourceParams = Lens.lens (\UpdateChangeset' {sourceParams} -> sourceParams) (\s@UpdateChangeset' {} a -> s {sourceParams = a} :: UpdateChangeset) Prelude.. Lens.coerced++-- | Options that define the structure of the source file(s) including the+-- format type (@formatType@), header row (@withHeader@), data separation+-- character (@separator@) and the type of compression (@compression@).+--+-- @formatType@ is a required attribute and can have the following values:+--+-- -   @PARQUET@ – Parquet source file format.+--+-- -   @CSV@ – CSV source file format.+--+-- -   @JSON@ – JSON source file format.+--+-- -   @XML@ – XML source file format.+--+-- Here is an example of how you could specify the @formatParams@:+--+-- @ \"formatParams\": { \"formatType\": \"CSV\", \"withHeader\": \"true\", \"separator\": \",\", \"compression\":\"None\" } @+--+-- Note that if you only provide @formatType@ as @CSV@, the rest of the+-- attributes will automatically default to CSV values as following:+--+-- @ { \"withHeader\": \"true\", \"separator\": \",\" } @+--+-- For more information about supported file formats, see+-- <https://docs.aws.amazon.com/finspace/latest/userguide/supported-data-types.html Supported Data Types and File Formats>+-- in the FinSpace User Guide.+updateChangeset_formatParams :: Lens.Lens' UpdateChangeset (Prelude.HashMap Prelude.Text Prelude.Text)+updateChangeset_formatParams = Lens.lens (\UpdateChangeset' {formatParams} -> formatParams) (\s@UpdateChangeset' {} a -> s {formatParams = a} :: UpdateChangeset) Prelude.. Lens.coerced++instance Core.AWSRequest UpdateChangeset where+  type+    AWSResponse UpdateChangeset =+      UpdateChangesetResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateChangesetResponse'+            Prelude.<$> (x Data..?> "changesetId")+            Prelude.<*> (x Data..?> "datasetId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateChangeset where+  hashWithSalt _salt UpdateChangeset' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` datasetId+      `Prelude.hashWithSalt` changesetId+      `Prelude.hashWithSalt` sourceParams+      `Prelude.hashWithSalt` formatParams++instance Prelude.NFData UpdateChangeset where+  rnf UpdateChangeset' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf datasetId+      `Prelude.seq` Prelude.rnf changesetId+      `Prelude.seq` Prelude.rnf sourceParams+      `Prelude.seq` Prelude.rnf formatParams++instance Data.ToHeaders UpdateChangeset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateChangeset where+  toJSON UpdateChangeset' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            Prelude.Just ("sourceParams" Data..= sourceParams),+            Prelude.Just ("formatParams" Data..= formatParams)+          ]+      )++instance Data.ToPath UpdateChangeset where+  toPath UpdateChangeset' {..} =+    Prelude.mconcat+      [ "/datasets/",+        Data.toBS datasetId,+        "/changesetsv2/",+        Data.toBS changesetId+      ]++instance Data.ToQuery UpdateChangeset where+  toQuery = Prelude.const Prelude.mempty++-- | The response from a update changeset operation.+--+-- /See:/ 'newUpdateChangesetResponse' smart constructor.+data UpdateChangesetResponse = UpdateChangesetResponse'+  { -- | The unique identifier for the Changeset to update.+    changesetId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the FinSpace Dataset in which the Changeset is+    -- created.+    datasetId :: 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 'UpdateChangesetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'changesetId', 'updateChangesetResponse_changesetId' - The unique identifier for the Changeset to update.+--+-- 'datasetId', 'updateChangesetResponse_datasetId' - The unique identifier for the FinSpace Dataset in which the Changeset is+-- created.+--+-- 'httpStatus', 'updateChangesetResponse_httpStatus' - The response's http status code.+newUpdateChangesetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateChangesetResponse+newUpdateChangesetResponse pHttpStatus_ =+  UpdateChangesetResponse'+    { changesetId =+        Prelude.Nothing,+      datasetId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for the Changeset to update.+updateChangesetResponse_changesetId :: Lens.Lens' UpdateChangesetResponse (Prelude.Maybe Prelude.Text)+updateChangesetResponse_changesetId = Lens.lens (\UpdateChangesetResponse' {changesetId} -> changesetId) (\s@UpdateChangesetResponse' {} a -> s {changesetId = a} :: UpdateChangesetResponse)++-- | The unique identifier for the FinSpace Dataset in which the Changeset is+-- created.+updateChangesetResponse_datasetId :: Lens.Lens' UpdateChangesetResponse (Prelude.Maybe Prelude.Text)+updateChangesetResponse_datasetId = Lens.lens (\UpdateChangesetResponse' {datasetId} -> datasetId) (\s@UpdateChangesetResponse' {} a -> s {datasetId = a} :: UpdateChangesetResponse)++-- | The response's http status code.+updateChangesetResponse_httpStatus :: Lens.Lens' UpdateChangesetResponse Prelude.Int+updateChangesetResponse_httpStatus = Lens.lens (\UpdateChangesetResponse' {httpStatus} -> httpStatus) (\s@UpdateChangesetResponse' {} a -> s {httpStatus = a} :: UpdateChangesetResponse)++instance Prelude.NFData UpdateChangesetResponse where+  rnf UpdateChangesetResponse' {..} =+    Prelude.rnf changesetId+      `Prelude.seq` Prelude.rnf datasetId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/UpdateDataset.hs view
@@ -0,0 +1,269 @@+{-# 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.FinSpaceData.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)+--+-- Updates a FinSpace Dataset.+module Amazonka.FinSpaceData.UpdateDataset+  ( -- * Creating a Request+    UpdateDataset (..),+    newUpdateDataset,++    -- * Request Lenses+    updateDataset_alias,+    updateDataset_clientToken,+    updateDataset_datasetDescription,+    updateDataset_schemaDefinition,+    updateDataset_datasetId,+    updateDataset_datasetTitle,+    updateDataset_kind,++    -- * Destructuring the Response+    UpdateDatasetResponse (..),+    newUpdateDatasetResponse,++    -- * Response Lenses+    updateDatasetResponse_datasetId,+    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.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request for an UpdateDataset operation+--+-- /See:/ 'newUpdateDataset' smart constructor.+data UpdateDataset = UpdateDataset'+  { -- | The unique resource identifier for a Dataset.+    alias :: Prelude.Maybe Prelude.Text,+    -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A description for the Dataset.+    datasetDescription :: Prelude.Maybe Prelude.Text,+    -- | Definition for a schema on a tabular Dataset.+    schemaDefinition :: Prelude.Maybe SchemaUnion,+    -- | The unique identifier for the Dataset to update.+    datasetId :: Prelude.Text,+    -- | A display title for the Dataset.+    datasetTitle :: Prelude.Text,+    -- | The format in which the Dataset data is structured.+    --+    -- -   @TABULAR@ – Data is structured in a tabular format.+    --+    -- -   @NON_TABULAR@ – Data is structured in a non-tabular format.+    kind :: DatasetKind+  }+  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:+--+-- 'alias', 'updateDataset_alias' - The unique resource identifier for a Dataset.+--+-- 'clientToken', 'updateDataset_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'datasetDescription', 'updateDataset_datasetDescription' - A description for the Dataset.+--+-- 'schemaDefinition', 'updateDataset_schemaDefinition' - Definition for a schema on a tabular Dataset.+--+-- 'datasetId', 'updateDataset_datasetId' - The unique identifier for the Dataset to update.+--+-- 'datasetTitle', 'updateDataset_datasetTitle' - A display title for the Dataset.+--+-- 'kind', 'updateDataset_kind' - The format in which the Dataset data is structured.+--+-- -   @TABULAR@ – Data is structured in a tabular format.+--+-- -   @NON_TABULAR@ – Data is structured in a non-tabular format.+newUpdateDataset ::+  -- | 'datasetId'+  Prelude.Text ->+  -- | 'datasetTitle'+  Prelude.Text ->+  -- | 'kind'+  DatasetKind ->+  UpdateDataset+newUpdateDataset pDatasetId_ pDatasetTitle_ pKind_ =+  UpdateDataset'+    { alias = Prelude.Nothing,+      clientToken = Prelude.Nothing,+      datasetDescription = Prelude.Nothing,+      schemaDefinition = Prelude.Nothing,+      datasetId = pDatasetId_,+      datasetTitle = pDatasetTitle_,+      kind = pKind_+    }++-- | The unique resource identifier for a Dataset.+updateDataset_alias :: Lens.Lens' UpdateDataset (Prelude.Maybe Prelude.Text)+updateDataset_alias = Lens.lens (\UpdateDataset' {alias} -> alias) (\s@UpdateDataset' {} a -> s {alias = a} :: UpdateDataset)++-- | A token that ensures idempotency. This token expires in 10 minutes.+updateDataset_clientToken :: Lens.Lens' UpdateDataset (Prelude.Maybe Prelude.Text)+updateDataset_clientToken = Lens.lens (\UpdateDataset' {clientToken} -> clientToken) (\s@UpdateDataset' {} a -> s {clientToken = a} :: UpdateDataset)++-- | A description for the Dataset.+updateDataset_datasetDescription :: Lens.Lens' UpdateDataset (Prelude.Maybe Prelude.Text)+updateDataset_datasetDescription = Lens.lens (\UpdateDataset' {datasetDescription} -> datasetDescription) (\s@UpdateDataset' {} a -> s {datasetDescription = a} :: UpdateDataset)++-- | Definition for a schema on a tabular Dataset.+updateDataset_schemaDefinition :: Lens.Lens' UpdateDataset (Prelude.Maybe SchemaUnion)+updateDataset_schemaDefinition = Lens.lens (\UpdateDataset' {schemaDefinition} -> schemaDefinition) (\s@UpdateDataset' {} a -> s {schemaDefinition = a} :: UpdateDataset)++-- | The unique identifier for the Dataset to update.+updateDataset_datasetId :: Lens.Lens' UpdateDataset Prelude.Text+updateDataset_datasetId = Lens.lens (\UpdateDataset' {datasetId} -> datasetId) (\s@UpdateDataset' {} a -> s {datasetId = a} :: UpdateDataset)++-- | A display title for the Dataset.+updateDataset_datasetTitle :: Lens.Lens' UpdateDataset Prelude.Text+updateDataset_datasetTitle = Lens.lens (\UpdateDataset' {datasetTitle} -> datasetTitle) (\s@UpdateDataset' {} a -> s {datasetTitle = a} :: UpdateDataset)++-- | The format in which the Dataset data is structured.+--+-- -   @TABULAR@ – Data is structured in a tabular format.+--+-- -   @NON_TABULAR@ – Data is structured in a non-tabular format.+updateDataset_kind :: Lens.Lens' UpdateDataset DatasetKind+updateDataset_kind = Lens.lens (\UpdateDataset' {kind} -> kind) (\s@UpdateDataset' {} a -> s {kind = a} :: UpdateDataset)++instance Core.AWSRequest UpdateDataset where+  type+    AWSResponse UpdateDataset =+      UpdateDatasetResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateDatasetResponse'+            Prelude.<$> (x Data..?> "datasetId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateDataset where+  hashWithSalt _salt UpdateDataset' {..} =+    _salt+      `Prelude.hashWithSalt` alias+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` datasetDescription+      `Prelude.hashWithSalt` schemaDefinition+      `Prelude.hashWithSalt` datasetId+      `Prelude.hashWithSalt` datasetTitle+      `Prelude.hashWithSalt` kind++instance Prelude.NFData UpdateDataset where+  rnf UpdateDataset' {..} =+    Prelude.rnf alias+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf datasetDescription+      `Prelude.seq` Prelude.rnf schemaDefinition+      `Prelude.seq` Prelude.rnf datasetId+      `Prelude.seq` Prelude.rnf datasetTitle+      `Prelude.seq` Prelude.rnf kind++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+          [ ("alias" Data..=) Prelude.<$> alias,+            ("clientToken" Data..=) Prelude.<$> clientToken,+            ("datasetDescription" Data..=)+              Prelude.<$> datasetDescription,+            ("schemaDefinition" Data..=)+              Prelude.<$> schemaDefinition,+            Prelude.Just ("datasetTitle" Data..= datasetTitle),+            Prelude.Just ("kind" Data..= kind)+          ]+      )++instance Data.ToPath UpdateDataset where+  toPath UpdateDataset' {..} =+    Prelude.mconcat+      ["/datasetsv2/", Data.toBS datasetId]++instance Data.ToQuery UpdateDataset where+  toQuery = Prelude.const Prelude.mempty++-- | The response from an UpdateDataset operation+--+-- /See:/ 'newUpdateDatasetResponse' smart constructor.+data UpdateDatasetResponse = UpdateDatasetResponse'+  { -- | The unique identifier for updated Dataset.+    datasetId :: 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 '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:+--+-- 'datasetId', 'updateDatasetResponse_datasetId' - The unique identifier for updated Dataset.+--+-- 'httpStatus', 'updateDatasetResponse_httpStatus' - The response's http status code.+newUpdateDatasetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateDatasetResponse+newUpdateDatasetResponse pHttpStatus_ =+  UpdateDatasetResponse'+    { datasetId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for updated Dataset.+updateDatasetResponse_datasetId :: Lens.Lens' UpdateDatasetResponse (Prelude.Maybe Prelude.Text)+updateDatasetResponse_datasetId = Lens.lens (\UpdateDatasetResponse' {datasetId} -> datasetId) (\s@UpdateDatasetResponse' {} a -> s {datasetId = a} :: UpdateDatasetResponse)++-- | 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 datasetId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/UpdatePermissionGroup.hs view
@@ -0,0 +1,303 @@+{-# 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.FinSpaceData.UpdatePermissionGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the details of a permission group. You cannot modify a+-- @permissionGroupID@.+module Amazonka.FinSpaceData.UpdatePermissionGroup+  ( -- * Creating a Request+    UpdatePermissionGroup (..),+    newUpdatePermissionGroup,++    -- * Request Lenses+    updatePermissionGroup_applicationPermissions,+    updatePermissionGroup_clientToken,+    updatePermissionGroup_description,+    updatePermissionGroup_name,+    updatePermissionGroup_permissionGroupId,++    -- * Destructuring the Response+    UpdatePermissionGroupResponse (..),+    newUpdatePermissionGroupResponse,++    -- * Response Lenses+    updatePermissionGroupResponse_permissionGroupId,+    updatePermissionGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdatePermissionGroup' smart constructor.+data UpdatePermissionGroup = UpdatePermissionGroup'+  { -- | The permissions that are granted to a specific group for accessing the+    -- FinSpace application.+    --+    -- When assigning application permissions, be aware that the permission+    -- @ManageUsersAndGroups@ allows users to grant themselves or others access+    -- to any functionality in their FinSpace environment\'s application. It+    -- should only be granted to trusted users.+    --+    -- -   @CreateDataset@ – Group members can create new datasets.+    --+    -- -   @ManageClusters@ – Group members can manage Apache Spark clusters+    --     from FinSpace notebooks.+    --+    -- -   @ManageUsersAndGroups@ – Group members can manage users and+    --     permission groups. This is a privileged permission that allows users+    --     to grant themselves or others access to any functionality in the+    --     application. It should only be granted to trusted users.+    --+    -- -   @ManageAttributeSets@ – Group members can manage attribute sets.+    --+    -- -   @ViewAuditData@ – Group members can view audit data.+    --+    -- -   @AccessNotebooks@ – Group members will have access to FinSpace+    --     notebooks.+    --+    -- -   @GetTemporaryCredentials@ – Group members can get temporary API+    --     credentials.+    applicationPermissions :: Prelude.Maybe [ApplicationPermission],+    -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A brief description for the permission group.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The name of the permission group.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The unique identifier for the permission group to update.+    permissionGroupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdatePermissionGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationPermissions', 'updatePermissionGroup_applicationPermissions' - The permissions that are granted to a specific group for accessing the+-- FinSpace application.+--+-- When assigning application permissions, be aware that the permission+-- @ManageUsersAndGroups@ allows users to grant themselves or others access+-- to any functionality in their FinSpace environment\'s application. It+-- should only be granted to trusted users.+--+-- -   @CreateDataset@ – Group members can create new datasets.+--+-- -   @ManageClusters@ – Group members can manage Apache Spark clusters+--     from FinSpace notebooks.+--+-- -   @ManageUsersAndGroups@ – Group members can manage users and+--     permission groups. This is a privileged permission that allows users+--     to grant themselves or others access to any functionality in the+--     application. It should only be granted to trusted users.+--+-- -   @ManageAttributeSets@ – Group members can manage attribute sets.+--+-- -   @ViewAuditData@ – Group members can view audit data.+--+-- -   @AccessNotebooks@ – Group members will have access to FinSpace+--     notebooks.+--+-- -   @GetTemporaryCredentials@ – Group members can get temporary API+--     credentials.+--+-- 'clientToken', 'updatePermissionGroup_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'description', 'updatePermissionGroup_description' - A brief description for the permission group.+--+-- 'name', 'updatePermissionGroup_name' - The name of the permission group.+--+-- 'permissionGroupId', 'updatePermissionGroup_permissionGroupId' - The unique identifier for the permission group to update.+newUpdatePermissionGroup ::+  -- | 'permissionGroupId'+  Prelude.Text ->+  UpdatePermissionGroup+newUpdatePermissionGroup pPermissionGroupId_ =+  UpdatePermissionGroup'+    { applicationPermissions =+        Prelude.Nothing,+      clientToken = Prelude.Nothing,+      description = Prelude.Nothing,+      name = Prelude.Nothing,+      permissionGroupId = pPermissionGroupId_+    }++-- | The permissions that are granted to a specific group for accessing the+-- FinSpace application.+--+-- When assigning application permissions, be aware that the permission+-- @ManageUsersAndGroups@ allows users to grant themselves or others access+-- to any functionality in their FinSpace environment\'s application. It+-- should only be granted to trusted users.+--+-- -   @CreateDataset@ – Group members can create new datasets.+--+-- -   @ManageClusters@ – Group members can manage Apache Spark clusters+--     from FinSpace notebooks.+--+-- -   @ManageUsersAndGroups@ – Group members can manage users and+--     permission groups. This is a privileged permission that allows users+--     to grant themselves or others access to any functionality in the+--     application. It should only be granted to trusted users.+--+-- -   @ManageAttributeSets@ – Group members can manage attribute sets.+--+-- -   @ViewAuditData@ – Group members can view audit data.+--+-- -   @AccessNotebooks@ – Group members will have access to FinSpace+--     notebooks.+--+-- -   @GetTemporaryCredentials@ – Group members can get temporary API+--     credentials.+updatePermissionGroup_applicationPermissions :: Lens.Lens' UpdatePermissionGroup (Prelude.Maybe [ApplicationPermission])+updatePermissionGroup_applicationPermissions = Lens.lens (\UpdatePermissionGroup' {applicationPermissions} -> applicationPermissions) (\s@UpdatePermissionGroup' {} a -> s {applicationPermissions = a} :: UpdatePermissionGroup) Prelude.. Lens.mapping Lens.coerced++-- | A token that ensures idempotency. This token expires in 10 minutes.+updatePermissionGroup_clientToken :: Lens.Lens' UpdatePermissionGroup (Prelude.Maybe Prelude.Text)+updatePermissionGroup_clientToken = Lens.lens (\UpdatePermissionGroup' {clientToken} -> clientToken) (\s@UpdatePermissionGroup' {} a -> s {clientToken = a} :: UpdatePermissionGroup)++-- | A brief description for the permission group.+updatePermissionGroup_description :: Lens.Lens' UpdatePermissionGroup (Prelude.Maybe Prelude.Text)+updatePermissionGroup_description = Lens.lens (\UpdatePermissionGroup' {description} -> description) (\s@UpdatePermissionGroup' {} a -> s {description = a} :: UpdatePermissionGroup) Prelude.. Lens.mapping Data._Sensitive++-- | The name of the permission group.+updatePermissionGroup_name :: Lens.Lens' UpdatePermissionGroup (Prelude.Maybe Prelude.Text)+updatePermissionGroup_name = Lens.lens (\UpdatePermissionGroup' {name} -> name) (\s@UpdatePermissionGroup' {} a -> s {name = a} :: UpdatePermissionGroup) Prelude.. Lens.mapping Data._Sensitive++-- | The unique identifier for the permission group to update.+updatePermissionGroup_permissionGroupId :: Lens.Lens' UpdatePermissionGroup Prelude.Text+updatePermissionGroup_permissionGroupId = Lens.lens (\UpdatePermissionGroup' {permissionGroupId} -> permissionGroupId) (\s@UpdatePermissionGroup' {} a -> s {permissionGroupId = a} :: UpdatePermissionGroup)++instance Core.AWSRequest UpdatePermissionGroup where+  type+    AWSResponse UpdatePermissionGroup =+      UpdatePermissionGroupResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdatePermissionGroupResponse'+            Prelude.<$> (x Data..?> "permissionGroupId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdatePermissionGroup where+  hashWithSalt _salt UpdatePermissionGroup' {..} =+    _salt+      `Prelude.hashWithSalt` applicationPermissions+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` permissionGroupId++instance Prelude.NFData UpdatePermissionGroup where+  rnf UpdatePermissionGroup' {..} =+    Prelude.rnf applicationPermissions+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf permissionGroupId++instance Data.ToHeaders UpdatePermissionGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdatePermissionGroup where+  toJSON UpdatePermissionGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("applicationPermissions" Data..=)+              Prelude.<$> applicationPermissions,+            ("clientToken" Data..=) Prelude.<$> clientToken,+            ("description" Data..=) Prelude.<$> description,+            ("name" Data..=) Prelude.<$> name+          ]+      )++instance Data.ToPath UpdatePermissionGroup where+  toPath UpdatePermissionGroup' {..} =+    Prelude.mconcat+      ["/permission-group/", Data.toBS permissionGroupId]++instance Data.ToQuery UpdatePermissionGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdatePermissionGroupResponse' smart constructor.+data UpdatePermissionGroupResponse = UpdatePermissionGroupResponse'+  { -- | The unique identifier for the updated permission group.+    permissionGroupId :: 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 'UpdatePermissionGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'permissionGroupId', 'updatePermissionGroupResponse_permissionGroupId' - The unique identifier for the updated permission group.+--+-- 'httpStatus', 'updatePermissionGroupResponse_httpStatus' - The response's http status code.+newUpdatePermissionGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdatePermissionGroupResponse+newUpdatePermissionGroupResponse pHttpStatus_ =+  UpdatePermissionGroupResponse'+    { permissionGroupId =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for the updated permission group.+updatePermissionGroupResponse_permissionGroupId :: Lens.Lens' UpdatePermissionGroupResponse (Prelude.Maybe Prelude.Text)+updatePermissionGroupResponse_permissionGroupId = Lens.lens (\UpdatePermissionGroupResponse' {permissionGroupId} -> permissionGroupId) (\s@UpdatePermissionGroupResponse' {} a -> s {permissionGroupId = a} :: UpdatePermissionGroupResponse)++-- | The response's http status code.+updatePermissionGroupResponse_httpStatus :: Lens.Lens' UpdatePermissionGroupResponse Prelude.Int+updatePermissionGroupResponse_httpStatus = Lens.lens (\UpdatePermissionGroupResponse' {httpStatus} -> httpStatus) (\s@UpdatePermissionGroupResponse' {} a -> s {httpStatus = a} :: UpdatePermissionGroupResponse)++instance Prelude.NFData UpdatePermissionGroupResponse where+  rnf UpdatePermissionGroupResponse' {..} =+    Prelude.rnf permissionGroupId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/UpdateUser.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.FinSpaceData.UpdateUser+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the details of the specified user account. You cannot update+-- the @userId@ for a user.+module Amazonka.FinSpaceData.UpdateUser+  ( -- * Creating a Request+    UpdateUser (..),+    newUpdateUser,++    -- * Request Lenses+    updateUser_apiAccess,+    updateUser_apiAccessPrincipalArn,+    updateUser_clientToken,+    updateUser_firstName,+    updateUser_lastName,+    updateUser_type,+    updateUser_userId,++    -- * Destructuring the Response+    UpdateUserResponse (..),+    newUpdateUserResponse,++    -- * Response Lenses+    updateUserResponse_userId,+    updateUserResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateUser' smart constructor.+data UpdateUser = UpdateUser'+  { -- | The option to indicate whether the user can use the+    -- @GetProgrammaticAccessCredentials@ API to obtain credentials that can+    -- then be used to access other FinSpace Data API operations.+    --+    -- -   @ENABLED@ – The user has permissions to use the APIs.+    --+    -- -   @DISABLED@ – The user does not have permissions to use any APIs.+    apiAccess :: Prelude.Maybe ApiAccess,+    -- | The ARN identifier of an AWS user or role that is allowed to call the+    -- @GetProgrammaticAccessCredentials@ API to obtain a credentials token for+    -- a specific FinSpace user. This must be an IAM role within your FinSpace+    -- account.+    apiAccessPrincipalArn :: Prelude.Maybe Prelude.Text,+    -- | A token that ensures idempotency. This token expires in 10 minutes.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The first name of the user.+    firstName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The last name of the user.+    lastName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The option to indicate the type of user.+    --+    -- -   @SUPER_USER@– A user with permission to all the functionality and+    --     data in FinSpace.+    --+    -- -   @APP_USER@ – A user with specific permissions in FinSpace. The users+    --     are assigned permissions by adding them to a permission group.+    type' :: Prelude.Maybe UserType,+    -- | The unique identifier for the user account to update.+    userId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiAccess', 'updateUser_apiAccess' - The option to indicate whether the user can use the+-- @GetProgrammaticAccessCredentials@ API to obtain credentials that can+-- then be used to access other FinSpace Data API operations.+--+-- -   @ENABLED@ – The user has permissions to use the APIs.+--+-- -   @DISABLED@ – The user does not have permissions to use any APIs.+--+-- 'apiAccessPrincipalArn', 'updateUser_apiAccessPrincipalArn' - The ARN identifier of an AWS user or role that is allowed to call the+-- @GetProgrammaticAccessCredentials@ API to obtain a credentials token for+-- a specific FinSpace user. This must be an IAM role within your FinSpace+-- account.+--+-- 'clientToken', 'updateUser_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.+--+-- 'firstName', 'updateUser_firstName' - The first name of the user.+--+-- 'lastName', 'updateUser_lastName' - The last name of the user.+--+-- 'type'', 'updateUser_type' - The option to indicate the type of user.+--+-- -   @SUPER_USER@– A user with permission to all the functionality and+--     data in FinSpace.+--+-- -   @APP_USER@ – A user with specific permissions in FinSpace. The users+--     are assigned permissions by adding them to a permission group.+--+-- 'userId', 'updateUser_userId' - The unique identifier for the user account to update.+newUpdateUser ::+  -- | 'userId'+  Prelude.Text ->+  UpdateUser+newUpdateUser pUserId_ =+  UpdateUser'+    { apiAccess = Prelude.Nothing,+      apiAccessPrincipalArn = Prelude.Nothing,+      clientToken = Prelude.Nothing,+      firstName = Prelude.Nothing,+      lastName = Prelude.Nothing,+      type' = Prelude.Nothing,+      userId = pUserId_+    }++-- | The option to indicate whether the user can use the+-- @GetProgrammaticAccessCredentials@ API to obtain credentials that can+-- then be used to access other FinSpace Data API operations.+--+-- -   @ENABLED@ – The user has permissions to use the APIs.+--+-- -   @DISABLED@ – The user does not have permissions to use any APIs.+updateUser_apiAccess :: Lens.Lens' UpdateUser (Prelude.Maybe ApiAccess)+updateUser_apiAccess = Lens.lens (\UpdateUser' {apiAccess} -> apiAccess) (\s@UpdateUser' {} a -> s {apiAccess = a} :: UpdateUser)++-- | The ARN identifier of an AWS user or role that is allowed to call the+-- @GetProgrammaticAccessCredentials@ API to obtain a credentials token for+-- a specific FinSpace user. This must be an IAM role within your FinSpace+-- account.+updateUser_apiAccessPrincipalArn :: Lens.Lens' UpdateUser (Prelude.Maybe Prelude.Text)+updateUser_apiAccessPrincipalArn = Lens.lens (\UpdateUser' {apiAccessPrincipalArn} -> apiAccessPrincipalArn) (\s@UpdateUser' {} a -> s {apiAccessPrincipalArn = a} :: UpdateUser)++-- | A token that ensures idempotency. This token expires in 10 minutes.+updateUser_clientToken :: Lens.Lens' UpdateUser (Prelude.Maybe Prelude.Text)+updateUser_clientToken = Lens.lens (\UpdateUser' {clientToken} -> clientToken) (\s@UpdateUser' {} a -> s {clientToken = a} :: UpdateUser)++-- | The first name of the user.+updateUser_firstName :: Lens.Lens' UpdateUser (Prelude.Maybe Prelude.Text)+updateUser_firstName = Lens.lens (\UpdateUser' {firstName} -> firstName) (\s@UpdateUser' {} a -> s {firstName = a} :: UpdateUser) Prelude.. Lens.mapping Data._Sensitive++-- | The last name of the user.+updateUser_lastName :: Lens.Lens' UpdateUser (Prelude.Maybe Prelude.Text)+updateUser_lastName = Lens.lens (\UpdateUser' {lastName} -> lastName) (\s@UpdateUser' {} a -> s {lastName = a} :: UpdateUser) Prelude.. Lens.mapping Data._Sensitive++-- | The option to indicate the type of user.+--+-- -   @SUPER_USER@– A user with permission to all the functionality and+--     data in FinSpace.+--+-- -   @APP_USER@ – A user with specific permissions in FinSpace. The users+--     are assigned permissions by adding them to a permission group.+updateUser_type :: Lens.Lens' UpdateUser (Prelude.Maybe UserType)+updateUser_type = Lens.lens (\UpdateUser' {type'} -> type') (\s@UpdateUser' {} a -> s {type' = a} :: UpdateUser)++-- | The unique identifier for the user account to update.+updateUser_userId :: Lens.Lens' UpdateUser Prelude.Text+updateUser_userId = Lens.lens (\UpdateUser' {userId} -> userId) (\s@UpdateUser' {} a -> s {userId = a} :: UpdateUser)++instance Core.AWSRequest UpdateUser where+  type AWSResponse UpdateUser = UpdateUserResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateUserResponse'+            Prelude.<$> (x Data..?> "userId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateUser where+  hashWithSalt _salt UpdateUser' {..} =+    _salt+      `Prelude.hashWithSalt` apiAccess+      `Prelude.hashWithSalt` apiAccessPrincipalArn+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` firstName+      `Prelude.hashWithSalt` lastName+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` userId++instance Prelude.NFData UpdateUser where+  rnf UpdateUser' {..} =+    Prelude.rnf apiAccess+      `Prelude.seq` Prelude.rnf apiAccessPrincipalArn+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf firstName+      `Prelude.seq` Prelude.rnf lastName+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf userId++instance Data.ToHeaders UpdateUser where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateUser where+  toJSON UpdateUser' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("apiAccess" Data..=) Prelude.<$> apiAccess,+            ("apiAccessPrincipalArn" Data..=)+              Prelude.<$> apiAccessPrincipalArn,+            ("clientToken" Data..=) Prelude.<$> clientToken,+            ("firstName" Data..=) Prelude.<$> firstName,+            ("lastName" Data..=) Prelude.<$> lastName,+            ("type" Data..=) Prelude.<$> type'+          ]+      )++instance Data.ToPath UpdateUser where+  toPath UpdateUser' {..} =+    Prelude.mconcat ["/user/", Data.toBS userId]++instance Data.ToQuery UpdateUser where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateUserResponse' smart constructor.+data UpdateUserResponse = UpdateUserResponse'+  { -- | The unique identifier of the updated user account.+    userId :: 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 'UpdateUserResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'userId', 'updateUserResponse_userId' - The unique identifier of the updated user account.+--+-- 'httpStatus', 'updateUserResponse_httpStatus' - The response's http status code.+newUpdateUserResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateUserResponse+newUpdateUserResponse pHttpStatus_ =+  UpdateUserResponse'+    { userId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the updated user account.+updateUserResponse_userId :: Lens.Lens' UpdateUserResponse (Prelude.Maybe Prelude.Text)+updateUserResponse_userId = Lens.lens (\UpdateUserResponse' {userId} -> userId) (\s@UpdateUserResponse' {} a -> s {userId = a} :: UpdateUserResponse)++-- | The response's http status code.+updateUserResponse_httpStatus :: Lens.Lens' UpdateUserResponse Prelude.Int+updateUserResponse_httpStatus = Lens.lens (\UpdateUserResponse' {httpStatus} -> httpStatus) (\s@UpdateUserResponse' {} a -> s {httpStatus = a} :: UpdateUserResponse)++instance Prelude.NFData UpdateUserResponse where+  rnf UpdateUserResponse' {..} =+    Prelude.rnf userId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FinSpaceData/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.FinSpaceData.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.FinSpaceData.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FinSpaceData.Lens+import Amazonka.FinSpaceData.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.FinSpaceData+import Test.Amazonka.FinSpaceData.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "FinSpaceData"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/FinSpaceData.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.FinSpaceData+-- 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.FinSpaceData+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/FinSpaceData/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.FinSpaceData.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.FinSpaceData.Internal where
+ test/Test/Amazonka/Gen/FinSpaceData.hs view
@@ -0,0 +1,658 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.Amazonka.Gen.FinSpaceData+-- 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.FinSpaceData where++import Amazonka.FinSpaceData+import qualified Data.Proxy as Proxy+import Test.Amazonka.FinSpaceData.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"+--         [ requestAssociateUserToPermissionGroup $+--             newAssociateUserToPermissionGroup+--+--         , requestCreateChangeset $+--             newCreateChangeset+--+--         , requestCreateDataView $+--             newCreateDataView+--+--         , requestCreateDataset $+--             newCreateDataset+--+--         , requestCreatePermissionGroup $+--             newCreatePermissionGroup+--+--         , requestCreateUser $+--             newCreateUser+--+--         , requestDeleteDataset $+--             newDeleteDataset+--+--         , requestDeletePermissionGroup $+--             newDeletePermissionGroup+--+--         , requestDisableUser $+--             newDisableUser+--+--         , requestDisassociateUserFromPermissionGroup $+--             newDisassociateUserFromPermissionGroup+--+--         , requestEnableUser $+--             newEnableUser+--+--         , requestGetChangeset $+--             newGetChangeset+--+--         , requestGetDataView $+--             newGetDataView+--+--         , requestGetDataset $+--             newGetDataset+--+--         , requestGetExternalDataViewAccessDetails $+--             newGetExternalDataViewAccessDetails+--+--         , requestGetPermissionGroup $+--             newGetPermissionGroup+--+--         , requestGetProgrammaticAccessCredentials $+--             newGetProgrammaticAccessCredentials+--+--         , requestGetUser $+--             newGetUser+--+--         , requestGetWorkingLocation $+--             newGetWorkingLocation+--+--         , requestListChangesets $+--             newListChangesets+--+--         , requestListDataViews $+--             newListDataViews+--+--         , requestListDatasets $+--             newListDatasets+--+--         , requestListPermissionGroups $+--             newListPermissionGroups+--+--         , requestListPermissionGroupsByUser $+--             newListPermissionGroupsByUser+--+--         , requestListUsers $+--             newListUsers+--+--         , requestListUsersByPermissionGroup $+--             newListUsersByPermissionGroup+--+--         , requestResetUserPassword $+--             newResetUserPassword+--+--         , requestUpdateChangeset $+--             newUpdateChangeset+--+--         , requestUpdateDataset $+--             newUpdateDataset+--+--         , requestUpdatePermissionGroup $+--             newUpdatePermissionGroup+--+--         , requestUpdateUser $+--             newUpdateUser+--+--           ]++--     , testGroup "response"+--         [ responseAssociateUserToPermissionGroup $+--             newAssociateUserToPermissionGroupResponse+--+--         , responseCreateChangeset $+--             newCreateChangesetResponse+--+--         , responseCreateDataView $+--             newCreateDataViewResponse+--+--         , responseCreateDataset $+--             newCreateDatasetResponse+--+--         , responseCreatePermissionGroup $+--             newCreatePermissionGroupResponse+--+--         , responseCreateUser $+--             newCreateUserResponse+--+--         , responseDeleteDataset $+--             newDeleteDatasetResponse+--+--         , responseDeletePermissionGroup $+--             newDeletePermissionGroupResponse+--+--         , responseDisableUser $+--             newDisableUserResponse+--+--         , responseDisassociateUserFromPermissionGroup $+--             newDisassociateUserFromPermissionGroupResponse+--+--         , responseEnableUser $+--             newEnableUserResponse+--+--         , responseGetChangeset $+--             newGetChangesetResponse+--+--         , responseGetDataView $+--             newGetDataViewResponse+--+--         , responseGetDataset $+--             newGetDatasetResponse+--+--         , responseGetExternalDataViewAccessDetails $+--             newGetExternalDataViewAccessDetailsResponse+--+--         , responseGetPermissionGroup $+--             newGetPermissionGroupResponse+--+--         , responseGetProgrammaticAccessCredentials $+--             newGetProgrammaticAccessCredentialsResponse+--+--         , responseGetUser $+--             newGetUserResponse+--+--         , responseGetWorkingLocation $+--             newGetWorkingLocationResponse+--+--         , responseListChangesets $+--             newListChangesetsResponse+--+--         , responseListDataViews $+--             newListDataViewsResponse+--+--         , responseListDatasets $+--             newListDatasetsResponse+--+--         , responseListPermissionGroups $+--             newListPermissionGroupsResponse+--+--         , responseListPermissionGroupsByUser $+--             newListPermissionGroupsByUserResponse+--+--         , responseListUsers $+--             newListUsersResponse+--+--         , responseListUsersByPermissionGroup $+--             newListUsersByPermissionGroupResponse+--+--         , responseResetUserPassword $+--             newResetUserPasswordResponse+--+--         , responseUpdateChangeset $+--             newUpdateChangesetResponse+--+--         , responseUpdateDataset $+--             newUpdateDatasetResponse+--+--         , responseUpdatePermissionGroup $+--             newUpdatePermissionGroupResponse+--+--         , responseUpdateUser $+--             newUpdateUserResponse+--+--           ]+--     ]++-- Requests++requestAssociateUserToPermissionGroup :: AssociateUserToPermissionGroup -> TestTree+requestAssociateUserToPermissionGroup =+  req+    "AssociateUserToPermissionGroup"+    "fixture/AssociateUserToPermissionGroup.yaml"++requestCreateChangeset :: CreateChangeset -> TestTree+requestCreateChangeset =+  req+    "CreateChangeset"+    "fixture/CreateChangeset.yaml"++requestCreateDataView :: CreateDataView -> TestTree+requestCreateDataView =+  req+    "CreateDataView"+    "fixture/CreateDataView.yaml"++requestCreateDataset :: CreateDataset -> TestTree+requestCreateDataset =+  req+    "CreateDataset"+    "fixture/CreateDataset.yaml"++requestCreatePermissionGroup :: CreatePermissionGroup -> TestTree+requestCreatePermissionGroup =+  req+    "CreatePermissionGroup"+    "fixture/CreatePermissionGroup.yaml"++requestCreateUser :: CreateUser -> TestTree+requestCreateUser =+  req+    "CreateUser"+    "fixture/CreateUser.yaml"++requestDeleteDataset :: DeleteDataset -> TestTree+requestDeleteDataset =+  req+    "DeleteDataset"+    "fixture/DeleteDataset.yaml"++requestDeletePermissionGroup :: DeletePermissionGroup -> TestTree+requestDeletePermissionGroup =+  req+    "DeletePermissionGroup"+    "fixture/DeletePermissionGroup.yaml"++requestDisableUser :: DisableUser -> TestTree+requestDisableUser =+  req+    "DisableUser"+    "fixture/DisableUser.yaml"++requestDisassociateUserFromPermissionGroup :: DisassociateUserFromPermissionGroup -> TestTree+requestDisassociateUserFromPermissionGroup =+  req+    "DisassociateUserFromPermissionGroup"+    "fixture/DisassociateUserFromPermissionGroup.yaml"++requestEnableUser :: EnableUser -> TestTree+requestEnableUser =+  req+    "EnableUser"+    "fixture/EnableUser.yaml"++requestGetChangeset :: GetChangeset -> TestTree+requestGetChangeset =+  req+    "GetChangeset"+    "fixture/GetChangeset.yaml"++requestGetDataView :: GetDataView -> TestTree+requestGetDataView =+  req+    "GetDataView"+    "fixture/GetDataView.yaml"++requestGetDataset :: GetDataset -> TestTree+requestGetDataset =+  req+    "GetDataset"+    "fixture/GetDataset.yaml"++requestGetExternalDataViewAccessDetails :: GetExternalDataViewAccessDetails -> TestTree+requestGetExternalDataViewAccessDetails =+  req+    "GetExternalDataViewAccessDetails"+    "fixture/GetExternalDataViewAccessDetails.yaml"++requestGetPermissionGroup :: GetPermissionGroup -> TestTree+requestGetPermissionGroup =+  req+    "GetPermissionGroup"+    "fixture/GetPermissionGroup.yaml"++requestGetProgrammaticAccessCredentials :: GetProgrammaticAccessCredentials -> TestTree+requestGetProgrammaticAccessCredentials =+  req+    "GetProgrammaticAccessCredentials"+    "fixture/GetProgrammaticAccessCredentials.yaml"++requestGetUser :: GetUser -> TestTree+requestGetUser =+  req+    "GetUser"+    "fixture/GetUser.yaml"++requestGetWorkingLocation :: GetWorkingLocation -> TestTree+requestGetWorkingLocation =+  req+    "GetWorkingLocation"+    "fixture/GetWorkingLocation.yaml"++requestListChangesets :: ListChangesets -> TestTree+requestListChangesets =+  req+    "ListChangesets"+    "fixture/ListChangesets.yaml"++requestListDataViews :: ListDataViews -> TestTree+requestListDataViews =+  req+    "ListDataViews"+    "fixture/ListDataViews.yaml"++requestListDatasets :: ListDatasets -> TestTree+requestListDatasets =+  req+    "ListDatasets"+    "fixture/ListDatasets.yaml"++requestListPermissionGroups :: ListPermissionGroups -> TestTree+requestListPermissionGroups =+  req+    "ListPermissionGroups"+    "fixture/ListPermissionGroups.yaml"++requestListPermissionGroupsByUser :: ListPermissionGroupsByUser -> TestTree+requestListPermissionGroupsByUser =+  req+    "ListPermissionGroupsByUser"+    "fixture/ListPermissionGroupsByUser.yaml"++requestListUsers :: ListUsers -> TestTree+requestListUsers =+  req+    "ListUsers"+    "fixture/ListUsers.yaml"++requestListUsersByPermissionGroup :: ListUsersByPermissionGroup -> TestTree+requestListUsersByPermissionGroup =+  req+    "ListUsersByPermissionGroup"+    "fixture/ListUsersByPermissionGroup.yaml"++requestResetUserPassword :: ResetUserPassword -> TestTree+requestResetUserPassword =+  req+    "ResetUserPassword"+    "fixture/ResetUserPassword.yaml"++requestUpdateChangeset :: UpdateChangeset -> TestTree+requestUpdateChangeset =+  req+    "UpdateChangeset"+    "fixture/UpdateChangeset.yaml"++requestUpdateDataset :: UpdateDataset -> TestTree+requestUpdateDataset =+  req+    "UpdateDataset"+    "fixture/UpdateDataset.yaml"++requestUpdatePermissionGroup :: UpdatePermissionGroup -> TestTree+requestUpdatePermissionGroup =+  req+    "UpdatePermissionGroup"+    "fixture/UpdatePermissionGroup.yaml"++requestUpdateUser :: UpdateUser -> TestTree+requestUpdateUser =+  req+    "UpdateUser"+    "fixture/UpdateUser.yaml"++-- Responses++responseAssociateUserToPermissionGroup :: AssociateUserToPermissionGroupResponse -> TestTree+responseAssociateUserToPermissionGroup =+  res+    "AssociateUserToPermissionGroupResponse"+    "fixture/AssociateUserToPermissionGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AssociateUserToPermissionGroup)++responseCreateChangeset :: CreateChangesetResponse -> TestTree+responseCreateChangeset =+  res+    "CreateChangesetResponse"+    "fixture/CreateChangesetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateChangeset)++responseCreateDataView :: CreateDataViewResponse -> TestTree+responseCreateDataView =+  res+    "CreateDataViewResponse"+    "fixture/CreateDataViewResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDataView)++responseCreateDataset :: CreateDatasetResponse -> TestTree+responseCreateDataset =+  res+    "CreateDatasetResponse"+    "fixture/CreateDatasetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDataset)++responseCreatePermissionGroup :: CreatePermissionGroupResponse -> TestTree+responseCreatePermissionGroup =+  res+    "CreatePermissionGroupResponse"+    "fixture/CreatePermissionGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreatePermissionGroup)++responseCreateUser :: CreateUserResponse -> TestTree+responseCreateUser =+  res+    "CreateUserResponse"+    "fixture/CreateUserResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateUser)++responseDeleteDataset :: DeleteDatasetResponse -> TestTree+responseDeleteDataset =+  res+    "DeleteDatasetResponse"+    "fixture/DeleteDatasetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDataset)++responseDeletePermissionGroup :: DeletePermissionGroupResponse -> TestTree+responseDeletePermissionGroup =+  res+    "DeletePermissionGroupResponse"+    "fixture/DeletePermissionGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeletePermissionGroup)++responseDisableUser :: DisableUserResponse -> TestTree+responseDisableUser =+  res+    "DisableUserResponse"+    "fixture/DisableUserResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisableUser)++responseDisassociateUserFromPermissionGroup :: DisassociateUserFromPermissionGroupResponse -> TestTree+responseDisassociateUserFromPermissionGroup =+  res+    "DisassociateUserFromPermissionGroupResponse"+    "fixture/DisassociateUserFromPermissionGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisassociateUserFromPermissionGroup)++responseEnableUser :: EnableUserResponse -> TestTree+responseEnableUser =+  res+    "EnableUserResponse"+    "fixture/EnableUserResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy EnableUser)++responseGetChangeset :: GetChangesetResponse -> TestTree+responseGetChangeset =+  res+    "GetChangesetResponse"+    "fixture/GetChangesetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetChangeset)++responseGetDataView :: GetDataViewResponse -> TestTree+responseGetDataView =+  res+    "GetDataViewResponse"+    "fixture/GetDataViewResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDataView)++responseGetDataset :: GetDatasetResponse -> TestTree+responseGetDataset =+  res+    "GetDatasetResponse"+    "fixture/GetDatasetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDataset)++responseGetExternalDataViewAccessDetails :: GetExternalDataViewAccessDetailsResponse -> TestTree+responseGetExternalDataViewAccessDetails =+  res+    "GetExternalDataViewAccessDetailsResponse"+    "fixture/GetExternalDataViewAccessDetailsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetExternalDataViewAccessDetails)++responseGetPermissionGroup :: GetPermissionGroupResponse -> TestTree+responseGetPermissionGroup =+  res+    "GetPermissionGroupResponse"+    "fixture/GetPermissionGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetPermissionGroup)++responseGetProgrammaticAccessCredentials :: GetProgrammaticAccessCredentialsResponse -> TestTree+responseGetProgrammaticAccessCredentials =+  res+    "GetProgrammaticAccessCredentialsResponse"+    "fixture/GetProgrammaticAccessCredentialsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetProgrammaticAccessCredentials)++responseGetUser :: GetUserResponse -> TestTree+responseGetUser =+  res+    "GetUserResponse"+    "fixture/GetUserResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetUser)++responseGetWorkingLocation :: GetWorkingLocationResponse -> TestTree+responseGetWorkingLocation =+  res+    "GetWorkingLocationResponse"+    "fixture/GetWorkingLocationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetWorkingLocation)++responseListChangesets :: ListChangesetsResponse -> TestTree+responseListChangesets =+  res+    "ListChangesetsResponse"+    "fixture/ListChangesetsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListChangesets)++responseListDataViews :: ListDataViewsResponse -> TestTree+responseListDataViews =+  res+    "ListDataViewsResponse"+    "fixture/ListDataViewsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDataViews)++responseListDatasets :: ListDatasetsResponse -> TestTree+responseListDatasets =+  res+    "ListDatasetsResponse"+    "fixture/ListDatasetsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDatasets)++responseListPermissionGroups :: ListPermissionGroupsResponse -> TestTree+responseListPermissionGroups =+  res+    "ListPermissionGroupsResponse"+    "fixture/ListPermissionGroupsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListPermissionGroups)++responseListPermissionGroupsByUser :: ListPermissionGroupsByUserResponse -> TestTree+responseListPermissionGroupsByUser =+  res+    "ListPermissionGroupsByUserResponse"+    "fixture/ListPermissionGroupsByUserResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListPermissionGroupsByUser)++responseListUsers :: ListUsersResponse -> TestTree+responseListUsers =+  res+    "ListUsersResponse"+    "fixture/ListUsersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListUsers)++responseListUsersByPermissionGroup :: ListUsersByPermissionGroupResponse -> TestTree+responseListUsersByPermissionGroup =+  res+    "ListUsersByPermissionGroupResponse"+    "fixture/ListUsersByPermissionGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListUsersByPermissionGroup)++responseResetUserPassword :: ResetUserPasswordResponse -> TestTree+responseResetUserPassword =+  res+    "ResetUserPasswordResponse"+    "fixture/ResetUserPasswordResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ResetUserPassword)++responseUpdateChangeset :: UpdateChangesetResponse -> TestTree+responseUpdateChangeset =+  res+    "UpdateChangesetResponse"+    "fixture/UpdateChangesetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateChangeset)++responseUpdateDataset :: UpdateDatasetResponse -> TestTree+responseUpdateDataset =+  res+    "UpdateDatasetResponse"+    "fixture/UpdateDatasetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDataset)++responseUpdatePermissionGroup :: UpdatePermissionGroupResponse -> TestTree+responseUpdatePermissionGroup =+  res+    "UpdatePermissionGroupResponse"+    "fixture/UpdatePermissionGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdatePermissionGroup)++responseUpdateUser :: UpdateUserResponse -> TestTree+responseUpdateUser =+  res+    "UpdateUserResponse"+    "fixture/UpdateUserResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateUser)