amazonka-lakeformation (empty) → 2.0
raw patch · 203 files changed
+19908/−0 lines, 203 filesdep +amazonka-coredep +amazonka-lakeformationdep +amazonka-test
Dependencies added: amazonka-core, amazonka-lakeformation, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-lakeformation.cabal +184/−0
- fixture/AddLFTagsToResource.yaml +10/−0
- fixture/AddLFTagsToResourceResponse.proto +0/−0
- fixture/AssumeDecoratedRoleWithSAML.yaml +10/−0
- fixture/AssumeDecoratedRoleWithSAMLResponse.proto +0/−0
- fixture/BatchGrantPermissions.yaml +10/−0
- fixture/BatchGrantPermissionsResponse.proto +0/−0
- fixture/BatchRevokePermissions.yaml +10/−0
- fixture/BatchRevokePermissionsResponse.proto +0/−0
- fixture/CancelTransaction.yaml +10/−0
- fixture/CancelTransactionResponse.proto +0/−0
- fixture/CommitTransaction.yaml +10/−0
- fixture/CommitTransactionResponse.proto +0/−0
- fixture/CreateDataCellsFilter.yaml +10/−0
- fixture/CreateDataCellsFilterResponse.proto +0/−0
- fixture/CreateLFTag.yaml +10/−0
- fixture/CreateLFTagResponse.proto +0/−0
- fixture/DeleteDataCellsFilter.yaml +10/−0
- fixture/DeleteDataCellsFilterResponse.proto +0/−0
- fixture/DeleteLFTag.yaml +10/−0
- fixture/DeleteLFTagResponse.proto +0/−0
- fixture/DeleteObjectsOnCancel.yaml +10/−0
- fixture/DeleteObjectsOnCancelResponse.proto +0/−0
- fixture/DeregisterResource.yaml +10/−0
- fixture/DeregisterResourceResponse.proto +0/−0
- fixture/DescribeResource.yaml +10/−0
- fixture/DescribeResourceResponse.proto +0/−0
- fixture/DescribeTransaction.yaml +10/−0
- fixture/DescribeTransactionResponse.proto +0/−0
- fixture/ExtendTransaction.yaml +10/−0
- fixture/ExtendTransactionResponse.proto +0/−0
- fixture/GetDataLakeSettings.yaml +10/−0
- fixture/GetDataLakeSettingsResponse.proto +0/−0
- fixture/GetEffectivePermissionsForPath.yaml +10/−0
- fixture/GetEffectivePermissionsForPathResponse.proto +0/−0
- fixture/GetLFTag.yaml +10/−0
- fixture/GetLFTagResponse.proto +0/−0
- fixture/GetQueryState.yaml +10/−0
- fixture/GetQueryStateResponse.proto +0/−0
- fixture/GetQueryStatistics.yaml +10/−0
- fixture/GetQueryStatisticsResponse.proto +0/−0
- fixture/GetResourceLFTags.yaml +10/−0
- fixture/GetResourceLFTagsResponse.proto +0/−0
- fixture/GetTableObjects.yaml +10/−0
- fixture/GetTableObjectsResponse.proto +0/−0
- fixture/GetTemporaryGluePartitionCredentials.yaml +10/−0
- fixture/GetTemporaryGluePartitionCredentialsResponse.proto +0/−0
- fixture/GetTemporaryGlueTableCredentials.yaml +10/−0
- fixture/GetTemporaryGlueTableCredentialsResponse.proto +0/−0
- fixture/GetWorkUnitResults.yaml +10/−0
- fixture/GetWorkUnitResultsResponse.proto +0/−0
- fixture/GetWorkUnits.yaml +10/−0
- fixture/GetWorkUnitsResponse.proto +0/−0
- fixture/GrantPermissions.yaml +10/−0
- fixture/GrantPermissionsResponse.proto +0/−0
- fixture/ListDataCellsFilter.yaml +10/−0
- fixture/ListDataCellsFilterResponse.proto +0/−0
- fixture/ListLFTags.yaml +10/−0
- fixture/ListLFTagsResponse.proto +0/−0
- fixture/ListPermissions.yaml +10/−0
- fixture/ListPermissionsResponse.proto +0/−0
- fixture/ListResources.yaml +10/−0
- fixture/ListResourcesResponse.proto +0/−0
- fixture/ListTableStorageOptimizers.yaml +10/−0
- fixture/ListTableStorageOptimizersResponse.proto +0/−0
- fixture/ListTransactions.yaml +10/−0
- fixture/ListTransactionsResponse.proto +0/−0
- fixture/PutDataLakeSettings.yaml +10/−0
- fixture/PutDataLakeSettingsResponse.proto +0/−0
- fixture/RegisterResource.yaml +10/−0
- fixture/RegisterResourceResponse.proto +0/−0
- fixture/RemoveLFTagsFromResource.yaml +10/−0
- fixture/RemoveLFTagsFromResourceResponse.proto +0/−0
- fixture/RevokePermissions.yaml +10/−0
- fixture/RevokePermissionsResponse.proto +0/−0
- fixture/SearchDatabasesByLFTags.yaml +10/−0
- fixture/SearchDatabasesByLFTagsResponse.proto +0/−0
- fixture/SearchTablesByLFTags.yaml +10/−0
- fixture/SearchTablesByLFTagsResponse.proto +0/−0
- fixture/StartQueryPlanning.yaml +10/−0
- fixture/StartQueryPlanningResponse.proto +0/−0
- fixture/StartTransaction.yaml +10/−0
- fixture/StartTransactionResponse.proto +0/−0
- fixture/UpdateLFTag.yaml +10/−0
- fixture/UpdateLFTagResponse.proto +0/−0
- fixture/UpdateResource.yaml +10/−0
- fixture/UpdateResourceResponse.proto +0/−0
- fixture/UpdateTableObjects.yaml +10/−0
- fixture/UpdateTableObjectsResponse.proto +0/−0
- fixture/UpdateTableStorageOptimizer.yaml +10/−0
- fixture/UpdateTableStorageOptimizerResponse.proto +0/−0
- gen/Amazonka/LakeFormation.hs +644/−0
- gen/Amazonka/LakeFormation/AddLFTagsToResource.hs +206/−0
- gen/Amazonka/LakeFormation/AssumeDecoratedRoleWithSAML.hs +297/−0
- gen/Amazonka/LakeFormation/BatchGrantPermissions.hs +192/−0
- gen/Amazonka/LakeFormation/BatchRevokePermissions.hs +196/−0
- gen/Amazonka/LakeFormation/CancelTransaction.hs +156/−0
- gen/Amazonka/LakeFormation/CommitTransaction.hs +169/−0
- gen/Amazonka/LakeFormation/CreateDataCellsFilter.hs +157/−0
- gen/Amazonka/LakeFormation/CreateLFTag.hs +188/−0
- gen/Amazonka/LakeFormation/DeleteDataCellsFilter.hs +196/−0
- gen/Amazonka/LakeFormation/DeleteLFTag.hs +178/−0
- gen/Amazonka/LakeFormation/DeleteObjectsOnCancel.hs +234/−0
- gen/Amazonka/LakeFormation/DeregisterResource.hs +158/−0
- gen/Amazonka/LakeFormation/DescribeResource.hs +165/−0
- gen/Amazonka/LakeFormation/DescribeTransaction.hs +173/−0
- gen/Amazonka/LakeFormation/ExtendTransaction.hs +157/−0
- gen/Amazonka/LakeFormation/GetDataLakeSettings.hs +175/−0
- gen/Amazonka/LakeFormation/GetEffectivePermissionsForPath.hs +264/−0
- gen/Amazonka/LakeFormation/GetLFTag.hs +221/−0
- gen/Amazonka/LakeFormation/GetQueryState.hs +215/−0
- gen/Amazonka/LakeFormation/GetQueryStatistics.hs +188/−0
- gen/Amazonka/LakeFormation/GetResourceLFTags.hs +235/−0
- gen/Amazonka/LakeFormation/GetTableObjects.hs +325/−0
- gen/Amazonka/LakeFormation/GetTemporaryGluePartitionCredentials.hs +331/−0
- gen/Amazonka/LakeFormation/GetTemporaryGlueTableCredentials.hs +309/−0
- gen/Amazonka/LakeFormation/GetWorkUnitResults.hs +218/−0
- gen/Amazonka/LakeFormation/GetWorkUnits.hs +263/−0
- gen/Amazonka/LakeFormation/GrantPermissions.hs +264/−0
- gen/Amazonka/LakeFormation/Lens.hs +660/−0
- gen/Amazonka/LakeFormation/ListDataCellsFilter.hs +235/−0
- gen/Amazonka/LakeFormation/ListLFTags.hs +268/−0
- gen/Amazonka/LakeFormation/ListPermissions.hs +300/−0
- gen/Amazonka/LakeFormation/ListResources.hs +218/−0
- gen/Amazonka/LakeFormation/ListTableStorageOptimizers.hs +265/−0
- gen/Amazonka/LakeFormation/ListTransactions.hs +235/−0
- gen/Amazonka/LakeFormation/PutDataLakeSettings.hs +190/−0
- gen/Amazonka/LakeFormation/RegisterResource.hs +221/−0
- gen/Amazonka/LakeFormation/RemoveLFTagsFromResource.hs +215/−0
- gen/Amazonka/LakeFormation/RevokePermissions.hs +231/−0
- gen/Amazonka/LakeFormation/SearchDatabasesByLFTags.hs +271/−0
- gen/Amazonka/LakeFormation/SearchTablesByLFTags.hs +266/−0
- gen/Amazonka/LakeFormation/StartQueryPlanning.hs +207/−0
- gen/Amazonka/LakeFormation/StartTransaction.hs +175/−0
- gen/Amazonka/LakeFormation/Types.hs +658/−0
- gen/Amazonka/LakeFormation/Types/AddObjectInput.hs +132/−0
- gen/Amazonka/LakeFormation/Types/AllRowsWildcard.hs +57/−0
- gen/Amazonka/LakeFormation/Types/AuditContext.hs +78/−0
- gen/Amazonka/LakeFormation/Types/BatchPermissionsFailureEntry.hs +91/−0
- gen/Amazonka/LakeFormation/Types/BatchPermissionsRequestEntry.hs +145/−0
- gen/Amazonka/LakeFormation/Types/CatalogResource.hs +57/−0
- gen/Amazonka/LakeFormation/Types/ColumnLFTag.hs +85/−0
- gen/Amazonka/LakeFormation/Types/ColumnWildcard.hs +85/−0
- gen/Amazonka/LakeFormation/Types/ComparisonOperator.hs +116/−0
- gen/Amazonka/LakeFormation/Types/DataCellsFilter.hs +180/−0
- gen/Amazonka/LakeFormation/Types/DataCellsFilterResource.hs +121/−0
- gen/Amazonka/LakeFormation/Types/DataLakePrincipal.hs +83/−0
- gen/Amazonka/LakeFormation/Types/DataLakeResourceType.hs +101/−0
- gen/Amazonka/LakeFormation/Types/DataLakeSettings.hs +348/−0
- gen/Amazonka/LakeFormation/Types/DataLocationResource.hs +102/−0
- gen/Amazonka/LakeFormation/Types/DatabaseResource.hs +98/−0
- gen/Amazonka/LakeFormation/Types/DeleteObjectInput.hs +104/−0
- gen/Amazonka/LakeFormation/Types/DetailsMap.hs +72/−0
- gen/Amazonka/LakeFormation/Types/ErrorDetail.hs +84/−0
- gen/Amazonka/LakeFormation/Types/ExecutionStatistics.hs +97/−0
- gen/Amazonka/LakeFormation/Types/FieldNameString.hs +76/−0
- gen/Amazonka/LakeFormation/Types/FilterCondition.hs +101/−0
- gen/Amazonka/LakeFormation/Types/LFTag.hs +99/−0
- gen/Amazonka/LakeFormation/Types/LFTagError.hs +86/−0
- gen/Amazonka/LakeFormation/Types/LFTagKeyResource.hs +119/−0
- gen/Amazonka/LakeFormation/Types/LFTagPair.hs +119/−0
- gen/Amazonka/LakeFormation/Types/LFTagPolicyResource.hs +122/−0
- gen/Amazonka/LakeFormation/Types/OptimizerType.hs +76/−0
- gen/Amazonka/LakeFormation/Types/PartitionObjects.hs +85/−0
- gen/Amazonka/LakeFormation/Types/PartitionValueList.hs +71/−0
- gen/Amazonka/LakeFormation/Types/Permission.hs +121/−0
- gen/Amazonka/LakeFormation/Types/PermissionType.hs +71/−0
- gen/Amazonka/LakeFormation/Types/PlanningStatistics.hs +109/−0
- gen/Amazonka/LakeFormation/Types/PrincipalPermissions.hs +96/−0
- gen/Amazonka/LakeFormation/Types/PrincipalResourcePermissions.hs +140/−0
- gen/Amazonka/LakeFormation/Types/QueryPlanningContext.hs +143/−0
- gen/Amazonka/LakeFormation/Types/QueryStateString.hs +86/−0
- gen/Amazonka/LakeFormation/Types/Resource.hs +211/−0
- gen/Amazonka/LakeFormation/Types/ResourceInfo.hs +96/−0
- gen/Amazonka/LakeFormation/Types/ResourceShareType.hs +71/−0
- gen/Amazonka/LakeFormation/Types/ResourceType.hs +71/−0
- gen/Amazonka/LakeFormation/Types/RowFilter.hs +96/−0
- gen/Amazonka/LakeFormation/Types/StorageOptimizer.hs +152/−0
- gen/Amazonka/LakeFormation/Types/TableObject.hs +99/−0
- gen/Amazonka/LakeFormation/Types/TableResource.hs +145/−0
- gen/Amazonka/LakeFormation/Types/TableWildcard.hs +57/−0
- gen/Amazonka/LakeFormation/Types/TableWithColumnsResource.hs +167/−0
- gen/Amazonka/LakeFormation/Types/TaggedDatabase.hs +86/−0
- gen/Amazonka/LakeFormation/Types/TaggedTable.hs +114/−0
- gen/Amazonka/LakeFormation/Types/TransactionDescription.hs +113/−0
- gen/Amazonka/LakeFormation/Types/TransactionStatus.hs +81/−0
- gen/Amazonka/LakeFormation/Types/TransactionStatusFilter.hs +86/−0
- gen/Amazonka/LakeFormation/Types/TransactionType.hs +71/−0
- gen/Amazonka/LakeFormation/Types/VirtualObject.hs +83/−0
- gen/Amazonka/LakeFormation/Types/WorkUnitRange.hs +109/−0
- gen/Amazonka/LakeFormation/Types/WriteOperation.hs +85/−0
- gen/Amazonka/LakeFormation/UpdateLFTag.hs +206/−0
- gen/Amazonka/LakeFormation/UpdateResource.hs +170/−0
- gen/Amazonka/LakeFormation/UpdateTableObjects.hs +225/−0
- gen/Amazonka/LakeFormation/UpdateTableStorageOptimizer.hs +219/−0
- gen/Amazonka/LakeFormation/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/Gen/LakeFormation.hs +930/−0
- test/Test/Amazonka/LakeFormation.hs +20/−0
- test/Test/Amazonka/LakeFormation/Internal.hs +8/−0
+ 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 Lake Formation SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2017-03-31@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-lakeformation)+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.LakeFormation](http://hackage.haskell.org/package/amazonka-lakeformation/docs/Amazonka-LakeFormation.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-lakeformation` 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-lakeformation.cabal view
@@ -0,0 +1,184 @@+cabal-version: 2.2+name: amazonka-lakeformation+version: 2.0+synopsis: Amazon Lake Formation SDK.+homepage: https://github.com/brendanhay/amazonka+bug-reports: https://github.com/brendanhay/amazonka/issues+license: MPL-2.0+license-file: LICENSE+author: Brendan Hay+maintainer:+ Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright: Copyright (c) 2013-2023 Brendan Hay+category: AWS+build-type: Simple+extra-source-files:+ fixture/*.proto+ fixture/*.yaml+ README.md+ src/.gitkeep++description:+ Derived from API version @2017-03-31@ 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.LakeFormation.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.LakeFormation" 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-lakeformation++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.LakeFormation+ Amazonka.LakeFormation.AddLFTagsToResource+ Amazonka.LakeFormation.AssumeDecoratedRoleWithSAML+ Amazonka.LakeFormation.BatchGrantPermissions+ Amazonka.LakeFormation.BatchRevokePermissions+ Amazonka.LakeFormation.CancelTransaction+ Amazonka.LakeFormation.CommitTransaction+ Amazonka.LakeFormation.CreateDataCellsFilter+ Amazonka.LakeFormation.CreateLFTag+ Amazonka.LakeFormation.DeleteDataCellsFilter+ Amazonka.LakeFormation.DeleteLFTag+ Amazonka.LakeFormation.DeleteObjectsOnCancel+ Amazonka.LakeFormation.DeregisterResource+ Amazonka.LakeFormation.DescribeResource+ Amazonka.LakeFormation.DescribeTransaction+ Amazonka.LakeFormation.ExtendTransaction+ Amazonka.LakeFormation.GetDataLakeSettings+ Amazonka.LakeFormation.GetEffectivePermissionsForPath+ Amazonka.LakeFormation.GetLFTag+ Amazonka.LakeFormation.GetQueryState+ Amazonka.LakeFormation.GetQueryStatistics+ Amazonka.LakeFormation.GetResourceLFTags+ Amazonka.LakeFormation.GetTableObjects+ Amazonka.LakeFormation.GetTemporaryGluePartitionCredentials+ Amazonka.LakeFormation.GetTemporaryGlueTableCredentials+ Amazonka.LakeFormation.GetWorkUnitResults+ Amazonka.LakeFormation.GetWorkUnits+ Amazonka.LakeFormation.GrantPermissions+ Amazonka.LakeFormation.Lens+ Amazonka.LakeFormation.ListDataCellsFilter+ Amazonka.LakeFormation.ListLFTags+ Amazonka.LakeFormation.ListPermissions+ Amazonka.LakeFormation.ListResources+ Amazonka.LakeFormation.ListTableStorageOptimizers+ Amazonka.LakeFormation.ListTransactions+ Amazonka.LakeFormation.PutDataLakeSettings+ Amazonka.LakeFormation.RegisterResource+ Amazonka.LakeFormation.RemoveLFTagsFromResource+ Amazonka.LakeFormation.RevokePermissions+ Amazonka.LakeFormation.SearchDatabasesByLFTags+ Amazonka.LakeFormation.SearchTablesByLFTags+ Amazonka.LakeFormation.StartQueryPlanning+ Amazonka.LakeFormation.StartTransaction+ Amazonka.LakeFormation.Types+ Amazonka.LakeFormation.Types.AddObjectInput+ Amazonka.LakeFormation.Types.AllRowsWildcard+ Amazonka.LakeFormation.Types.AuditContext+ Amazonka.LakeFormation.Types.BatchPermissionsFailureEntry+ Amazonka.LakeFormation.Types.BatchPermissionsRequestEntry+ Amazonka.LakeFormation.Types.CatalogResource+ Amazonka.LakeFormation.Types.ColumnLFTag+ Amazonka.LakeFormation.Types.ColumnWildcard+ Amazonka.LakeFormation.Types.ComparisonOperator+ Amazonka.LakeFormation.Types.DatabaseResource+ Amazonka.LakeFormation.Types.DataCellsFilter+ Amazonka.LakeFormation.Types.DataCellsFilterResource+ Amazonka.LakeFormation.Types.DataLakePrincipal+ Amazonka.LakeFormation.Types.DataLakeResourceType+ Amazonka.LakeFormation.Types.DataLakeSettings+ Amazonka.LakeFormation.Types.DataLocationResource+ Amazonka.LakeFormation.Types.DeleteObjectInput+ Amazonka.LakeFormation.Types.DetailsMap+ Amazonka.LakeFormation.Types.ErrorDetail+ Amazonka.LakeFormation.Types.ExecutionStatistics+ Amazonka.LakeFormation.Types.FieldNameString+ Amazonka.LakeFormation.Types.FilterCondition+ Amazonka.LakeFormation.Types.LFTag+ Amazonka.LakeFormation.Types.LFTagError+ Amazonka.LakeFormation.Types.LFTagKeyResource+ Amazonka.LakeFormation.Types.LFTagPair+ Amazonka.LakeFormation.Types.LFTagPolicyResource+ Amazonka.LakeFormation.Types.OptimizerType+ Amazonka.LakeFormation.Types.PartitionObjects+ Amazonka.LakeFormation.Types.PartitionValueList+ Amazonka.LakeFormation.Types.Permission+ Amazonka.LakeFormation.Types.PermissionType+ Amazonka.LakeFormation.Types.PlanningStatistics+ Amazonka.LakeFormation.Types.PrincipalPermissions+ Amazonka.LakeFormation.Types.PrincipalResourcePermissions+ Amazonka.LakeFormation.Types.QueryPlanningContext+ Amazonka.LakeFormation.Types.QueryStateString+ Amazonka.LakeFormation.Types.Resource+ Amazonka.LakeFormation.Types.ResourceInfo+ Amazonka.LakeFormation.Types.ResourceShareType+ Amazonka.LakeFormation.Types.ResourceType+ Amazonka.LakeFormation.Types.RowFilter+ Amazonka.LakeFormation.Types.StorageOptimizer+ Amazonka.LakeFormation.Types.TableObject+ Amazonka.LakeFormation.Types.TableResource+ Amazonka.LakeFormation.Types.TableWildcard+ Amazonka.LakeFormation.Types.TableWithColumnsResource+ Amazonka.LakeFormation.Types.TaggedDatabase+ Amazonka.LakeFormation.Types.TaggedTable+ Amazonka.LakeFormation.Types.TransactionDescription+ Amazonka.LakeFormation.Types.TransactionStatus+ Amazonka.LakeFormation.Types.TransactionStatusFilter+ Amazonka.LakeFormation.Types.TransactionType+ Amazonka.LakeFormation.Types.VirtualObject+ Amazonka.LakeFormation.Types.WorkUnitRange+ Amazonka.LakeFormation.Types.WriteOperation+ Amazonka.LakeFormation.UpdateLFTag+ Amazonka.LakeFormation.UpdateResource+ Amazonka.LakeFormation.UpdateTableObjects+ Amazonka.LakeFormation.UpdateTableStorageOptimizer+ Amazonka.LakeFormation.Waiters++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-lakeformation-test+ type: exitcode-stdio-1.0+ default-language: Haskell2010+ hs-source-dirs: test+ main-is: Main.hs+ ghc-options: -Wall -threaded++ -- This section is encoded by the template and any modules added by+ -- hand outside these namespaces will not correctly be added to the+ -- distribution package.+ other-modules:+ Test.Amazonka.Gen.LakeFormation+ Test.Amazonka.LakeFormation+ Test.Amazonka.LakeFormation.Internal++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-lakeformation+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/AddLFTagsToResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/AddLFTagsToResourceResponse.proto view
+ fixture/AssumeDecoratedRoleWithSAML.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/AssumeDecoratedRoleWithSAMLResponse.proto view
+ fixture/BatchGrantPermissions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/BatchGrantPermissionsResponse.proto view
+ fixture/BatchRevokePermissions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/BatchRevokePermissionsResponse.proto view
+ fixture/CancelTransaction.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/CancelTransactionResponse.proto view
+ fixture/CommitTransaction.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/CommitTransactionResponse.proto view
+ fixture/CreateDataCellsFilter.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/CreateDataCellsFilterResponse.proto view
+ fixture/CreateLFTag.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/CreateLFTagResponse.proto view
+ fixture/DeleteDataCellsFilter.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/DeleteDataCellsFilterResponse.proto view
+ fixture/DeleteLFTag.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/DeleteLFTagResponse.proto view
+ fixture/DeleteObjectsOnCancel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/DeleteObjectsOnCancelResponse.proto view
+ fixture/DeregisterResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/DeregisterResourceResponse.proto view
+ fixture/DescribeResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/DescribeResourceResponse.proto view
+ fixture/DescribeTransaction.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/DescribeTransactionResponse.proto view
+ fixture/ExtendTransaction.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/ExtendTransactionResponse.proto view
+ fixture/GetDataLakeSettings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/GetDataLakeSettingsResponse.proto view
+ fixture/GetEffectivePermissionsForPath.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/GetEffectivePermissionsForPathResponse.proto view
+ fixture/GetLFTag.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/GetLFTagResponse.proto view
+ fixture/GetQueryState.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/GetQueryStateResponse.proto view
+ fixture/GetQueryStatistics.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/GetQueryStatisticsResponse.proto view
+ fixture/GetResourceLFTags.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/GetResourceLFTagsResponse.proto view
+ fixture/GetTableObjects.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/GetTableObjectsResponse.proto view
+ fixture/GetTemporaryGluePartitionCredentials.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/GetTemporaryGluePartitionCredentialsResponse.proto view
+ fixture/GetTemporaryGlueTableCredentials.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/GetTemporaryGlueTableCredentialsResponse.proto view
+ fixture/GetWorkUnitResults.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/GetWorkUnitResultsResponse.proto view
+ fixture/GetWorkUnits.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/GetWorkUnitsResponse.proto view
+ fixture/GrantPermissions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/GrantPermissionsResponse.proto view
+ fixture/ListDataCellsFilter.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/ListDataCellsFilterResponse.proto view
+ fixture/ListLFTags.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/ListLFTagsResponse.proto view
+ fixture/ListPermissions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/ListPermissionsResponse.proto view
+ fixture/ListResources.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/ListResourcesResponse.proto view
+ fixture/ListTableStorageOptimizers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/ListTableStorageOptimizersResponse.proto view
+ fixture/ListTransactions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/ListTransactionsResponse.proto view
+ fixture/PutDataLakeSettings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/PutDataLakeSettingsResponse.proto view
+ fixture/RegisterResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/RegisterResourceResponse.proto view
+ fixture/RemoveLFTagsFromResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/RemoveLFTagsFromResourceResponse.proto view
+ fixture/RevokePermissions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/RevokePermissionsResponse.proto view
+ fixture/SearchDatabasesByLFTags.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/SearchDatabasesByLFTagsResponse.proto view
+ fixture/SearchTablesByLFTags.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/SearchTablesByLFTagsResponse.proto view
+ fixture/StartQueryPlanning.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/StartQueryPlanningResponse.proto view
+ fixture/StartTransaction.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/StartTransactionResponse.proto view
+ fixture/UpdateLFTag.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/UpdateLFTagResponse.proto view
+ fixture/UpdateResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/UpdateResourceResponse.proto view
+ fixture/UpdateTableObjects.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/UpdateTableObjectsResponse.proto view
+ fixture/UpdateTableStorageOptimizer.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lakeformation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: lakeformation.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/UpdateTableStorageOptimizerResponse.proto view
+ gen/Amazonka/LakeFormation.hs view
@@ -0,0 +1,644 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.LakeFormation+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2017-03-31@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Lake Formation+--+-- Defines the public endpoint for the Lake Formation service.+module Amazonka.LakeFormation+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** AccessDeniedException+ _AccessDeniedException,++ -- ** AlreadyExistsException+ _AlreadyExistsException,++ -- ** ConcurrentModificationException+ _ConcurrentModificationException,++ -- ** EntityNotFoundException+ _EntityNotFoundException,++ -- ** ExpiredException+ _ExpiredException,++ -- ** GlueEncryptionException+ _GlueEncryptionException,++ -- ** InternalServiceException+ _InternalServiceException,++ -- ** InvalidInputException+ _InvalidInputException,++ -- ** OperationTimeoutException+ _OperationTimeoutException,++ -- ** PermissionTypeMismatchException+ _PermissionTypeMismatchException,++ -- ** ResourceNotReadyException+ _ResourceNotReadyException,++ -- ** ResourceNumberLimitExceededException+ _ResourceNumberLimitExceededException,++ -- ** StatisticsNotReadyYetException+ _StatisticsNotReadyYetException,++ -- ** ThrottledException+ _ThrottledException,++ -- ** TransactionCanceledException+ _TransactionCanceledException,++ -- ** TransactionCommitInProgressException+ _TransactionCommitInProgressException,++ -- ** TransactionCommittedException+ _TransactionCommittedException,++ -- ** WorkUnitsNotReadyYetException+ _WorkUnitsNotReadyYetException,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** AddLFTagsToResource+ AddLFTagsToResource (AddLFTagsToResource'),+ newAddLFTagsToResource,+ AddLFTagsToResourceResponse (AddLFTagsToResourceResponse'),+ newAddLFTagsToResourceResponse,++ -- ** AssumeDecoratedRoleWithSAML+ AssumeDecoratedRoleWithSAML (AssumeDecoratedRoleWithSAML'),+ newAssumeDecoratedRoleWithSAML,+ AssumeDecoratedRoleWithSAMLResponse (AssumeDecoratedRoleWithSAMLResponse'),+ newAssumeDecoratedRoleWithSAMLResponse,++ -- ** BatchGrantPermissions+ BatchGrantPermissions (BatchGrantPermissions'),+ newBatchGrantPermissions,+ BatchGrantPermissionsResponse (BatchGrantPermissionsResponse'),+ newBatchGrantPermissionsResponse,++ -- ** BatchRevokePermissions+ BatchRevokePermissions (BatchRevokePermissions'),+ newBatchRevokePermissions,+ BatchRevokePermissionsResponse (BatchRevokePermissionsResponse'),+ newBatchRevokePermissionsResponse,++ -- ** CancelTransaction+ CancelTransaction (CancelTransaction'),+ newCancelTransaction,+ CancelTransactionResponse (CancelTransactionResponse'),+ newCancelTransactionResponse,++ -- ** CommitTransaction+ CommitTransaction (CommitTransaction'),+ newCommitTransaction,+ CommitTransactionResponse (CommitTransactionResponse'),+ newCommitTransactionResponse,++ -- ** CreateDataCellsFilter+ CreateDataCellsFilter (CreateDataCellsFilter'),+ newCreateDataCellsFilter,+ CreateDataCellsFilterResponse (CreateDataCellsFilterResponse'),+ newCreateDataCellsFilterResponse,++ -- ** CreateLFTag+ CreateLFTag (CreateLFTag'),+ newCreateLFTag,+ CreateLFTagResponse (CreateLFTagResponse'),+ newCreateLFTagResponse,++ -- ** DeleteDataCellsFilter+ DeleteDataCellsFilter (DeleteDataCellsFilter'),+ newDeleteDataCellsFilter,+ DeleteDataCellsFilterResponse (DeleteDataCellsFilterResponse'),+ newDeleteDataCellsFilterResponse,++ -- ** DeleteLFTag+ DeleteLFTag (DeleteLFTag'),+ newDeleteLFTag,+ DeleteLFTagResponse (DeleteLFTagResponse'),+ newDeleteLFTagResponse,++ -- ** DeleteObjectsOnCancel+ DeleteObjectsOnCancel (DeleteObjectsOnCancel'),+ newDeleteObjectsOnCancel,+ DeleteObjectsOnCancelResponse (DeleteObjectsOnCancelResponse'),+ newDeleteObjectsOnCancelResponse,++ -- ** DeregisterResource+ DeregisterResource (DeregisterResource'),+ newDeregisterResource,+ DeregisterResourceResponse (DeregisterResourceResponse'),+ newDeregisterResourceResponse,++ -- ** DescribeResource+ DescribeResource (DescribeResource'),+ newDescribeResource,+ DescribeResourceResponse (DescribeResourceResponse'),+ newDescribeResourceResponse,++ -- ** DescribeTransaction+ DescribeTransaction (DescribeTransaction'),+ newDescribeTransaction,+ DescribeTransactionResponse (DescribeTransactionResponse'),+ newDescribeTransactionResponse,++ -- ** ExtendTransaction+ ExtendTransaction (ExtendTransaction'),+ newExtendTransaction,+ ExtendTransactionResponse (ExtendTransactionResponse'),+ newExtendTransactionResponse,++ -- ** GetDataLakeSettings+ GetDataLakeSettings (GetDataLakeSettings'),+ newGetDataLakeSettings,+ GetDataLakeSettingsResponse (GetDataLakeSettingsResponse'),+ newGetDataLakeSettingsResponse,++ -- ** GetEffectivePermissionsForPath+ GetEffectivePermissionsForPath (GetEffectivePermissionsForPath'),+ newGetEffectivePermissionsForPath,+ GetEffectivePermissionsForPathResponse (GetEffectivePermissionsForPathResponse'),+ newGetEffectivePermissionsForPathResponse,++ -- ** GetLFTag+ GetLFTag (GetLFTag'),+ newGetLFTag,+ GetLFTagResponse (GetLFTagResponse'),+ newGetLFTagResponse,++ -- ** GetQueryState+ GetQueryState (GetQueryState'),+ newGetQueryState,+ GetQueryStateResponse (GetQueryStateResponse'),+ newGetQueryStateResponse,++ -- ** GetQueryStatistics+ GetQueryStatistics (GetQueryStatistics'),+ newGetQueryStatistics,+ GetQueryStatisticsResponse (GetQueryStatisticsResponse'),+ newGetQueryStatisticsResponse,++ -- ** GetResourceLFTags+ GetResourceLFTags (GetResourceLFTags'),+ newGetResourceLFTags,+ GetResourceLFTagsResponse (GetResourceLFTagsResponse'),+ newGetResourceLFTagsResponse,++ -- ** GetTableObjects+ GetTableObjects (GetTableObjects'),+ newGetTableObjects,+ GetTableObjectsResponse (GetTableObjectsResponse'),+ newGetTableObjectsResponse,++ -- ** GetTemporaryGluePartitionCredentials+ GetTemporaryGluePartitionCredentials (GetTemporaryGluePartitionCredentials'),+ newGetTemporaryGluePartitionCredentials,+ GetTemporaryGluePartitionCredentialsResponse (GetTemporaryGluePartitionCredentialsResponse'),+ newGetTemporaryGluePartitionCredentialsResponse,++ -- ** GetTemporaryGlueTableCredentials+ GetTemporaryGlueTableCredentials (GetTemporaryGlueTableCredentials'),+ newGetTemporaryGlueTableCredentials,+ GetTemporaryGlueTableCredentialsResponse (GetTemporaryGlueTableCredentialsResponse'),+ newGetTemporaryGlueTableCredentialsResponse,++ -- ** GetWorkUnitResults+ GetWorkUnitResults (GetWorkUnitResults'),+ newGetWorkUnitResults,+ GetWorkUnitResultsResponse (GetWorkUnitResultsResponse'),+ newGetWorkUnitResultsResponse,++ -- ** GetWorkUnits (Paginated)+ GetWorkUnits (GetWorkUnits'),+ newGetWorkUnits,+ GetWorkUnitsResponse (GetWorkUnitsResponse'),+ newGetWorkUnitsResponse,++ -- ** GrantPermissions+ GrantPermissions (GrantPermissions'),+ newGrantPermissions,+ GrantPermissionsResponse (GrantPermissionsResponse'),+ newGrantPermissionsResponse,++ -- ** ListDataCellsFilter (Paginated)+ ListDataCellsFilter (ListDataCellsFilter'),+ newListDataCellsFilter,+ ListDataCellsFilterResponse (ListDataCellsFilterResponse'),+ newListDataCellsFilterResponse,++ -- ** ListLFTags (Paginated)+ ListLFTags (ListLFTags'),+ newListLFTags,+ ListLFTagsResponse (ListLFTagsResponse'),+ newListLFTagsResponse,++ -- ** ListPermissions+ ListPermissions (ListPermissions'),+ newListPermissions,+ ListPermissionsResponse (ListPermissionsResponse'),+ newListPermissionsResponse,++ -- ** ListResources+ ListResources (ListResources'),+ newListResources,+ ListResourcesResponse (ListResourcesResponse'),+ newListResourcesResponse,++ -- ** ListTableStorageOptimizers+ ListTableStorageOptimizers (ListTableStorageOptimizers'),+ newListTableStorageOptimizers,+ ListTableStorageOptimizersResponse (ListTableStorageOptimizersResponse'),+ newListTableStorageOptimizersResponse,++ -- ** ListTransactions+ ListTransactions (ListTransactions'),+ newListTransactions,+ ListTransactionsResponse (ListTransactionsResponse'),+ newListTransactionsResponse,++ -- ** PutDataLakeSettings+ PutDataLakeSettings (PutDataLakeSettings'),+ newPutDataLakeSettings,+ PutDataLakeSettingsResponse (PutDataLakeSettingsResponse'),+ newPutDataLakeSettingsResponse,++ -- ** RegisterResource+ RegisterResource (RegisterResource'),+ newRegisterResource,+ RegisterResourceResponse (RegisterResourceResponse'),+ newRegisterResourceResponse,++ -- ** RemoveLFTagsFromResource+ RemoveLFTagsFromResource (RemoveLFTagsFromResource'),+ newRemoveLFTagsFromResource,+ RemoveLFTagsFromResourceResponse (RemoveLFTagsFromResourceResponse'),+ newRemoveLFTagsFromResourceResponse,++ -- ** RevokePermissions+ RevokePermissions (RevokePermissions'),+ newRevokePermissions,+ RevokePermissionsResponse (RevokePermissionsResponse'),+ newRevokePermissionsResponse,++ -- ** SearchDatabasesByLFTags (Paginated)+ SearchDatabasesByLFTags (SearchDatabasesByLFTags'),+ newSearchDatabasesByLFTags,+ SearchDatabasesByLFTagsResponse (SearchDatabasesByLFTagsResponse'),+ newSearchDatabasesByLFTagsResponse,++ -- ** SearchTablesByLFTags (Paginated)+ SearchTablesByLFTags (SearchTablesByLFTags'),+ newSearchTablesByLFTags,+ SearchTablesByLFTagsResponse (SearchTablesByLFTagsResponse'),+ newSearchTablesByLFTagsResponse,++ -- ** StartQueryPlanning+ StartQueryPlanning (StartQueryPlanning'),+ newStartQueryPlanning,+ StartQueryPlanningResponse (StartQueryPlanningResponse'),+ newStartQueryPlanningResponse,++ -- ** StartTransaction+ StartTransaction (StartTransaction'),+ newStartTransaction,+ StartTransactionResponse (StartTransactionResponse'),+ newStartTransactionResponse,++ -- ** UpdateLFTag+ UpdateLFTag (UpdateLFTag'),+ newUpdateLFTag,+ UpdateLFTagResponse (UpdateLFTagResponse'),+ newUpdateLFTagResponse,++ -- ** UpdateResource+ UpdateResource (UpdateResource'),+ newUpdateResource,+ UpdateResourceResponse (UpdateResourceResponse'),+ newUpdateResourceResponse,++ -- ** UpdateTableObjects+ UpdateTableObjects (UpdateTableObjects'),+ newUpdateTableObjects,+ UpdateTableObjectsResponse (UpdateTableObjectsResponse'),+ newUpdateTableObjectsResponse,++ -- ** UpdateTableStorageOptimizer+ UpdateTableStorageOptimizer (UpdateTableStorageOptimizer'),+ newUpdateTableStorageOptimizer,+ UpdateTableStorageOptimizerResponse (UpdateTableStorageOptimizerResponse'),+ newUpdateTableStorageOptimizerResponse,++ -- * Types++ -- ** ComparisonOperator+ ComparisonOperator (..),++ -- ** DataLakeResourceType+ DataLakeResourceType (..),++ -- ** FieldNameString+ FieldNameString (..),++ -- ** OptimizerType+ OptimizerType (..),++ -- ** Permission+ Permission (..),++ -- ** PermissionType+ PermissionType (..),++ -- ** QueryStateString+ QueryStateString (..),++ -- ** ResourceShareType+ ResourceShareType (..),++ -- ** ResourceType+ ResourceType (..),++ -- ** TransactionStatus+ TransactionStatus (..),++ -- ** TransactionStatusFilter+ TransactionStatusFilter (..),++ -- ** TransactionType+ TransactionType (..),++ -- ** AddObjectInput+ AddObjectInput (AddObjectInput'),+ newAddObjectInput,++ -- ** AllRowsWildcard+ AllRowsWildcard (AllRowsWildcard'),+ newAllRowsWildcard,++ -- ** AuditContext+ AuditContext (AuditContext'),+ newAuditContext,++ -- ** BatchPermissionsFailureEntry+ BatchPermissionsFailureEntry (BatchPermissionsFailureEntry'),+ newBatchPermissionsFailureEntry,++ -- ** BatchPermissionsRequestEntry+ BatchPermissionsRequestEntry (BatchPermissionsRequestEntry'),+ newBatchPermissionsRequestEntry,++ -- ** CatalogResource+ CatalogResource (CatalogResource'),+ newCatalogResource,++ -- ** ColumnLFTag+ ColumnLFTag (ColumnLFTag'),+ newColumnLFTag,++ -- ** ColumnWildcard+ ColumnWildcard (ColumnWildcard'),+ newColumnWildcard,++ -- ** DataCellsFilter+ DataCellsFilter (DataCellsFilter'),+ newDataCellsFilter,++ -- ** DataCellsFilterResource+ DataCellsFilterResource (DataCellsFilterResource'),+ newDataCellsFilterResource,++ -- ** DataLakePrincipal+ DataLakePrincipal (DataLakePrincipal'),+ newDataLakePrincipal,++ -- ** DataLakeSettings+ DataLakeSettings (DataLakeSettings'),+ newDataLakeSettings,++ -- ** DataLocationResource+ DataLocationResource (DataLocationResource'),+ newDataLocationResource,++ -- ** DatabaseResource+ DatabaseResource (DatabaseResource'),+ newDatabaseResource,++ -- ** DeleteObjectInput+ DeleteObjectInput (DeleteObjectInput'),+ newDeleteObjectInput,++ -- ** DetailsMap+ DetailsMap (DetailsMap'),+ newDetailsMap,++ -- ** ErrorDetail+ ErrorDetail (ErrorDetail'),+ newErrorDetail,++ -- ** ExecutionStatistics+ ExecutionStatistics (ExecutionStatistics'),+ newExecutionStatistics,++ -- ** FilterCondition+ FilterCondition (FilterCondition'),+ newFilterCondition,++ -- ** LFTag+ LFTag (LFTag'),+ newLFTag,++ -- ** LFTagError+ LFTagError (LFTagError'),+ newLFTagError,++ -- ** LFTagKeyResource+ LFTagKeyResource (LFTagKeyResource'),+ newLFTagKeyResource,++ -- ** LFTagPair+ LFTagPair (LFTagPair'),+ newLFTagPair,++ -- ** LFTagPolicyResource+ LFTagPolicyResource (LFTagPolicyResource'),+ newLFTagPolicyResource,++ -- ** PartitionObjects+ PartitionObjects (PartitionObjects'),+ newPartitionObjects,++ -- ** PartitionValueList+ PartitionValueList (PartitionValueList'),+ newPartitionValueList,++ -- ** PlanningStatistics+ PlanningStatistics (PlanningStatistics'),+ newPlanningStatistics,++ -- ** PrincipalPermissions+ PrincipalPermissions (PrincipalPermissions'),+ newPrincipalPermissions,++ -- ** PrincipalResourcePermissions+ PrincipalResourcePermissions (PrincipalResourcePermissions'),+ newPrincipalResourcePermissions,++ -- ** QueryPlanningContext+ QueryPlanningContext (QueryPlanningContext'),+ newQueryPlanningContext,++ -- ** Resource+ Resource (Resource'),+ newResource,++ -- ** ResourceInfo+ ResourceInfo (ResourceInfo'),+ newResourceInfo,++ -- ** RowFilter+ RowFilter (RowFilter'),+ newRowFilter,++ -- ** StorageOptimizer+ StorageOptimizer (StorageOptimizer'),+ newStorageOptimizer,++ -- ** TableObject+ TableObject (TableObject'),+ newTableObject,++ -- ** TableResource+ TableResource (TableResource'),+ newTableResource,++ -- ** TableWildcard+ TableWildcard (TableWildcard'),+ newTableWildcard,++ -- ** TableWithColumnsResource+ TableWithColumnsResource (TableWithColumnsResource'),+ newTableWithColumnsResource,++ -- ** TaggedDatabase+ TaggedDatabase (TaggedDatabase'),+ newTaggedDatabase,++ -- ** TaggedTable+ TaggedTable (TaggedTable'),+ newTaggedTable,++ -- ** TransactionDescription+ TransactionDescription (TransactionDescription'),+ newTransactionDescription,++ -- ** VirtualObject+ VirtualObject (VirtualObject'),+ newVirtualObject,++ -- ** WorkUnitRange+ WorkUnitRange (WorkUnitRange'),+ newWorkUnitRange,++ -- ** WriteOperation+ WriteOperation (WriteOperation'),+ newWriteOperation,+ )+where++import Amazonka.LakeFormation.AddLFTagsToResource+import Amazonka.LakeFormation.AssumeDecoratedRoleWithSAML+import Amazonka.LakeFormation.BatchGrantPermissions+import Amazonka.LakeFormation.BatchRevokePermissions+import Amazonka.LakeFormation.CancelTransaction+import Amazonka.LakeFormation.CommitTransaction+import Amazonka.LakeFormation.CreateDataCellsFilter+import Amazonka.LakeFormation.CreateLFTag+import Amazonka.LakeFormation.DeleteDataCellsFilter+import Amazonka.LakeFormation.DeleteLFTag+import Amazonka.LakeFormation.DeleteObjectsOnCancel+import Amazonka.LakeFormation.DeregisterResource+import Amazonka.LakeFormation.DescribeResource+import Amazonka.LakeFormation.DescribeTransaction+import Amazonka.LakeFormation.ExtendTransaction+import Amazonka.LakeFormation.GetDataLakeSettings+import Amazonka.LakeFormation.GetEffectivePermissionsForPath+import Amazonka.LakeFormation.GetLFTag+import Amazonka.LakeFormation.GetQueryState+import Amazonka.LakeFormation.GetQueryStatistics+import Amazonka.LakeFormation.GetResourceLFTags+import Amazonka.LakeFormation.GetTableObjects+import Amazonka.LakeFormation.GetTemporaryGluePartitionCredentials+import Amazonka.LakeFormation.GetTemporaryGlueTableCredentials+import Amazonka.LakeFormation.GetWorkUnitResults+import Amazonka.LakeFormation.GetWorkUnits+import Amazonka.LakeFormation.GrantPermissions+import Amazonka.LakeFormation.Lens+import Amazonka.LakeFormation.ListDataCellsFilter+import Amazonka.LakeFormation.ListLFTags+import Amazonka.LakeFormation.ListPermissions+import Amazonka.LakeFormation.ListResources+import Amazonka.LakeFormation.ListTableStorageOptimizers+import Amazonka.LakeFormation.ListTransactions+import Amazonka.LakeFormation.PutDataLakeSettings+import Amazonka.LakeFormation.RegisterResource+import Amazonka.LakeFormation.RemoveLFTagsFromResource+import Amazonka.LakeFormation.RevokePermissions+import Amazonka.LakeFormation.SearchDatabasesByLFTags+import Amazonka.LakeFormation.SearchTablesByLFTags+import Amazonka.LakeFormation.StartQueryPlanning+import Amazonka.LakeFormation.StartTransaction+import Amazonka.LakeFormation.Types+import Amazonka.LakeFormation.UpdateLFTag+import Amazonka.LakeFormation.UpdateResource+import Amazonka.LakeFormation.UpdateTableObjects+import Amazonka.LakeFormation.UpdateTableStorageOptimizer+import Amazonka.LakeFormation.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 'LakeFormation'.++-- $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/LakeFormation/AddLFTagsToResource.hs view
@@ -0,0 +1,206 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.AddLFTagsToResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Attaches one or more LF-tags to an existing resource.+module Amazonka.LakeFormation.AddLFTagsToResource+ ( -- * Creating a Request+ AddLFTagsToResource (..),+ newAddLFTagsToResource,++ -- * Request Lenses+ addLFTagsToResource_catalogId,+ addLFTagsToResource_resource,+ addLFTagsToResource_lFTags,++ -- * Destructuring the Response+ AddLFTagsToResourceResponse (..),+ newAddLFTagsToResourceResponse,++ -- * Response Lenses+ addLFTagsToResourceResponse_failures,+ addLFTagsToResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAddLFTagsToResource' smart constructor.+data AddLFTagsToResource = AddLFTagsToResource'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The database, table, or column resource to which to attach an LF-tag.+ resource :: Resource,+ -- | The LF-tags to attach to the resource.+ lFTags :: Prelude.NonEmpty LFTagPair+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddLFTagsToResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'addLFTagsToResource_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'resource', 'addLFTagsToResource_resource' - The database, table, or column resource to which to attach an LF-tag.+--+-- 'lFTags', 'addLFTagsToResource_lFTags' - The LF-tags to attach to the resource.+newAddLFTagsToResource ::+ -- | 'resource'+ Resource ->+ -- | 'lFTags'+ Prelude.NonEmpty LFTagPair ->+ AddLFTagsToResource+newAddLFTagsToResource pResource_ pLFTags_ =+ AddLFTagsToResource'+ { catalogId = Prelude.Nothing,+ resource = pResource_,+ lFTags = Lens.coerced Lens.# pLFTags_+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+addLFTagsToResource_catalogId :: Lens.Lens' AddLFTagsToResource (Prelude.Maybe Prelude.Text)+addLFTagsToResource_catalogId = Lens.lens (\AddLFTagsToResource' {catalogId} -> catalogId) (\s@AddLFTagsToResource' {} a -> s {catalogId = a} :: AddLFTagsToResource)++-- | The database, table, or column resource to which to attach an LF-tag.+addLFTagsToResource_resource :: Lens.Lens' AddLFTagsToResource Resource+addLFTagsToResource_resource = Lens.lens (\AddLFTagsToResource' {resource} -> resource) (\s@AddLFTagsToResource' {} a -> s {resource = a} :: AddLFTagsToResource)++-- | The LF-tags to attach to the resource.+addLFTagsToResource_lFTags :: Lens.Lens' AddLFTagsToResource (Prelude.NonEmpty LFTagPair)+addLFTagsToResource_lFTags = Lens.lens (\AddLFTagsToResource' {lFTags} -> lFTags) (\s@AddLFTagsToResource' {} a -> s {lFTags = a} :: AddLFTagsToResource) Prelude.. Lens.coerced++instance Core.AWSRequest AddLFTagsToResource where+ type+ AWSResponse AddLFTagsToResource =+ AddLFTagsToResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ AddLFTagsToResourceResponse'+ Prelude.<$> (x Data..?> "Failures" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable AddLFTagsToResource where+ hashWithSalt _salt AddLFTagsToResource' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` resource+ `Prelude.hashWithSalt` lFTags++instance Prelude.NFData AddLFTagsToResource where+ rnf AddLFTagsToResource' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf resource+ `Prelude.seq` Prelude.rnf lFTags++instance Data.ToHeaders AddLFTagsToResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON AddLFTagsToResource where+ toJSON AddLFTagsToResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ Prelude.Just ("Resource" Data..= resource),+ Prelude.Just ("LFTags" Data..= lFTags)+ ]+ )++instance Data.ToPath AddLFTagsToResource where+ toPath = Prelude.const "/AddLFTagsToResource"++instance Data.ToQuery AddLFTagsToResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAddLFTagsToResourceResponse' smart constructor.+data AddLFTagsToResourceResponse = AddLFTagsToResourceResponse'+ { -- | A list of failures to tag the resource.+ failures :: Prelude.Maybe [LFTagError],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddLFTagsToResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failures', 'addLFTagsToResourceResponse_failures' - A list of failures to tag the resource.+--+-- 'httpStatus', 'addLFTagsToResourceResponse_httpStatus' - The response's http status code.+newAddLFTagsToResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ AddLFTagsToResourceResponse+newAddLFTagsToResourceResponse pHttpStatus_ =+ AddLFTagsToResourceResponse'+ { failures =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of failures to tag the resource.+addLFTagsToResourceResponse_failures :: Lens.Lens' AddLFTagsToResourceResponse (Prelude.Maybe [LFTagError])+addLFTagsToResourceResponse_failures = Lens.lens (\AddLFTagsToResourceResponse' {failures} -> failures) (\s@AddLFTagsToResourceResponse' {} a -> s {failures = a} :: AddLFTagsToResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+addLFTagsToResourceResponse_httpStatus :: Lens.Lens' AddLFTagsToResourceResponse Prelude.Int+addLFTagsToResourceResponse_httpStatus = Lens.lens (\AddLFTagsToResourceResponse' {httpStatus} -> httpStatus) (\s@AddLFTagsToResourceResponse' {} a -> s {httpStatus = a} :: AddLFTagsToResourceResponse)++instance Prelude.NFData AddLFTagsToResourceResponse where+ rnf AddLFTagsToResourceResponse' {..} =+ Prelude.rnf failures+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/AssumeDecoratedRoleWithSAML.hs view
@@ -0,0 +1,297 @@+{-# 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.LakeFormation.AssumeDecoratedRoleWithSAML+-- 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 a caller to assume an IAM role decorated as the SAML user+-- specified in the SAML assertion included in the request. This decoration+-- allows Lake Formation to enforce access policies against the SAML users+-- and groups. This API operation requires SAML federation setup in the+-- caller’s account as it can only be called with valid SAML assertions.+-- Lake Formation does not scope down the permission of the assumed role.+-- All permissions attached to the role via the SAML federation setup will+-- be included in the role session.+--+-- This decorated role is expected to access data in Amazon S3 by getting+-- temporary access from Lake Formation which is authorized via the virtual+-- API @GetDataAccess@. Therefore, all SAML roles that can be assumed via+-- @AssumeDecoratedRoleWithSAML@ must at a minimum include+-- @lakeformation:GetDataAccess@ in their role policies. A typical IAM+-- policy attached to such a role would look as follows:+module Amazonka.LakeFormation.AssumeDecoratedRoleWithSAML+ ( -- * Creating a Request+ AssumeDecoratedRoleWithSAML (..),+ newAssumeDecoratedRoleWithSAML,++ -- * Request Lenses+ assumeDecoratedRoleWithSAML_durationSeconds,+ assumeDecoratedRoleWithSAML_sAMLAssertion,+ assumeDecoratedRoleWithSAML_roleArn,+ assumeDecoratedRoleWithSAML_principalArn,++ -- * Destructuring the Response+ AssumeDecoratedRoleWithSAMLResponse (..),+ newAssumeDecoratedRoleWithSAMLResponse,++ -- * Response Lenses+ assumeDecoratedRoleWithSAMLResponse_accessKeyId,+ assumeDecoratedRoleWithSAMLResponse_expiration,+ assumeDecoratedRoleWithSAMLResponse_secretAccessKey,+ assumeDecoratedRoleWithSAMLResponse_sessionToken,+ assumeDecoratedRoleWithSAMLResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAssumeDecoratedRoleWithSAML' smart constructor.+data AssumeDecoratedRoleWithSAML = AssumeDecoratedRoleWithSAML'+ { -- | The time period, between 900 and 43,200 seconds, for the timeout of the+ -- temporary credentials.+ durationSeconds :: Prelude.Maybe Prelude.Natural,+ -- | A SAML assertion consisting of an assertion statement for the user who+ -- needs temporary credentials. This must match the SAML assertion that was+ -- issued to IAM. This must be Base64 encoded.+ sAMLAssertion :: Prelude.Text,+ -- | The role that represents an IAM principal whose scope down policy allows+ -- it to call credential vending APIs such as+ -- @GetTemporaryTableCredentials@. The caller must also have iam:PassRole+ -- permission on this role.+ roleArn :: Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the SAML provider in IAM that+ -- describes the IdP.+ principalArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssumeDecoratedRoleWithSAML' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'durationSeconds', 'assumeDecoratedRoleWithSAML_durationSeconds' - The time period, between 900 and 43,200 seconds, for the timeout of the+-- temporary credentials.+--+-- 'sAMLAssertion', 'assumeDecoratedRoleWithSAML_sAMLAssertion' - A SAML assertion consisting of an assertion statement for the user who+-- needs temporary credentials. This must match the SAML assertion that was+-- issued to IAM. This must be Base64 encoded.+--+-- 'roleArn', 'assumeDecoratedRoleWithSAML_roleArn' - The role that represents an IAM principal whose scope down policy allows+-- it to call credential vending APIs such as+-- @GetTemporaryTableCredentials@. The caller must also have iam:PassRole+-- permission on this role.+--+-- 'principalArn', 'assumeDecoratedRoleWithSAML_principalArn' - The Amazon Resource Name (ARN) of the SAML provider in IAM that+-- describes the IdP.+newAssumeDecoratedRoleWithSAML ::+ -- | 'sAMLAssertion'+ Prelude.Text ->+ -- | 'roleArn'+ Prelude.Text ->+ -- | 'principalArn'+ Prelude.Text ->+ AssumeDecoratedRoleWithSAML+newAssumeDecoratedRoleWithSAML+ pSAMLAssertion_+ pRoleArn_+ pPrincipalArn_ =+ AssumeDecoratedRoleWithSAML'+ { durationSeconds =+ Prelude.Nothing,+ sAMLAssertion = pSAMLAssertion_,+ roleArn = pRoleArn_,+ principalArn = pPrincipalArn_+ }++-- | The time period, between 900 and 43,200 seconds, for the timeout of the+-- temporary credentials.+assumeDecoratedRoleWithSAML_durationSeconds :: Lens.Lens' AssumeDecoratedRoleWithSAML (Prelude.Maybe Prelude.Natural)+assumeDecoratedRoleWithSAML_durationSeconds = Lens.lens (\AssumeDecoratedRoleWithSAML' {durationSeconds} -> durationSeconds) (\s@AssumeDecoratedRoleWithSAML' {} a -> s {durationSeconds = a} :: AssumeDecoratedRoleWithSAML)++-- | A SAML assertion consisting of an assertion statement for the user who+-- needs temporary credentials. This must match the SAML assertion that was+-- issued to IAM. This must be Base64 encoded.+assumeDecoratedRoleWithSAML_sAMLAssertion :: Lens.Lens' AssumeDecoratedRoleWithSAML Prelude.Text+assumeDecoratedRoleWithSAML_sAMLAssertion = Lens.lens (\AssumeDecoratedRoleWithSAML' {sAMLAssertion} -> sAMLAssertion) (\s@AssumeDecoratedRoleWithSAML' {} a -> s {sAMLAssertion = a} :: AssumeDecoratedRoleWithSAML)++-- | The role that represents an IAM principal whose scope down policy allows+-- it to call credential vending APIs such as+-- @GetTemporaryTableCredentials@. The caller must also have iam:PassRole+-- permission on this role.+assumeDecoratedRoleWithSAML_roleArn :: Lens.Lens' AssumeDecoratedRoleWithSAML Prelude.Text+assumeDecoratedRoleWithSAML_roleArn = Lens.lens (\AssumeDecoratedRoleWithSAML' {roleArn} -> roleArn) (\s@AssumeDecoratedRoleWithSAML' {} a -> s {roleArn = a} :: AssumeDecoratedRoleWithSAML)++-- | The Amazon Resource Name (ARN) of the SAML provider in IAM that+-- describes the IdP.+assumeDecoratedRoleWithSAML_principalArn :: Lens.Lens' AssumeDecoratedRoleWithSAML Prelude.Text+assumeDecoratedRoleWithSAML_principalArn = Lens.lens (\AssumeDecoratedRoleWithSAML' {principalArn} -> principalArn) (\s@AssumeDecoratedRoleWithSAML' {} a -> s {principalArn = a} :: AssumeDecoratedRoleWithSAML)++instance Core.AWSRequest AssumeDecoratedRoleWithSAML where+ type+ AWSResponse AssumeDecoratedRoleWithSAML =+ AssumeDecoratedRoleWithSAMLResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ AssumeDecoratedRoleWithSAMLResponse'+ Prelude.<$> (x Data..?> "AccessKeyId")+ Prelude.<*> (x Data..?> "Expiration")+ Prelude.<*> (x Data..?> "SecretAccessKey")+ Prelude.<*> (x Data..?> "SessionToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable AssumeDecoratedRoleWithSAML where+ hashWithSalt _salt AssumeDecoratedRoleWithSAML' {..} =+ _salt+ `Prelude.hashWithSalt` durationSeconds+ `Prelude.hashWithSalt` sAMLAssertion+ `Prelude.hashWithSalt` roleArn+ `Prelude.hashWithSalt` principalArn++instance Prelude.NFData AssumeDecoratedRoleWithSAML where+ rnf AssumeDecoratedRoleWithSAML' {..} =+ Prelude.rnf durationSeconds+ `Prelude.seq` Prelude.rnf sAMLAssertion+ `Prelude.seq` Prelude.rnf roleArn+ `Prelude.seq` Prelude.rnf principalArn++instance Data.ToHeaders AssumeDecoratedRoleWithSAML where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON AssumeDecoratedRoleWithSAML where+ toJSON AssumeDecoratedRoleWithSAML' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DurationSeconds" Data..=)+ Prelude.<$> durationSeconds,+ Prelude.Just ("SAMLAssertion" Data..= sAMLAssertion),+ Prelude.Just ("RoleArn" Data..= roleArn),+ Prelude.Just ("PrincipalArn" Data..= principalArn)+ ]+ )++instance Data.ToPath AssumeDecoratedRoleWithSAML where+ toPath = Prelude.const "/AssumeDecoratedRoleWithSAML"++instance Data.ToQuery AssumeDecoratedRoleWithSAML where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAssumeDecoratedRoleWithSAMLResponse' smart constructor.+data AssumeDecoratedRoleWithSAMLResponse = AssumeDecoratedRoleWithSAMLResponse'+ { -- | The access key ID for the temporary credentials. (The access key+ -- consists of an access key ID and a secret key).+ accessKeyId :: Prelude.Maybe Prelude.Text,+ -- | The date and time when the temporary credentials expire.+ expiration :: Prelude.Maybe Data.POSIX,+ -- | The secret key for the temporary credentials. (The access key consists+ -- of an access key ID and a secret key).+ secretAccessKey :: Prelude.Maybe Prelude.Text,+ -- | The session token for the temporary credentials.+ sessionToken :: 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 'AssumeDecoratedRoleWithSAMLResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'assumeDecoratedRoleWithSAMLResponse_accessKeyId' - The access key ID for the temporary credentials. (The access key+-- consists of an access key ID and a secret key).+--+-- 'expiration', 'assumeDecoratedRoleWithSAMLResponse_expiration' - The date and time when the temporary credentials expire.+--+-- 'secretAccessKey', 'assumeDecoratedRoleWithSAMLResponse_secretAccessKey' - The secret key for the temporary credentials. (The access key consists+-- of an access key ID and a secret key).+--+-- 'sessionToken', 'assumeDecoratedRoleWithSAMLResponse_sessionToken' - The session token for the temporary credentials.+--+-- 'httpStatus', 'assumeDecoratedRoleWithSAMLResponse_httpStatus' - The response's http status code.+newAssumeDecoratedRoleWithSAMLResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ AssumeDecoratedRoleWithSAMLResponse+newAssumeDecoratedRoleWithSAMLResponse pHttpStatus_ =+ AssumeDecoratedRoleWithSAMLResponse'+ { accessKeyId =+ Prelude.Nothing,+ expiration = Prelude.Nothing,+ secretAccessKey = Prelude.Nothing,+ sessionToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The access key ID for the temporary credentials. (The access key+-- consists of an access key ID and a secret key).+assumeDecoratedRoleWithSAMLResponse_accessKeyId :: Lens.Lens' AssumeDecoratedRoleWithSAMLResponse (Prelude.Maybe Prelude.Text)+assumeDecoratedRoleWithSAMLResponse_accessKeyId = Lens.lens (\AssumeDecoratedRoleWithSAMLResponse' {accessKeyId} -> accessKeyId) (\s@AssumeDecoratedRoleWithSAMLResponse' {} a -> s {accessKeyId = a} :: AssumeDecoratedRoleWithSAMLResponse)++-- | The date and time when the temporary credentials expire.+assumeDecoratedRoleWithSAMLResponse_expiration :: Lens.Lens' AssumeDecoratedRoleWithSAMLResponse (Prelude.Maybe Prelude.UTCTime)+assumeDecoratedRoleWithSAMLResponse_expiration = Lens.lens (\AssumeDecoratedRoleWithSAMLResponse' {expiration} -> expiration) (\s@AssumeDecoratedRoleWithSAMLResponse' {} a -> s {expiration = a} :: AssumeDecoratedRoleWithSAMLResponse) Prelude.. Lens.mapping Data._Time++-- | The secret key for the temporary credentials. (The access key consists+-- of an access key ID and a secret key).+assumeDecoratedRoleWithSAMLResponse_secretAccessKey :: Lens.Lens' AssumeDecoratedRoleWithSAMLResponse (Prelude.Maybe Prelude.Text)+assumeDecoratedRoleWithSAMLResponse_secretAccessKey = Lens.lens (\AssumeDecoratedRoleWithSAMLResponse' {secretAccessKey} -> secretAccessKey) (\s@AssumeDecoratedRoleWithSAMLResponse' {} a -> s {secretAccessKey = a} :: AssumeDecoratedRoleWithSAMLResponse)++-- | The session token for the temporary credentials.+assumeDecoratedRoleWithSAMLResponse_sessionToken :: Lens.Lens' AssumeDecoratedRoleWithSAMLResponse (Prelude.Maybe Prelude.Text)+assumeDecoratedRoleWithSAMLResponse_sessionToken = Lens.lens (\AssumeDecoratedRoleWithSAMLResponse' {sessionToken} -> sessionToken) (\s@AssumeDecoratedRoleWithSAMLResponse' {} a -> s {sessionToken = a} :: AssumeDecoratedRoleWithSAMLResponse)++-- | The response's http status code.+assumeDecoratedRoleWithSAMLResponse_httpStatus :: Lens.Lens' AssumeDecoratedRoleWithSAMLResponse Prelude.Int+assumeDecoratedRoleWithSAMLResponse_httpStatus = Lens.lens (\AssumeDecoratedRoleWithSAMLResponse' {httpStatus} -> httpStatus) (\s@AssumeDecoratedRoleWithSAMLResponse' {} a -> s {httpStatus = a} :: AssumeDecoratedRoleWithSAMLResponse)++instance+ Prelude.NFData+ AssumeDecoratedRoleWithSAMLResponse+ where+ rnf AssumeDecoratedRoleWithSAMLResponse' {..} =+ Prelude.rnf accessKeyId+ `Prelude.seq` Prelude.rnf expiration+ `Prelude.seq` Prelude.rnf secretAccessKey+ `Prelude.seq` Prelude.rnf sessionToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/BatchGrantPermissions.hs view
@@ -0,0 +1,192 @@+{-# 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.LakeFormation.BatchGrantPermissions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Batch operation to grant permissions to the principal.+module Amazonka.LakeFormation.BatchGrantPermissions+ ( -- * Creating a Request+ BatchGrantPermissions (..),+ newBatchGrantPermissions,++ -- * Request Lenses+ batchGrantPermissions_catalogId,+ batchGrantPermissions_entries,++ -- * Destructuring the Response+ BatchGrantPermissionsResponse (..),+ newBatchGrantPermissionsResponse,++ -- * Response Lenses+ batchGrantPermissionsResponse_failures,+ batchGrantPermissionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchGrantPermissions' smart constructor.+data BatchGrantPermissions = BatchGrantPermissions'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | A list of up to 20 entries for resource permissions to be granted by+ -- batch operation to the principal.+ entries :: [BatchPermissionsRequestEntry]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGrantPermissions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'batchGrantPermissions_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'entries', 'batchGrantPermissions_entries' - A list of up to 20 entries for resource permissions to be granted by+-- batch operation to the principal.+newBatchGrantPermissions ::+ BatchGrantPermissions+newBatchGrantPermissions =+ BatchGrantPermissions'+ { catalogId = Prelude.Nothing,+ entries = Prelude.mempty+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+batchGrantPermissions_catalogId :: Lens.Lens' BatchGrantPermissions (Prelude.Maybe Prelude.Text)+batchGrantPermissions_catalogId = Lens.lens (\BatchGrantPermissions' {catalogId} -> catalogId) (\s@BatchGrantPermissions' {} a -> s {catalogId = a} :: BatchGrantPermissions)++-- | A list of up to 20 entries for resource permissions to be granted by+-- batch operation to the principal.+batchGrantPermissions_entries :: Lens.Lens' BatchGrantPermissions [BatchPermissionsRequestEntry]+batchGrantPermissions_entries = Lens.lens (\BatchGrantPermissions' {entries} -> entries) (\s@BatchGrantPermissions' {} a -> s {entries = a} :: BatchGrantPermissions) Prelude.. Lens.coerced++instance Core.AWSRequest BatchGrantPermissions where+ type+ AWSResponse BatchGrantPermissions =+ BatchGrantPermissionsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ BatchGrantPermissionsResponse'+ Prelude.<$> (x Data..?> "Failures" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable BatchGrantPermissions where+ hashWithSalt _salt BatchGrantPermissions' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` entries++instance Prelude.NFData BatchGrantPermissions where+ rnf BatchGrantPermissions' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf entries++instance Data.ToHeaders BatchGrantPermissions where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON BatchGrantPermissions where+ toJSON BatchGrantPermissions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ Prelude.Just ("Entries" Data..= entries)+ ]+ )++instance Data.ToPath BatchGrantPermissions where+ toPath = Prelude.const "/BatchGrantPermissions"++instance Data.ToQuery BatchGrantPermissions where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchGrantPermissionsResponse' smart constructor.+data BatchGrantPermissionsResponse = BatchGrantPermissionsResponse'+ { -- | A list of failures to grant permissions to the resources.+ failures :: Prelude.Maybe [BatchPermissionsFailureEntry],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGrantPermissionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failures', 'batchGrantPermissionsResponse_failures' - A list of failures to grant permissions to the resources.+--+-- 'httpStatus', 'batchGrantPermissionsResponse_httpStatus' - The response's http status code.+newBatchGrantPermissionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ BatchGrantPermissionsResponse+newBatchGrantPermissionsResponse pHttpStatus_ =+ BatchGrantPermissionsResponse'+ { failures =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of failures to grant permissions to the resources.+batchGrantPermissionsResponse_failures :: Lens.Lens' BatchGrantPermissionsResponse (Prelude.Maybe [BatchPermissionsFailureEntry])+batchGrantPermissionsResponse_failures = Lens.lens (\BatchGrantPermissionsResponse' {failures} -> failures) (\s@BatchGrantPermissionsResponse' {} a -> s {failures = a} :: BatchGrantPermissionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchGrantPermissionsResponse_httpStatus :: Lens.Lens' BatchGrantPermissionsResponse Prelude.Int+batchGrantPermissionsResponse_httpStatus = Lens.lens (\BatchGrantPermissionsResponse' {httpStatus} -> httpStatus) (\s@BatchGrantPermissionsResponse' {} a -> s {httpStatus = a} :: BatchGrantPermissionsResponse)++instance Prelude.NFData BatchGrantPermissionsResponse where+ rnf BatchGrantPermissionsResponse' {..} =+ Prelude.rnf failures+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/BatchRevokePermissions.hs view
@@ -0,0 +1,196 @@+{-# 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.LakeFormation.BatchRevokePermissions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Batch operation to revoke permissions from the principal.+module Amazonka.LakeFormation.BatchRevokePermissions+ ( -- * Creating a Request+ BatchRevokePermissions (..),+ newBatchRevokePermissions,++ -- * Request Lenses+ batchRevokePermissions_catalogId,+ batchRevokePermissions_entries,++ -- * Destructuring the Response+ BatchRevokePermissionsResponse (..),+ newBatchRevokePermissionsResponse,++ -- * Response Lenses+ batchRevokePermissionsResponse_failures,+ batchRevokePermissionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchRevokePermissions' smart constructor.+data BatchRevokePermissions = BatchRevokePermissions'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | A list of up to 20 entries for resource permissions to be revoked by+ -- batch operation to the principal.+ entries :: [BatchPermissionsRequestEntry]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchRevokePermissions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'batchRevokePermissions_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'entries', 'batchRevokePermissions_entries' - A list of up to 20 entries for resource permissions to be revoked by+-- batch operation to the principal.+newBatchRevokePermissions ::+ BatchRevokePermissions+newBatchRevokePermissions =+ BatchRevokePermissions'+ { catalogId =+ Prelude.Nothing,+ entries = Prelude.mempty+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+batchRevokePermissions_catalogId :: Lens.Lens' BatchRevokePermissions (Prelude.Maybe Prelude.Text)+batchRevokePermissions_catalogId = Lens.lens (\BatchRevokePermissions' {catalogId} -> catalogId) (\s@BatchRevokePermissions' {} a -> s {catalogId = a} :: BatchRevokePermissions)++-- | A list of up to 20 entries for resource permissions to be revoked by+-- batch operation to the principal.+batchRevokePermissions_entries :: Lens.Lens' BatchRevokePermissions [BatchPermissionsRequestEntry]+batchRevokePermissions_entries = Lens.lens (\BatchRevokePermissions' {entries} -> entries) (\s@BatchRevokePermissions' {} a -> s {entries = a} :: BatchRevokePermissions) Prelude.. Lens.coerced++instance Core.AWSRequest BatchRevokePermissions where+ type+ AWSResponse BatchRevokePermissions =+ BatchRevokePermissionsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ BatchRevokePermissionsResponse'+ Prelude.<$> (x Data..?> "Failures" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable BatchRevokePermissions where+ hashWithSalt _salt BatchRevokePermissions' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` entries++instance Prelude.NFData BatchRevokePermissions where+ rnf BatchRevokePermissions' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf entries++instance Data.ToHeaders BatchRevokePermissions where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON BatchRevokePermissions where+ toJSON BatchRevokePermissions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ Prelude.Just ("Entries" Data..= entries)+ ]+ )++instance Data.ToPath BatchRevokePermissions where+ toPath = Prelude.const "/BatchRevokePermissions"++instance Data.ToQuery BatchRevokePermissions where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchRevokePermissionsResponse' smart constructor.+data BatchRevokePermissionsResponse = BatchRevokePermissionsResponse'+ { -- | A list of failures to revoke permissions to the resources.+ failures :: Prelude.Maybe [BatchPermissionsFailureEntry],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchRevokePermissionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failures', 'batchRevokePermissionsResponse_failures' - A list of failures to revoke permissions to the resources.+--+-- 'httpStatus', 'batchRevokePermissionsResponse_httpStatus' - The response's http status code.+newBatchRevokePermissionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ BatchRevokePermissionsResponse+newBatchRevokePermissionsResponse pHttpStatus_ =+ BatchRevokePermissionsResponse'+ { failures =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of failures to revoke permissions to the resources.+batchRevokePermissionsResponse_failures :: Lens.Lens' BatchRevokePermissionsResponse (Prelude.Maybe [BatchPermissionsFailureEntry])+batchRevokePermissionsResponse_failures = Lens.lens (\BatchRevokePermissionsResponse' {failures} -> failures) (\s@BatchRevokePermissionsResponse' {} a -> s {failures = a} :: BatchRevokePermissionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchRevokePermissionsResponse_httpStatus :: Lens.Lens' BatchRevokePermissionsResponse Prelude.Int+batchRevokePermissionsResponse_httpStatus = Lens.lens (\BatchRevokePermissionsResponse' {httpStatus} -> httpStatus) (\s@BatchRevokePermissionsResponse' {} a -> s {httpStatus = a} :: BatchRevokePermissionsResponse)++instance+ Prelude.NFData+ BatchRevokePermissionsResponse+ where+ rnf BatchRevokePermissionsResponse' {..} =+ Prelude.rnf failures+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/CancelTransaction.hs view
@@ -0,0 +1,156 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.CancelTransaction+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Attempts to cancel the specified transaction. Returns an exception if+-- the transaction was previously committed.+module Amazonka.LakeFormation.CancelTransaction+ ( -- * Creating a Request+ CancelTransaction (..),+ newCancelTransaction,++ -- * Request Lenses+ cancelTransaction_transactionId,++ -- * Destructuring the Response+ CancelTransactionResponse (..),+ newCancelTransactionResponse,++ -- * Response Lenses+ cancelTransactionResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCancelTransaction' smart constructor.+data CancelTransaction = CancelTransaction'+ { -- | The transaction to cancel.+ transactionId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelTransaction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'transactionId', 'cancelTransaction_transactionId' - The transaction to cancel.+newCancelTransaction ::+ -- | 'transactionId'+ Prelude.Text ->+ CancelTransaction+newCancelTransaction pTransactionId_ =+ CancelTransaction' {transactionId = pTransactionId_}++-- | The transaction to cancel.+cancelTransaction_transactionId :: Lens.Lens' CancelTransaction Prelude.Text+cancelTransaction_transactionId = Lens.lens (\CancelTransaction' {transactionId} -> transactionId) (\s@CancelTransaction' {} a -> s {transactionId = a} :: CancelTransaction)++instance Core.AWSRequest CancelTransaction where+ type+ AWSResponse CancelTransaction =+ CancelTransactionResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ CancelTransactionResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CancelTransaction where+ hashWithSalt _salt CancelTransaction' {..} =+ _salt `Prelude.hashWithSalt` transactionId++instance Prelude.NFData CancelTransaction where+ rnf CancelTransaction' {..} =+ Prelude.rnf transactionId++instance Data.ToHeaders CancelTransaction where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CancelTransaction where+ toJSON CancelTransaction' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("TransactionId" Data..= transactionId)+ ]+ )++instance Data.ToPath CancelTransaction where+ toPath = Prelude.const "/CancelTransaction"++instance Data.ToQuery CancelTransaction where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCancelTransactionResponse' smart constructor.+data CancelTransactionResponse = CancelTransactionResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelTransactionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'cancelTransactionResponse_httpStatus' - The response's http status code.+newCancelTransactionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CancelTransactionResponse+newCancelTransactionResponse pHttpStatus_ =+ CancelTransactionResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+cancelTransactionResponse_httpStatus :: Lens.Lens' CancelTransactionResponse Prelude.Int+cancelTransactionResponse_httpStatus = Lens.lens (\CancelTransactionResponse' {httpStatus} -> httpStatus) (\s@CancelTransactionResponse' {} a -> s {httpStatus = a} :: CancelTransactionResponse)++instance Prelude.NFData CancelTransactionResponse where+ rnf CancelTransactionResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/CommitTransaction.hs view
@@ -0,0 +1,169 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.CommitTransaction+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Attempts to commit the specified transaction. Returns an exception if+-- the transaction was previously aborted. This API action is idempotent if+-- called multiple times for the same transaction.+module Amazonka.LakeFormation.CommitTransaction+ ( -- * Creating a Request+ CommitTransaction (..),+ newCommitTransaction,++ -- * Request Lenses+ commitTransaction_transactionId,++ -- * Destructuring the Response+ CommitTransactionResponse (..),+ newCommitTransactionResponse,++ -- * Response Lenses+ commitTransactionResponse_transactionStatus,+ commitTransactionResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCommitTransaction' smart constructor.+data CommitTransaction = CommitTransaction'+ { -- | The transaction to commit.+ transactionId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CommitTransaction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'transactionId', 'commitTransaction_transactionId' - The transaction to commit.+newCommitTransaction ::+ -- | 'transactionId'+ Prelude.Text ->+ CommitTransaction+newCommitTransaction pTransactionId_ =+ CommitTransaction' {transactionId = pTransactionId_}++-- | The transaction to commit.+commitTransaction_transactionId :: Lens.Lens' CommitTransaction Prelude.Text+commitTransaction_transactionId = Lens.lens (\CommitTransaction' {transactionId} -> transactionId) (\s@CommitTransaction' {} a -> s {transactionId = a} :: CommitTransaction)++instance Core.AWSRequest CommitTransaction where+ type+ AWSResponse CommitTransaction =+ CommitTransactionResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CommitTransactionResponse'+ Prelude.<$> (x Data..?> "TransactionStatus")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CommitTransaction where+ hashWithSalt _salt CommitTransaction' {..} =+ _salt `Prelude.hashWithSalt` transactionId++instance Prelude.NFData CommitTransaction where+ rnf CommitTransaction' {..} =+ Prelude.rnf transactionId++instance Data.ToHeaders CommitTransaction where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CommitTransaction where+ toJSON CommitTransaction' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("TransactionId" Data..= transactionId)+ ]+ )++instance Data.ToPath CommitTransaction where+ toPath = Prelude.const "/CommitTransaction"++instance Data.ToQuery CommitTransaction where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCommitTransactionResponse' smart constructor.+data CommitTransactionResponse = CommitTransactionResponse'+ { -- | The status of the transaction.+ transactionStatus :: Prelude.Maybe TransactionStatus,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CommitTransactionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'transactionStatus', 'commitTransactionResponse_transactionStatus' - The status of the transaction.+--+-- 'httpStatus', 'commitTransactionResponse_httpStatus' - The response's http status code.+newCommitTransactionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CommitTransactionResponse+newCommitTransactionResponse pHttpStatus_ =+ CommitTransactionResponse'+ { transactionStatus =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The status of the transaction.+commitTransactionResponse_transactionStatus :: Lens.Lens' CommitTransactionResponse (Prelude.Maybe TransactionStatus)+commitTransactionResponse_transactionStatus = Lens.lens (\CommitTransactionResponse' {transactionStatus} -> transactionStatus) (\s@CommitTransactionResponse' {} a -> s {transactionStatus = a} :: CommitTransactionResponse)++-- | The response's http status code.+commitTransactionResponse_httpStatus :: Lens.Lens' CommitTransactionResponse Prelude.Int+commitTransactionResponse_httpStatus = Lens.lens (\CommitTransactionResponse' {httpStatus} -> httpStatus) (\s@CommitTransactionResponse' {} a -> s {httpStatus = a} :: CommitTransactionResponse)++instance Prelude.NFData CommitTransactionResponse where+ rnf CommitTransactionResponse' {..} =+ Prelude.rnf transactionStatus+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/CreateDataCellsFilter.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.CreateDataCellsFilter+-- 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 data cell filter to allow one to grant access to certain+-- columns on certain rows.+module Amazonka.LakeFormation.CreateDataCellsFilter+ ( -- * Creating a Request+ CreateDataCellsFilter (..),+ newCreateDataCellsFilter,++ -- * Request Lenses+ createDataCellsFilter_tableData,++ -- * Destructuring the Response+ CreateDataCellsFilterResponse (..),+ newCreateDataCellsFilterResponse,++ -- * Response Lenses+ createDataCellsFilterResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDataCellsFilter' smart constructor.+data CreateDataCellsFilter = CreateDataCellsFilter'+ { -- | A @DataCellsFilter@ structure containing information about the data+ -- cells filter.+ tableData :: DataCellsFilter+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDataCellsFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tableData', 'createDataCellsFilter_tableData' - A @DataCellsFilter@ structure containing information about the data+-- cells filter.+newCreateDataCellsFilter ::+ -- | 'tableData'+ DataCellsFilter ->+ CreateDataCellsFilter+newCreateDataCellsFilter pTableData_ =+ CreateDataCellsFilter' {tableData = pTableData_}++-- | A @DataCellsFilter@ structure containing information about the data+-- cells filter.+createDataCellsFilter_tableData :: Lens.Lens' CreateDataCellsFilter DataCellsFilter+createDataCellsFilter_tableData = Lens.lens (\CreateDataCellsFilter' {tableData} -> tableData) (\s@CreateDataCellsFilter' {} a -> s {tableData = a} :: CreateDataCellsFilter)++instance Core.AWSRequest CreateDataCellsFilter where+ type+ AWSResponse CreateDataCellsFilter =+ CreateDataCellsFilterResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ CreateDataCellsFilterResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateDataCellsFilter where+ hashWithSalt _salt CreateDataCellsFilter' {..} =+ _salt `Prelude.hashWithSalt` tableData++instance Prelude.NFData CreateDataCellsFilter where+ rnf CreateDataCellsFilter' {..} =+ Prelude.rnf tableData++instance Data.ToHeaders CreateDataCellsFilter where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateDataCellsFilter where+ toJSON CreateDataCellsFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("TableData" Data..= tableData)]+ )++instance Data.ToPath CreateDataCellsFilter where+ toPath = Prelude.const "/CreateDataCellsFilter"++instance Data.ToQuery CreateDataCellsFilter where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDataCellsFilterResponse' smart constructor.+data CreateDataCellsFilterResponse = CreateDataCellsFilterResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDataCellsFilterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'createDataCellsFilterResponse_httpStatus' - The response's http status code.+newCreateDataCellsFilterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateDataCellsFilterResponse+newCreateDataCellsFilterResponse pHttpStatus_ =+ CreateDataCellsFilterResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+createDataCellsFilterResponse_httpStatus :: Lens.Lens' CreateDataCellsFilterResponse Prelude.Int+createDataCellsFilterResponse_httpStatus = Lens.lens (\CreateDataCellsFilterResponse' {httpStatus} -> httpStatus) (\s@CreateDataCellsFilterResponse' {} a -> s {httpStatus = a} :: CreateDataCellsFilterResponse)++instance Prelude.NFData CreateDataCellsFilterResponse where+ rnf CreateDataCellsFilterResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/CreateLFTag.hs view
@@ -0,0 +1,188 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.CreateLFTag+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an LF-tag with the specified name and values.+module Amazonka.LakeFormation.CreateLFTag+ ( -- * Creating a Request+ CreateLFTag (..),+ newCreateLFTag,++ -- * Request Lenses+ createLFTag_catalogId,+ createLFTag_tagKey,+ createLFTag_tagValues,++ -- * Destructuring the Response+ CreateLFTagResponse (..),+ newCreateLFTagResponse,++ -- * Response Lenses+ createLFTagResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateLFTag' smart constructor.+data CreateLFTag = CreateLFTag'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The key-name for the LF-tag.+ tagKey :: Prelude.Text,+ -- | A list of possible values an attribute can take.+ tagValues :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLFTag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'createLFTag_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'tagKey', 'createLFTag_tagKey' - The key-name for the LF-tag.+--+-- 'tagValues', 'createLFTag_tagValues' - A list of possible values an attribute can take.+newCreateLFTag ::+ -- | 'tagKey'+ Prelude.Text ->+ -- | 'tagValues'+ Prelude.NonEmpty Prelude.Text ->+ CreateLFTag+newCreateLFTag pTagKey_ pTagValues_ =+ CreateLFTag'+ { catalogId = Prelude.Nothing,+ tagKey = pTagKey_,+ tagValues = Lens.coerced Lens.# pTagValues_+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+createLFTag_catalogId :: Lens.Lens' CreateLFTag (Prelude.Maybe Prelude.Text)+createLFTag_catalogId = Lens.lens (\CreateLFTag' {catalogId} -> catalogId) (\s@CreateLFTag' {} a -> s {catalogId = a} :: CreateLFTag)++-- | The key-name for the LF-tag.+createLFTag_tagKey :: Lens.Lens' CreateLFTag Prelude.Text+createLFTag_tagKey = Lens.lens (\CreateLFTag' {tagKey} -> tagKey) (\s@CreateLFTag' {} a -> s {tagKey = a} :: CreateLFTag)++-- | A list of possible values an attribute can take.+createLFTag_tagValues :: Lens.Lens' CreateLFTag (Prelude.NonEmpty Prelude.Text)+createLFTag_tagValues = Lens.lens (\CreateLFTag' {tagValues} -> tagValues) (\s@CreateLFTag' {} a -> s {tagValues = a} :: CreateLFTag) Prelude.. Lens.coerced++instance Core.AWSRequest CreateLFTag where+ type AWSResponse CreateLFTag = CreateLFTagResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ CreateLFTagResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateLFTag where+ hashWithSalt _salt CreateLFTag' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` tagKey+ `Prelude.hashWithSalt` tagValues++instance Prelude.NFData CreateLFTag where+ rnf CreateLFTag' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf tagKey+ `Prelude.seq` Prelude.rnf tagValues++instance Data.ToHeaders CreateLFTag where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateLFTag where+ toJSON CreateLFTag' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ Prelude.Just ("TagKey" Data..= tagKey),+ Prelude.Just ("TagValues" Data..= tagValues)+ ]+ )++instance Data.ToPath CreateLFTag where+ toPath = Prelude.const "/CreateLFTag"++instance Data.ToQuery CreateLFTag where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateLFTagResponse' smart constructor.+data CreateLFTagResponse = CreateLFTagResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLFTagResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'createLFTagResponse_httpStatus' - The response's http status code.+newCreateLFTagResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateLFTagResponse+newCreateLFTagResponse pHttpStatus_ =+ CreateLFTagResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+createLFTagResponse_httpStatus :: Lens.Lens' CreateLFTagResponse Prelude.Int+createLFTagResponse_httpStatus = Lens.lens (\CreateLFTagResponse' {httpStatus} -> httpStatus) (\s@CreateLFTagResponse' {} a -> s {httpStatus = a} :: CreateLFTagResponse)++instance Prelude.NFData CreateLFTagResponse where+ rnf CreateLFTagResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/DeleteDataCellsFilter.hs view
@@ -0,0 +1,196 @@+{-# 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.LakeFormation.DeleteDataCellsFilter+-- 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 data cell filter.+module Amazonka.LakeFormation.DeleteDataCellsFilter+ ( -- * Creating a Request+ DeleteDataCellsFilter (..),+ newDeleteDataCellsFilter,++ -- * Request Lenses+ deleteDataCellsFilter_databaseName,+ deleteDataCellsFilter_name,+ deleteDataCellsFilter_tableCatalogId,+ deleteDataCellsFilter_tableName,++ -- * Destructuring the Response+ DeleteDataCellsFilterResponse (..),+ newDeleteDataCellsFilterResponse,++ -- * Response Lenses+ deleteDataCellsFilterResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteDataCellsFilter' smart constructor.+data DeleteDataCellsFilter = DeleteDataCellsFilter'+ { -- | A database in the Glue Data Catalog.+ databaseName :: Prelude.Maybe Prelude.Text,+ -- | The name given by the user to the data filter cell.+ name :: Prelude.Maybe Prelude.Text,+ -- | The ID of the catalog to which the table belongs.+ tableCatalogId :: Prelude.Maybe Prelude.Text,+ -- | A table in the database.+ tableName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDataCellsFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'databaseName', 'deleteDataCellsFilter_databaseName' - A database in the Glue Data Catalog.+--+-- 'name', 'deleteDataCellsFilter_name' - The name given by the user to the data filter cell.+--+-- 'tableCatalogId', 'deleteDataCellsFilter_tableCatalogId' - The ID of the catalog to which the table belongs.+--+-- 'tableName', 'deleteDataCellsFilter_tableName' - A table in the database.+newDeleteDataCellsFilter ::+ DeleteDataCellsFilter+newDeleteDataCellsFilter =+ DeleteDataCellsFilter'+ { databaseName =+ Prelude.Nothing,+ name = Prelude.Nothing,+ tableCatalogId = Prelude.Nothing,+ tableName = Prelude.Nothing+ }++-- | A database in the Glue Data Catalog.+deleteDataCellsFilter_databaseName :: Lens.Lens' DeleteDataCellsFilter (Prelude.Maybe Prelude.Text)+deleteDataCellsFilter_databaseName = Lens.lens (\DeleteDataCellsFilter' {databaseName} -> databaseName) (\s@DeleteDataCellsFilter' {} a -> s {databaseName = a} :: DeleteDataCellsFilter)++-- | The name given by the user to the data filter cell.+deleteDataCellsFilter_name :: Lens.Lens' DeleteDataCellsFilter (Prelude.Maybe Prelude.Text)+deleteDataCellsFilter_name = Lens.lens (\DeleteDataCellsFilter' {name} -> name) (\s@DeleteDataCellsFilter' {} a -> s {name = a} :: DeleteDataCellsFilter)++-- | The ID of the catalog to which the table belongs.+deleteDataCellsFilter_tableCatalogId :: Lens.Lens' DeleteDataCellsFilter (Prelude.Maybe Prelude.Text)+deleteDataCellsFilter_tableCatalogId = Lens.lens (\DeleteDataCellsFilter' {tableCatalogId} -> tableCatalogId) (\s@DeleteDataCellsFilter' {} a -> s {tableCatalogId = a} :: DeleteDataCellsFilter)++-- | A table in the database.+deleteDataCellsFilter_tableName :: Lens.Lens' DeleteDataCellsFilter (Prelude.Maybe Prelude.Text)+deleteDataCellsFilter_tableName = Lens.lens (\DeleteDataCellsFilter' {tableName} -> tableName) (\s@DeleteDataCellsFilter' {} a -> s {tableName = a} :: DeleteDataCellsFilter)++instance Core.AWSRequest DeleteDataCellsFilter where+ type+ AWSResponse DeleteDataCellsFilter =+ DeleteDataCellsFilterResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteDataCellsFilterResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteDataCellsFilter where+ hashWithSalt _salt DeleteDataCellsFilter' {..} =+ _salt+ `Prelude.hashWithSalt` databaseName+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` tableCatalogId+ `Prelude.hashWithSalt` tableName++instance Prelude.NFData DeleteDataCellsFilter where+ rnf DeleteDataCellsFilter' {..} =+ Prelude.rnf databaseName+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf tableCatalogId+ `Prelude.seq` Prelude.rnf tableName++instance Data.ToHeaders DeleteDataCellsFilter where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteDataCellsFilter where+ toJSON DeleteDataCellsFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DatabaseName" Data..=) Prelude.<$> databaseName,+ ("Name" Data..=) Prelude.<$> name,+ ("TableCatalogId" Data..=)+ Prelude.<$> tableCatalogId,+ ("TableName" Data..=) Prelude.<$> tableName+ ]+ )++instance Data.ToPath DeleteDataCellsFilter where+ toPath = Prelude.const "/DeleteDataCellsFilter"++instance Data.ToQuery DeleteDataCellsFilter where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDataCellsFilterResponse' smart constructor.+data DeleteDataCellsFilterResponse = DeleteDataCellsFilterResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDataCellsFilterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteDataCellsFilterResponse_httpStatus' - The response's http status code.+newDeleteDataCellsFilterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteDataCellsFilterResponse+newDeleteDataCellsFilterResponse pHttpStatus_ =+ DeleteDataCellsFilterResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deleteDataCellsFilterResponse_httpStatus :: Lens.Lens' DeleteDataCellsFilterResponse Prelude.Int+deleteDataCellsFilterResponse_httpStatus = Lens.lens (\DeleteDataCellsFilterResponse' {httpStatus} -> httpStatus) (\s@DeleteDataCellsFilterResponse' {} a -> s {httpStatus = a} :: DeleteDataCellsFilterResponse)++instance Prelude.NFData DeleteDataCellsFilterResponse where+ rnf DeleteDataCellsFilterResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/DeleteLFTag.hs view
@@ -0,0 +1,178 @@+{-# 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.LakeFormation.DeleteLFTag+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified LF-tag given a key name. If the input parameter+-- tag key was not found, then the operation will throw an exception. When+-- you delete an LF-tag, the @LFTagPolicy@ attached to the LF-tag becomes+-- invalid. If the deleted LF-tag was still assigned to any resource, the+-- tag policy attach to the deleted LF-tag will no longer be applied to the+-- resource.+module Amazonka.LakeFormation.DeleteLFTag+ ( -- * Creating a Request+ DeleteLFTag (..),+ newDeleteLFTag,++ -- * Request Lenses+ deleteLFTag_catalogId,+ deleteLFTag_tagKey,++ -- * Destructuring the Response+ DeleteLFTagResponse (..),+ newDeleteLFTagResponse,++ -- * Response Lenses+ deleteLFTagResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteLFTag' smart constructor.+data DeleteLFTag = DeleteLFTag'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The key-name for the LF-tag to delete.+ tagKey :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteLFTag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'deleteLFTag_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'tagKey', 'deleteLFTag_tagKey' - The key-name for the LF-tag to delete.+newDeleteLFTag ::+ -- | 'tagKey'+ Prelude.Text ->+ DeleteLFTag+newDeleteLFTag pTagKey_ =+ DeleteLFTag'+ { catalogId = Prelude.Nothing,+ tagKey = pTagKey_+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+deleteLFTag_catalogId :: Lens.Lens' DeleteLFTag (Prelude.Maybe Prelude.Text)+deleteLFTag_catalogId = Lens.lens (\DeleteLFTag' {catalogId} -> catalogId) (\s@DeleteLFTag' {} a -> s {catalogId = a} :: DeleteLFTag)++-- | The key-name for the LF-tag to delete.+deleteLFTag_tagKey :: Lens.Lens' DeleteLFTag Prelude.Text+deleteLFTag_tagKey = Lens.lens (\DeleteLFTag' {tagKey} -> tagKey) (\s@DeleteLFTag' {} a -> s {tagKey = a} :: DeleteLFTag)++instance Core.AWSRequest DeleteLFTag where+ type AWSResponse DeleteLFTag = DeleteLFTagResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteLFTagResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteLFTag where+ hashWithSalt _salt DeleteLFTag' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` tagKey++instance Prelude.NFData DeleteLFTag where+ rnf DeleteLFTag' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf tagKey++instance Data.ToHeaders DeleteLFTag where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteLFTag where+ toJSON DeleteLFTag' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ Prelude.Just ("TagKey" Data..= tagKey)+ ]+ )++instance Data.ToPath DeleteLFTag where+ toPath = Prelude.const "/DeleteLFTag"++instance Data.ToQuery DeleteLFTag where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteLFTagResponse' smart constructor.+data DeleteLFTagResponse = DeleteLFTagResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteLFTagResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteLFTagResponse_httpStatus' - The response's http status code.+newDeleteLFTagResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteLFTagResponse+newDeleteLFTagResponse pHttpStatus_ =+ DeleteLFTagResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteLFTagResponse_httpStatus :: Lens.Lens' DeleteLFTagResponse Prelude.Int+deleteLFTagResponse_httpStatus = Lens.lens (\DeleteLFTagResponse' {httpStatus} -> httpStatus) (\s@DeleteLFTagResponse' {} a -> s {httpStatus = a} :: DeleteLFTagResponse)++instance Prelude.NFData DeleteLFTagResponse where+ rnf DeleteLFTagResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/DeleteObjectsOnCancel.hs view
@@ -0,0 +1,234 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.DeleteObjectsOnCancel+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- For a specific governed table, provides a list of Amazon S3 objects that+-- will be written during the current transaction and that can be+-- automatically deleted if the transaction is canceled. Without this call,+-- no Amazon S3 objects are automatically deleted when a transaction+-- cancels.+--+-- The Glue ETL library function @write_dynamic_frame.from_catalog()@+-- includes an option to automatically call @DeleteObjectsOnCancel@ before+-- writes. For more information, see+-- <https://docs.aws.amazon.com/lake-formation/latest/dg/transactions-data-operations.html#rolling-back-writes Rolling Back Amazon S3 Writes>.+module Amazonka.LakeFormation.DeleteObjectsOnCancel+ ( -- * Creating a Request+ DeleteObjectsOnCancel (..),+ newDeleteObjectsOnCancel,++ -- * Request Lenses+ deleteObjectsOnCancel_catalogId,+ deleteObjectsOnCancel_databaseName,+ deleteObjectsOnCancel_tableName,+ deleteObjectsOnCancel_transactionId,+ deleteObjectsOnCancel_objects,++ -- * Destructuring the Response+ DeleteObjectsOnCancelResponse (..),+ newDeleteObjectsOnCancelResponse,++ -- * Response Lenses+ deleteObjectsOnCancelResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteObjectsOnCancel' smart constructor.+data DeleteObjectsOnCancel = DeleteObjectsOnCancel'+ { -- | The Glue data catalog that contains the governed table. Defaults to the+ -- current account ID.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The database that contains the governed table.+ databaseName :: Prelude.Text,+ -- | The name of the governed table.+ tableName :: Prelude.Text,+ -- | ID of the transaction that the writes occur in.+ transactionId :: Prelude.Text,+ -- | A list of VirtualObject structures, which indicates the Amazon S3+ -- objects to be deleted if the transaction cancels.+ objects :: Prelude.NonEmpty VirtualObject+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteObjectsOnCancel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'deleteObjectsOnCancel_catalogId' - The Glue data catalog that contains the governed table. Defaults to the+-- current account ID.+--+-- 'databaseName', 'deleteObjectsOnCancel_databaseName' - The database that contains the governed table.+--+-- 'tableName', 'deleteObjectsOnCancel_tableName' - The name of the governed table.+--+-- 'transactionId', 'deleteObjectsOnCancel_transactionId' - ID of the transaction that the writes occur in.+--+-- 'objects', 'deleteObjectsOnCancel_objects' - A list of VirtualObject structures, which indicates the Amazon S3+-- objects to be deleted if the transaction cancels.+newDeleteObjectsOnCancel ::+ -- | 'databaseName'+ Prelude.Text ->+ -- | 'tableName'+ Prelude.Text ->+ -- | 'transactionId'+ Prelude.Text ->+ -- | 'objects'+ Prelude.NonEmpty VirtualObject ->+ DeleteObjectsOnCancel+newDeleteObjectsOnCancel+ pDatabaseName_+ pTableName_+ pTransactionId_+ pObjects_ =+ DeleteObjectsOnCancel'+ { catalogId = Prelude.Nothing,+ databaseName = pDatabaseName_,+ tableName = pTableName_,+ transactionId = pTransactionId_,+ objects = Lens.coerced Lens.# pObjects_+ }++-- | The Glue data catalog that contains the governed table. Defaults to the+-- current account ID.+deleteObjectsOnCancel_catalogId :: Lens.Lens' DeleteObjectsOnCancel (Prelude.Maybe Prelude.Text)+deleteObjectsOnCancel_catalogId = Lens.lens (\DeleteObjectsOnCancel' {catalogId} -> catalogId) (\s@DeleteObjectsOnCancel' {} a -> s {catalogId = a} :: DeleteObjectsOnCancel)++-- | The database that contains the governed table.+deleteObjectsOnCancel_databaseName :: Lens.Lens' DeleteObjectsOnCancel Prelude.Text+deleteObjectsOnCancel_databaseName = Lens.lens (\DeleteObjectsOnCancel' {databaseName} -> databaseName) (\s@DeleteObjectsOnCancel' {} a -> s {databaseName = a} :: DeleteObjectsOnCancel)++-- | The name of the governed table.+deleteObjectsOnCancel_tableName :: Lens.Lens' DeleteObjectsOnCancel Prelude.Text+deleteObjectsOnCancel_tableName = Lens.lens (\DeleteObjectsOnCancel' {tableName} -> tableName) (\s@DeleteObjectsOnCancel' {} a -> s {tableName = a} :: DeleteObjectsOnCancel)++-- | ID of the transaction that the writes occur in.+deleteObjectsOnCancel_transactionId :: Lens.Lens' DeleteObjectsOnCancel Prelude.Text+deleteObjectsOnCancel_transactionId = Lens.lens (\DeleteObjectsOnCancel' {transactionId} -> transactionId) (\s@DeleteObjectsOnCancel' {} a -> s {transactionId = a} :: DeleteObjectsOnCancel)++-- | A list of VirtualObject structures, which indicates the Amazon S3+-- objects to be deleted if the transaction cancels.+deleteObjectsOnCancel_objects :: Lens.Lens' DeleteObjectsOnCancel (Prelude.NonEmpty VirtualObject)+deleteObjectsOnCancel_objects = Lens.lens (\DeleteObjectsOnCancel' {objects} -> objects) (\s@DeleteObjectsOnCancel' {} a -> s {objects = a} :: DeleteObjectsOnCancel) Prelude.. Lens.coerced++instance Core.AWSRequest DeleteObjectsOnCancel where+ type+ AWSResponse DeleteObjectsOnCancel =+ DeleteObjectsOnCancelResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteObjectsOnCancelResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteObjectsOnCancel where+ hashWithSalt _salt DeleteObjectsOnCancel' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` databaseName+ `Prelude.hashWithSalt` tableName+ `Prelude.hashWithSalt` transactionId+ `Prelude.hashWithSalt` objects++instance Prelude.NFData DeleteObjectsOnCancel where+ rnf DeleteObjectsOnCancel' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf databaseName+ `Prelude.seq` Prelude.rnf tableName+ `Prelude.seq` Prelude.rnf transactionId+ `Prelude.seq` Prelude.rnf objects++instance Data.ToHeaders DeleteObjectsOnCancel where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteObjectsOnCancel where+ toJSON DeleteObjectsOnCancel' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ Prelude.Just ("DatabaseName" Data..= databaseName),+ Prelude.Just ("TableName" Data..= tableName),+ Prelude.Just ("TransactionId" Data..= transactionId),+ Prelude.Just ("Objects" Data..= objects)+ ]+ )++instance Data.ToPath DeleteObjectsOnCancel where+ toPath = Prelude.const "/DeleteObjectsOnCancel"++instance Data.ToQuery DeleteObjectsOnCancel where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteObjectsOnCancelResponse' smart constructor.+data DeleteObjectsOnCancelResponse = DeleteObjectsOnCancelResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteObjectsOnCancelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteObjectsOnCancelResponse_httpStatus' - The response's http status code.+newDeleteObjectsOnCancelResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteObjectsOnCancelResponse+newDeleteObjectsOnCancelResponse pHttpStatus_ =+ DeleteObjectsOnCancelResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deleteObjectsOnCancelResponse_httpStatus :: Lens.Lens' DeleteObjectsOnCancelResponse Prelude.Int+deleteObjectsOnCancelResponse_httpStatus = Lens.lens (\DeleteObjectsOnCancelResponse' {httpStatus} -> httpStatus) (\s@DeleteObjectsOnCancelResponse' {} a -> s {httpStatus = a} :: DeleteObjectsOnCancelResponse)++instance Prelude.NFData DeleteObjectsOnCancelResponse where+ rnf DeleteObjectsOnCancelResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/DeregisterResource.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.DeregisterResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deregisters the resource as managed by the Data Catalog.+--+-- When you deregister a path, Lake Formation removes the path from the+-- inline policy attached to your service-linked role.+module Amazonka.LakeFormation.DeregisterResource+ ( -- * Creating a Request+ DeregisterResource (..),+ newDeregisterResource,++ -- * Request Lenses+ deregisterResource_resourceArn,++ -- * Destructuring the Response+ DeregisterResourceResponse (..),+ newDeregisterResourceResponse,++ -- * Response Lenses+ deregisterResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeregisterResource' smart constructor.+data DeregisterResource = DeregisterResource'+ { -- | The Amazon Resource Name (ARN) of the resource that you want to+ -- deregister.+ resourceArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeregisterResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'deregisterResource_resourceArn' - The Amazon Resource Name (ARN) of the resource that you want to+-- deregister.+newDeregisterResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ DeregisterResource+newDeregisterResource pResourceArn_ =+ DeregisterResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) of the resource that you want to+-- deregister.+deregisterResource_resourceArn :: Lens.Lens' DeregisterResource Prelude.Text+deregisterResource_resourceArn = Lens.lens (\DeregisterResource' {resourceArn} -> resourceArn) (\s@DeregisterResource' {} a -> s {resourceArn = a} :: DeregisterResource)++instance Core.AWSRequest DeregisterResource where+ type+ AWSResponse DeregisterResource =+ DeregisterResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeregisterResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeregisterResource where+ hashWithSalt _salt DeregisterResource' {..} =+ _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData DeregisterResource where+ rnf DeregisterResource' {..} = Prelude.rnf resourceArn++instance Data.ToHeaders DeregisterResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeregisterResource where+ toJSON DeregisterResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("ResourceArn" Data..= resourceArn)]+ )++instance Data.ToPath DeregisterResource where+ toPath = Prelude.const "/DeregisterResource"++instance Data.ToQuery DeregisterResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeregisterResourceResponse' smart constructor.+data DeregisterResourceResponse = DeregisterResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeregisterResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deregisterResourceResponse_httpStatus' - The response's http status code.+newDeregisterResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeregisterResourceResponse+newDeregisterResourceResponse pHttpStatus_ =+ DeregisterResourceResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deregisterResourceResponse_httpStatus :: Lens.Lens' DeregisterResourceResponse Prelude.Int+deregisterResourceResponse_httpStatus = Lens.lens (\DeregisterResourceResponse' {httpStatus} -> httpStatus) (\s@DeregisterResourceResponse' {} a -> s {httpStatus = a} :: DeregisterResourceResponse)++instance Prelude.NFData DeregisterResourceResponse where+ rnf DeregisterResourceResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/DescribeResource.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.DescribeResource+-- 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 current data access role for the given resource registered+-- in Lake Formation.+module Amazonka.LakeFormation.DescribeResource+ ( -- * Creating a Request+ DescribeResource (..),+ newDescribeResource,++ -- * Request Lenses+ describeResource_resourceArn,++ -- * Destructuring the Response+ DescribeResourceResponse (..),+ newDescribeResourceResponse,++ -- * Response Lenses+ describeResourceResponse_resourceInfo,+ describeResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeResource' smart constructor.+data DescribeResource = DescribeResource'+ { -- | The resource ARN.+ resourceArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'describeResource_resourceArn' - The resource ARN.+newDescribeResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ DescribeResource+newDescribeResource pResourceArn_ =+ DescribeResource' {resourceArn = pResourceArn_}++-- | The resource ARN.+describeResource_resourceArn :: Lens.Lens' DescribeResource Prelude.Text+describeResource_resourceArn = Lens.lens (\DescribeResource' {resourceArn} -> resourceArn) (\s@DescribeResource' {} a -> s {resourceArn = a} :: DescribeResource)++instance Core.AWSRequest DescribeResource where+ type+ AWSResponse DescribeResource =+ DescribeResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeResourceResponse'+ Prelude.<$> (x Data..?> "ResourceInfo")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeResource where+ hashWithSalt _salt DescribeResource' {..} =+ _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData DescribeResource where+ rnf DescribeResource' {..} = Prelude.rnf resourceArn++instance Data.ToHeaders DescribeResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeResource where+ toJSON DescribeResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("ResourceArn" Data..= resourceArn)]+ )++instance Data.ToPath DescribeResource where+ toPath = Prelude.const "/DescribeResource"++instance Data.ToQuery DescribeResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeResourceResponse' smart constructor.+data DescribeResourceResponse = DescribeResourceResponse'+ { -- | A structure containing information about an Lake Formation resource.+ resourceInfo :: Prelude.Maybe ResourceInfo,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceInfo', 'describeResourceResponse_resourceInfo' - A structure containing information about an Lake Formation resource.+--+-- 'httpStatus', 'describeResourceResponse_httpStatus' - The response's http status code.+newDescribeResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeResourceResponse+newDescribeResourceResponse pHttpStatus_ =+ DescribeResourceResponse'+ { resourceInfo =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A structure containing information about an Lake Formation resource.+describeResourceResponse_resourceInfo :: Lens.Lens' DescribeResourceResponse (Prelude.Maybe ResourceInfo)+describeResourceResponse_resourceInfo = Lens.lens (\DescribeResourceResponse' {resourceInfo} -> resourceInfo) (\s@DescribeResourceResponse' {} a -> s {resourceInfo = a} :: DescribeResourceResponse)++-- | The response's http status code.+describeResourceResponse_httpStatus :: Lens.Lens' DescribeResourceResponse Prelude.Int+describeResourceResponse_httpStatus = Lens.lens (\DescribeResourceResponse' {httpStatus} -> httpStatus) (\s@DescribeResourceResponse' {} a -> s {httpStatus = a} :: DescribeResourceResponse)++instance Prelude.NFData DescribeResourceResponse where+ rnf DescribeResourceResponse' {..} =+ Prelude.rnf resourceInfo+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/DescribeTransaction.hs view
@@ -0,0 +1,173 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.DescribeTransaction+-- 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 details of a single transaction.+module Amazonka.LakeFormation.DescribeTransaction+ ( -- * Creating a Request+ DescribeTransaction (..),+ newDescribeTransaction,++ -- * Request Lenses+ describeTransaction_transactionId,++ -- * Destructuring the Response+ DescribeTransactionResponse (..),+ newDescribeTransactionResponse,++ -- * Response Lenses+ describeTransactionResponse_transactionDescription,+ describeTransactionResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeTransaction' smart constructor.+data DescribeTransaction = DescribeTransaction'+ { -- | The transaction for which to return status.+ transactionId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeTransaction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'transactionId', 'describeTransaction_transactionId' - The transaction for which to return status.+newDescribeTransaction ::+ -- | 'transactionId'+ Prelude.Text ->+ DescribeTransaction+newDescribeTransaction pTransactionId_ =+ DescribeTransaction'+ { transactionId =+ pTransactionId_+ }++-- | The transaction for which to return status.+describeTransaction_transactionId :: Lens.Lens' DescribeTransaction Prelude.Text+describeTransaction_transactionId = Lens.lens (\DescribeTransaction' {transactionId} -> transactionId) (\s@DescribeTransaction' {} a -> s {transactionId = a} :: DescribeTransaction)++instance Core.AWSRequest DescribeTransaction where+ type+ AWSResponse DescribeTransaction =+ DescribeTransactionResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeTransactionResponse'+ Prelude.<$> (x Data..?> "TransactionDescription")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeTransaction where+ hashWithSalt _salt DescribeTransaction' {..} =+ _salt `Prelude.hashWithSalt` transactionId++instance Prelude.NFData DescribeTransaction where+ rnf DescribeTransaction' {..} =+ Prelude.rnf transactionId++instance Data.ToHeaders DescribeTransaction where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeTransaction where+ toJSON DescribeTransaction' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("TransactionId" Data..= transactionId)+ ]+ )++instance Data.ToPath DescribeTransaction where+ toPath = Prelude.const "/DescribeTransaction"++instance Data.ToQuery DescribeTransaction where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeTransactionResponse' smart constructor.+data DescribeTransactionResponse = DescribeTransactionResponse'+ { -- | Returns a @TransactionDescription@ object containing information about+ -- the transaction.+ transactionDescription :: Prelude.Maybe TransactionDescription,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeTransactionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'transactionDescription', 'describeTransactionResponse_transactionDescription' - Returns a @TransactionDescription@ object containing information about+-- the transaction.+--+-- 'httpStatus', 'describeTransactionResponse_httpStatus' - The response's http status code.+newDescribeTransactionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeTransactionResponse+newDescribeTransactionResponse pHttpStatus_ =+ DescribeTransactionResponse'+ { transactionDescription =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Returns a @TransactionDescription@ object containing information about+-- the transaction.+describeTransactionResponse_transactionDescription :: Lens.Lens' DescribeTransactionResponse (Prelude.Maybe TransactionDescription)+describeTransactionResponse_transactionDescription = Lens.lens (\DescribeTransactionResponse' {transactionDescription} -> transactionDescription) (\s@DescribeTransactionResponse' {} a -> s {transactionDescription = a} :: DescribeTransactionResponse)++-- | The response's http status code.+describeTransactionResponse_httpStatus :: Lens.Lens' DescribeTransactionResponse Prelude.Int+describeTransactionResponse_httpStatus = Lens.lens (\DescribeTransactionResponse' {httpStatus} -> httpStatus) (\s@DescribeTransactionResponse' {} a -> s {httpStatus = a} :: DescribeTransactionResponse)++instance Prelude.NFData DescribeTransactionResponse where+ rnf DescribeTransactionResponse' {..} =+ Prelude.rnf transactionDescription+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/ExtendTransaction.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.ExtendTransaction+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Indicates to the service that the specified transaction is still active+-- and should not be treated as idle and aborted.+--+-- Write transactions that remain idle for a long period are automatically+-- aborted unless explicitly extended.+module Amazonka.LakeFormation.ExtendTransaction+ ( -- * Creating a Request+ ExtendTransaction (..),+ newExtendTransaction,++ -- * Request Lenses+ extendTransaction_transactionId,++ -- * Destructuring the Response+ ExtendTransactionResponse (..),+ newExtendTransactionResponse,++ -- * Response Lenses+ extendTransactionResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newExtendTransaction' smart constructor.+data ExtendTransaction = ExtendTransaction'+ { -- | The transaction to extend.+ transactionId :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExtendTransaction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'transactionId', 'extendTransaction_transactionId' - The transaction to extend.+newExtendTransaction ::+ ExtendTransaction+newExtendTransaction =+ ExtendTransaction' {transactionId = Prelude.Nothing}++-- | The transaction to extend.+extendTransaction_transactionId :: Lens.Lens' ExtendTransaction (Prelude.Maybe Prelude.Text)+extendTransaction_transactionId = Lens.lens (\ExtendTransaction' {transactionId} -> transactionId) (\s@ExtendTransaction' {} a -> s {transactionId = a} :: ExtendTransaction)++instance Core.AWSRequest ExtendTransaction where+ type+ AWSResponse ExtendTransaction =+ ExtendTransactionResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ ExtendTransactionResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ExtendTransaction where+ hashWithSalt _salt ExtendTransaction' {..} =+ _salt `Prelude.hashWithSalt` transactionId++instance Prelude.NFData ExtendTransaction where+ rnf ExtendTransaction' {..} =+ Prelude.rnf transactionId++instance Data.ToHeaders ExtendTransaction where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ExtendTransaction where+ toJSON ExtendTransaction' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("TransactionId" Data..=)+ Prelude.<$> transactionId+ ]+ )++instance Data.ToPath ExtendTransaction where+ toPath = Prelude.const "/ExtendTransaction"++instance Data.ToQuery ExtendTransaction where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newExtendTransactionResponse' smart constructor.+data ExtendTransactionResponse = ExtendTransactionResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExtendTransactionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'extendTransactionResponse_httpStatus' - The response's http status code.+newExtendTransactionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ExtendTransactionResponse+newExtendTransactionResponse pHttpStatus_ =+ ExtendTransactionResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+extendTransactionResponse_httpStatus :: Lens.Lens' ExtendTransactionResponse Prelude.Int+extendTransactionResponse_httpStatus = Lens.lens (\ExtendTransactionResponse' {httpStatus} -> httpStatus) (\s@ExtendTransactionResponse' {} a -> s {httpStatus = a} :: ExtendTransactionResponse)++instance Prelude.NFData ExtendTransactionResponse where+ rnf ExtendTransactionResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/GetDataLakeSettings.hs view
@@ -0,0 +1,175 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.GetDataLakeSettings+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of the data lake administrators of a Lake+-- Formation-managed data lake.+module Amazonka.LakeFormation.GetDataLakeSettings+ ( -- * Creating a Request+ GetDataLakeSettings (..),+ newGetDataLakeSettings,++ -- * Request Lenses+ getDataLakeSettings_catalogId,++ -- * Destructuring the Response+ GetDataLakeSettingsResponse (..),+ newGetDataLakeSettingsResponse,++ -- * Response Lenses+ getDataLakeSettingsResponse_dataLakeSettings,+ getDataLakeSettingsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetDataLakeSettings' smart constructor.+data GetDataLakeSettings = GetDataLakeSettings'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDataLakeSettings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'getDataLakeSettings_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+newGetDataLakeSettings ::+ GetDataLakeSettings+newGetDataLakeSettings =+ GetDataLakeSettings' {catalogId = Prelude.Nothing}++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+getDataLakeSettings_catalogId :: Lens.Lens' GetDataLakeSettings (Prelude.Maybe Prelude.Text)+getDataLakeSettings_catalogId = Lens.lens (\GetDataLakeSettings' {catalogId} -> catalogId) (\s@GetDataLakeSettings' {} a -> s {catalogId = a} :: GetDataLakeSettings)++instance Core.AWSRequest GetDataLakeSettings where+ type+ AWSResponse GetDataLakeSettings =+ GetDataLakeSettingsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetDataLakeSettingsResponse'+ Prelude.<$> (x Data..?> "DataLakeSettings")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetDataLakeSettings where+ hashWithSalt _salt GetDataLakeSettings' {..} =+ _salt `Prelude.hashWithSalt` catalogId++instance Prelude.NFData GetDataLakeSettings where+ rnf GetDataLakeSettings' {..} = Prelude.rnf catalogId++instance Data.ToHeaders GetDataLakeSettings where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetDataLakeSettings where+ toJSON GetDataLakeSettings' {..} =+ Data.object+ ( Prelude.catMaybes+ [("CatalogId" Data..=) Prelude.<$> catalogId]+ )++instance Data.ToPath GetDataLakeSettings where+ toPath = Prelude.const "/GetDataLakeSettings"++instance Data.ToQuery GetDataLakeSettings where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDataLakeSettingsResponse' smart constructor.+data GetDataLakeSettingsResponse = GetDataLakeSettingsResponse'+ { -- | A structure representing a list of Lake Formation principals designated+ -- as data lake administrators.+ dataLakeSettings :: Prelude.Maybe DataLakeSettings,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDataLakeSettingsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataLakeSettings', 'getDataLakeSettingsResponse_dataLakeSettings' - A structure representing a list of Lake Formation principals designated+-- as data lake administrators.+--+-- 'httpStatus', 'getDataLakeSettingsResponse_httpStatus' - The response's http status code.+newGetDataLakeSettingsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetDataLakeSettingsResponse+newGetDataLakeSettingsResponse pHttpStatus_ =+ GetDataLakeSettingsResponse'+ { dataLakeSettings =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A structure representing a list of Lake Formation principals designated+-- as data lake administrators.+getDataLakeSettingsResponse_dataLakeSettings :: Lens.Lens' GetDataLakeSettingsResponse (Prelude.Maybe DataLakeSettings)+getDataLakeSettingsResponse_dataLakeSettings = Lens.lens (\GetDataLakeSettingsResponse' {dataLakeSettings} -> dataLakeSettings) (\s@GetDataLakeSettingsResponse' {} a -> s {dataLakeSettings = a} :: GetDataLakeSettingsResponse)++-- | The response's http status code.+getDataLakeSettingsResponse_httpStatus :: Lens.Lens' GetDataLakeSettingsResponse Prelude.Int+getDataLakeSettingsResponse_httpStatus = Lens.lens (\GetDataLakeSettingsResponse' {httpStatus} -> httpStatus) (\s@GetDataLakeSettingsResponse' {} a -> s {httpStatus = a} :: GetDataLakeSettingsResponse)++instance Prelude.NFData GetDataLakeSettingsResponse where+ rnf GetDataLakeSettingsResponse' {..} =+ Prelude.rnf dataLakeSettings+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/GetEffectivePermissionsForPath.hs view
@@ -0,0 +1,264 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.GetEffectivePermissionsForPath+-- 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 Lake Formation permissions for a specified table or database+-- resource located at a path in Amazon S3.+-- @GetEffectivePermissionsForPath@ will not return databases and tables if+-- the catalog is encrypted.+module Amazonka.LakeFormation.GetEffectivePermissionsForPath+ ( -- * Creating a Request+ GetEffectivePermissionsForPath (..),+ newGetEffectivePermissionsForPath,++ -- * Request Lenses+ getEffectivePermissionsForPath_catalogId,+ getEffectivePermissionsForPath_maxResults,+ getEffectivePermissionsForPath_nextToken,+ getEffectivePermissionsForPath_resourceArn,++ -- * Destructuring the Response+ GetEffectivePermissionsForPathResponse (..),+ newGetEffectivePermissionsForPathResponse,++ -- * Response Lenses+ getEffectivePermissionsForPathResponse_nextToken,+ getEffectivePermissionsForPathResponse_permissions,+ getEffectivePermissionsForPathResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetEffectivePermissionsForPath' smart constructor.+data GetEffectivePermissionsForPath = GetEffectivePermissionsForPath'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of results to return.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A continuation token, if this is not the first call to retrieve this+ -- list.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the resource for which you want to get+ -- permissions.+ resourceArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEffectivePermissionsForPath' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'getEffectivePermissionsForPath_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'maxResults', 'getEffectivePermissionsForPath_maxResults' - The maximum number of results to return.+--+-- 'nextToken', 'getEffectivePermissionsForPath_nextToken' - A continuation token, if this is not the first call to retrieve this+-- list.+--+-- 'resourceArn', 'getEffectivePermissionsForPath_resourceArn' - The Amazon Resource Name (ARN) of the resource for which you want to get+-- permissions.+newGetEffectivePermissionsForPath ::+ -- | 'resourceArn'+ Prelude.Text ->+ GetEffectivePermissionsForPath+newGetEffectivePermissionsForPath pResourceArn_ =+ GetEffectivePermissionsForPath'+ { catalogId =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ resourceArn = pResourceArn_+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+getEffectivePermissionsForPath_catalogId :: Lens.Lens' GetEffectivePermissionsForPath (Prelude.Maybe Prelude.Text)+getEffectivePermissionsForPath_catalogId = Lens.lens (\GetEffectivePermissionsForPath' {catalogId} -> catalogId) (\s@GetEffectivePermissionsForPath' {} a -> s {catalogId = a} :: GetEffectivePermissionsForPath)++-- | The maximum number of results to return.+getEffectivePermissionsForPath_maxResults :: Lens.Lens' GetEffectivePermissionsForPath (Prelude.Maybe Prelude.Natural)+getEffectivePermissionsForPath_maxResults = Lens.lens (\GetEffectivePermissionsForPath' {maxResults} -> maxResults) (\s@GetEffectivePermissionsForPath' {} a -> s {maxResults = a} :: GetEffectivePermissionsForPath)++-- | A continuation token, if this is not the first call to retrieve this+-- list.+getEffectivePermissionsForPath_nextToken :: Lens.Lens' GetEffectivePermissionsForPath (Prelude.Maybe Prelude.Text)+getEffectivePermissionsForPath_nextToken = Lens.lens (\GetEffectivePermissionsForPath' {nextToken} -> nextToken) (\s@GetEffectivePermissionsForPath' {} a -> s {nextToken = a} :: GetEffectivePermissionsForPath)++-- | The Amazon Resource Name (ARN) of the resource for which you want to get+-- permissions.+getEffectivePermissionsForPath_resourceArn :: Lens.Lens' GetEffectivePermissionsForPath Prelude.Text+getEffectivePermissionsForPath_resourceArn = Lens.lens (\GetEffectivePermissionsForPath' {resourceArn} -> resourceArn) (\s@GetEffectivePermissionsForPath' {} a -> s {resourceArn = a} :: GetEffectivePermissionsForPath)++instance+ Core.AWSRequest+ GetEffectivePermissionsForPath+ where+ type+ AWSResponse GetEffectivePermissionsForPath =+ GetEffectivePermissionsForPathResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetEffectivePermissionsForPathResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "Permissions" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ GetEffectivePermissionsForPath+ where+ hashWithSalt+ _salt+ GetEffectivePermissionsForPath' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` resourceArn++instance+ Prelude.NFData+ GetEffectivePermissionsForPath+ where+ rnf GetEffectivePermissionsForPath' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf resourceArn++instance+ Data.ToHeaders+ GetEffectivePermissionsForPath+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetEffectivePermissionsForPath where+ toJSON GetEffectivePermissionsForPath' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("ResourceArn" Data..= resourceArn)+ ]+ )++instance Data.ToPath GetEffectivePermissionsForPath where+ toPath =+ Prelude.const "/GetEffectivePermissionsForPath"++instance Data.ToQuery GetEffectivePermissionsForPath where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetEffectivePermissionsForPathResponse' smart constructor.+data GetEffectivePermissionsForPathResponse = GetEffectivePermissionsForPathResponse'+ { -- | A continuation token, if this is not the first call to retrieve this+ -- list.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of the permissions for the specified table or database resource+ -- located at the path in Amazon S3.+ permissions :: Prelude.Maybe [PrincipalResourcePermissions],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEffectivePermissionsForPathResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getEffectivePermissionsForPathResponse_nextToken' - A continuation token, if this is not the first call to retrieve this+-- list.+--+-- 'permissions', 'getEffectivePermissionsForPathResponse_permissions' - A list of the permissions for the specified table or database resource+-- located at the path in Amazon S3.+--+-- 'httpStatus', 'getEffectivePermissionsForPathResponse_httpStatus' - The response's http status code.+newGetEffectivePermissionsForPathResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetEffectivePermissionsForPathResponse+newGetEffectivePermissionsForPathResponse+ pHttpStatus_ =+ GetEffectivePermissionsForPathResponse'+ { nextToken =+ Prelude.Nothing,+ permissions = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A continuation token, if this is not the first call to retrieve this+-- list.+getEffectivePermissionsForPathResponse_nextToken :: Lens.Lens' GetEffectivePermissionsForPathResponse (Prelude.Maybe Prelude.Text)+getEffectivePermissionsForPathResponse_nextToken = Lens.lens (\GetEffectivePermissionsForPathResponse' {nextToken} -> nextToken) (\s@GetEffectivePermissionsForPathResponse' {} a -> s {nextToken = a} :: GetEffectivePermissionsForPathResponse)++-- | A list of the permissions for the specified table or database resource+-- located at the path in Amazon S3.+getEffectivePermissionsForPathResponse_permissions :: Lens.Lens' GetEffectivePermissionsForPathResponse (Prelude.Maybe [PrincipalResourcePermissions])+getEffectivePermissionsForPathResponse_permissions = Lens.lens (\GetEffectivePermissionsForPathResponse' {permissions} -> permissions) (\s@GetEffectivePermissionsForPathResponse' {} a -> s {permissions = a} :: GetEffectivePermissionsForPathResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getEffectivePermissionsForPathResponse_httpStatus :: Lens.Lens' GetEffectivePermissionsForPathResponse Prelude.Int+getEffectivePermissionsForPathResponse_httpStatus = Lens.lens (\GetEffectivePermissionsForPathResponse' {httpStatus} -> httpStatus) (\s@GetEffectivePermissionsForPathResponse' {} a -> s {httpStatus = a} :: GetEffectivePermissionsForPathResponse)++instance+ Prelude.NFData+ GetEffectivePermissionsForPathResponse+ where+ rnf GetEffectivePermissionsForPathResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf permissions+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/GetLFTag.hs view
@@ -0,0 +1,221 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.GetLFTag+-- 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 an LF-tag definition.+module Amazonka.LakeFormation.GetLFTag+ ( -- * Creating a Request+ GetLFTag (..),+ newGetLFTag,++ -- * Request Lenses+ getLFTag_catalogId,+ getLFTag_tagKey,++ -- * Destructuring the Response+ GetLFTagResponse (..),+ newGetLFTagResponse,++ -- * Response Lenses+ getLFTagResponse_catalogId,+ getLFTagResponse_tagKey,+ getLFTagResponse_tagValues,+ getLFTagResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetLFTag' smart constructor.+data GetLFTag = GetLFTag'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The key-name for the LF-tag.+ tagKey :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLFTag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'getLFTag_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'tagKey', 'getLFTag_tagKey' - The key-name for the LF-tag.+newGetLFTag ::+ -- | 'tagKey'+ Prelude.Text ->+ GetLFTag+newGetLFTag pTagKey_ =+ GetLFTag'+ { catalogId = Prelude.Nothing,+ tagKey = pTagKey_+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+getLFTag_catalogId :: Lens.Lens' GetLFTag (Prelude.Maybe Prelude.Text)+getLFTag_catalogId = Lens.lens (\GetLFTag' {catalogId} -> catalogId) (\s@GetLFTag' {} a -> s {catalogId = a} :: GetLFTag)++-- | The key-name for the LF-tag.+getLFTag_tagKey :: Lens.Lens' GetLFTag Prelude.Text+getLFTag_tagKey = Lens.lens (\GetLFTag' {tagKey} -> tagKey) (\s@GetLFTag' {} a -> s {tagKey = a} :: GetLFTag)++instance Core.AWSRequest GetLFTag where+ type AWSResponse GetLFTag = GetLFTagResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetLFTagResponse'+ Prelude.<$> (x Data..?> "CatalogId")+ Prelude.<*> (x Data..?> "TagKey")+ Prelude.<*> (x Data..?> "TagValues")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetLFTag where+ hashWithSalt _salt GetLFTag' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` tagKey++instance Prelude.NFData GetLFTag where+ rnf GetLFTag' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf tagKey++instance Data.ToHeaders GetLFTag where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetLFTag where+ toJSON GetLFTag' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ Prelude.Just ("TagKey" Data..= tagKey)+ ]+ )++instance Data.ToPath GetLFTag where+ toPath = Prelude.const "/GetLFTag"++instance Data.ToQuery GetLFTag where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetLFTagResponse' smart constructor.+data GetLFTagResponse = GetLFTagResponse'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The key-name for the LF-tag.+ tagKey :: Prelude.Maybe Prelude.Text,+ -- | A list of possible values an attribute can take.+ tagValues :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLFTagResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'getLFTagResponse_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'tagKey', 'getLFTagResponse_tagKey' - The key-name for the LF-tag.+--+-- 'tagValues', 'getLFTagResponse_tagValues' - A list of possible values an attribute can take.+--+-- 'httpStatus', 'getLFTagResponse_httpStatus' - The response's http status code.+newGetLFTagResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetLFTagResponse+newGetLFTagResponse pHttpStatus_ =+ GetLFTagResponse'+ { catalogId = Prelude.Nothing,+ tagKey = Prelude.Nothing,+ tagValues = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+getLFTagResponse_catalogId :: Lens.Lens' GetLFTagResponse (Prelude.Maybe Prelude.Text)+getLFTagResponse_catalogId = Lens.lens (\GetLFTagResponse' {catalogId} -> catalogId) (\s@GetLFTagResponse' {} a -> s {catalogId = a} :: GetLFTagResponse)++-- | The key-name for the LF-tag.+getLFTagResponse_tagKey :: Lens.Lens' GetLFTagResponse (Prelude.Maybe Prelude.Text)+getLFTagResponse_tagKey = Lens.lens (\GetLFTagResponse' {tagKey} -> tagKey) (\s@GetLFTagResponse' {} a -> s {tagKey = a} :: GetLFTagResponse)++-- | A list of possible values an attribute can take.+getLFTagResponse_tagValues :: Lens.Lens' GetLFTagResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+getLFTagResponse_tagValues = Lens.lens (\GetLFTagResponse' {tagValues} -> tagValues) (\s@GetLFTagResponse' {} a -> s {tagValues = a} :: GetLFTagResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getLFTagResponse_httpStatus :: Lens.Lens' GetLFTagResponse Prelude.Int+getLFTagResponse_httpStatus = Lens.lens (\GetLFTagResponse' {httpStatus} -> httpStatus) (\s@GetLFTagResponse' {} a -> s {httpStatus = a} :: GetLFTagResponse)++instance Prelude.NFData GetLFTagResponse where+ rnf GetLFTagResponse' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf tagKey+ `Prelude.seq` Prelude.rnf tagValues+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/GetQueryState.hs view
@@ -0,0 +1,215 @@+{-# 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.LakeFormation.GetQueryState+-- 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 state of a query previously submitted. Clients are expected+-- to poll @GetQueryState@ to monitor the current state of the planning+-- before retrieving the work units. A query state is only visible to the+-- principal that made the initial call to @StartQueryPlanning@.+module Amazonka.LakeFormation.GetQueryState+ ( -- * Creating a Request+ GetQueryState (..),+ newGetQueryState,++ -- * Request Lenses+ getQueryState_queryId,++ -- * Destructuring the Response+ GetQueryStateResponse (..),+ newGetQueryStateResponse,++ -- * Response Lenses+ getQueryStateResponse_error,+ getQueryStateResponse_httpStatus,+ getQueryStateResponse_state,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetQueryState' smart constructor.+data GetQueryState = GetQueryState'+ { -- | The ID of the plan query operation.+ queryId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetQueryState' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'queryId', 'getQueryState_queryId' - The ID of the plan query operation.+newGetQueryState ::+ -- | 'queryId'+ Prelude.Text ->+ GetQueryState+newGetQueryState pQueryId_ =+ GetQueryState' {queryId = pQueryId_}++-- | The ID of the plan query operation.+getQueryState_queryId :: Lens.Lens' GetQueryState Prelude.Text+getQueryState_queryId = Lens.lens (\GetQueryState' {queryId} -> queryId) (\s@GetQueryState' {} a -> s {queryId = a} :: GetQueryState)++instance Core.AWSRequest GetQueryState where+ type+ AWSResponse GetQueryState =+ GetQueryStateResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetQueryStateResponse'+ Prelude.<$> (x Data..?> "Error")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "State")+ )++instance Prelude.Hashable GetQueryState where+ hashWithSalt _salt GetQueryState' {..} =+ _salt `Prelude.hashWithSalt` queryId++instance Prelude.NFData GetQueryState where+ rnf GetQueryState' {..} = Prelude.rnf queryId++instance Data.ToHeaders GetQueryState where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetQueryState where+ toJSON GetQueryState' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("QueryId" Data..= queryId)]+ )++instance Data.ToPath GetQueryState where+ toPath = Prelude.const "/GetQueryState"++instance Data.ToQuery GetQueryState where+ toQuery = Prelude.const Prelude.mempty++-- | A structure for the output.+--+-- /See:/ 'newGetQueryStateResponse' smart constructor.+data GetQueryStateResponse = GetQueryStateResponse'+ { -- | An error message when the operation fails.+ error :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The state of a query previously submitted. The possible states are:+ --+ -- - PENDING: the query is pending.+ --+ -- - WORKUNITS_AVAILABLE: some work units are ready for retrieval and+ -- execution.+ --+ -- - FINISHED: the query planning finished successfully, and all work+ -- units are ready for retrieval and execution.+ --+ -- - ERROR: an error occurred with the query, such as an invalid query ID+ -- or a backend error.+ state :: QueryStateString+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetQueryStateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'error', 'getQueryStateResponse_error' - An error message when the operation fails.+--+-- 'httpStatus', 'getQueryStateResponse_httpStatus' - The response's http status code.+--+-- 'state', 'getQueryStateResponse_state' - The state of a query previously submitted. The possible states are:+--+-- - PENDING: the query is pending.+--+-- - WORKUNITS_AVAILABLE: some work units are ready for retrieval and+-- execution.+--+-- - FINISHED: the query planning finished successfully, and all work+-- units are ready for retrieval and execution.+--+-- - ERROR: an error occurred with the query, such as an invalid query ID+-- or a backend error.+newGetQueryStateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'state'+ QueryStateString ->+ GetQueryStateResponse+newGetQueryStateResponse pHttpStatus_ pState_ =+ GetQueryStateResponse'+ { error = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ state = pState_+ }++-- | An error message when the operation fails.+getQueryStateResponse_error :: Lens.Lens' GetQueryStateResponse (Prelude.Maybe Prelude.Text)+getQueryStateResponse_error = Lens.lens (\GetQueryStateResponse' {error} -> error) (\s@GetQueryStateResponse' {} a -> s {error = a} :: GetQueryStateResponse)++-- | The response's http status code.+getQueryStateResponse_httpStatus :: Lens.Lens' GetQueryStateResponse Prelude.Int+getQueryStateResponse_httpStatus = Lens.lens (\GetQueryStateResponse' {httpStatus} -> httpStatus) (\s@GetQueryStateResponse' {} a -> s {httpStatus = a} :: GetQueryStateResponse)++-- | The state of a query previously submitted. The possible states are:+--+-- - PENDING: the query is pending.+--+-- - WORKUNITS_AVAILABLE: some work units are ready for retrieval and+-- execution.+--+-- - FINISHED: the query planning finished successfully, and all work+-- units are ready for retrieval and execution.+--+-- - ERROR: an error occurred with the query, such as an invalid query ID+-- or a backend error.+getQueryStateResponse_state :: Lens.Lens' GetQueryStateResponse QueryStateString+getQueryStateResponse_state = Lens.lens (\GetQueryStateResponse' {state} -> state) (\s@GetQueryStateResponse' {} a -> s {state = a} :: GetQueryStateResponse)++instance Prelude.NFData GetQueryStateResponse where+ rnf GetQueryStateResponse' {..} =+ Prelude.rnf error+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/LakeFormation/GetQueryStatistics.hs view
@@ -0,0 +1,188 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.GetQueryStatistics+-- 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 statistics on the planning and execution of a query.+module Amazonka.LakeFormation.GetQueryStatistics+ ( -- * Creating a Request+ GetQueryStatistics (..),+ newGetQueryStatistics,++ -- * Request Lenses+ getQueryStatistics_queryId,++ -- * Destructuring the Response+ GetQueryStatisticsResponse (..),+ newGetQueryStatisticsResponse,++ -- * Response Lenses+ getQueryStatisticsResponse_executionStatistics,+ getQueryStatisticsResponse_planningStatistics,+ getQueryStatisticsResponse_querySubmissionTime,+ getQueryStatisticsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetQueryStatistics' smart constructor.+data GetQueryStatistics = GetQueryStatistics'+ { -- | The ID of the plan query operation.+ queryId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetQueryStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'queryId', 'getQueryStatistics_queryId' - The ID of the plan query operation.+newGetQueryStatistics ::+ -- | 'queryId'+ Prelude.Text ->+ GetQueryStatistics+newGetQueryStatistics pQueryId_ =+ GetQueryStatistics' {queryId = pQueryId_}++-- | The ID of the plan query operation.+getQueryStatistics_queryId :: Lens.Lens' GetQueryStatistics Prelude.Text+getQueryStatistics_queryId = Lens.lens (\GetQueryStatistics' {queryId} -> queryId) (\s@GetQueryStatistics' {} a -> s {queryId = a} :: GetQueryStatistics)++instance Core.AWSRequest GetQueryStatistics where+ type+ AWSResponse GetQueryStatistics =+ GetQueryStatisticsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetQueryStatisticsResponse'+ Prelude.<$> (x Data..?> "ExecutionStatistics")+ Prelude.<*> (x Data..?> "PlanningStatistics")+ Prelude.<*> (x Data..?> "QuerySubmissionTime")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetQueryStatistics where+ hashWithSalt _salt GetQueryStatistics' {..} =+ _salt `Prelude.hashWithSalt` queryId++instance Prelude.NFData GetQueryStatistics where+ rnf GetQueryStatistics' {..} = Prelude.rnf queryId++instance Data.ToHeaders GetQueryStatistics where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetQueryStatistics where+ toJSON GetQueryStatistics' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("QueryId" Data..= queryId)]+ )++instance Data.ToPath GetQueryStatistics where+ toPath = Prelude.const "/GetQueryStatistics"++instance Data.ToQuery GetQueryStatistics where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetQueryStatisticsResponse' smart constructor.+data GetQueryStatisticsResponse = GetQueryStatisticsResponse'+ { -- | An @ExecutionStatistics@ structure containing execution statistics.+ executionStatistics :: Prelude.Maybe ExecutionStatistics,+ -- | A @PlanningStatistics@ structure containing query planning statistics.+ planningStatistics :: Prelude.Maybe PlanningStatistics,+ -- | The time that the query was submitted.+ querySubmissionTime :: Prelude.Maybe Data.ISO8601,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetQueryStatisticsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'executionStatistics', 'getQueryStatisticsResponse_executionStatistics' - An @ExecutionStatistics@ structure containing execution statistics.+--+-- 'planningStatistics', 'getQueryStatisticsResponse_planningStatistics' - A @PlanningStatistics@ structure containing query planning statistics.+--+-- 'querySubmissionTime', 'getQueryStatisticsResponse_querySubmissionTime' - The time that the query was submitted.+--+-- 'httpStatus', 'getQueryStatisticsResponse_httpStatus' - The response's http status code.+newGetQueryStatisticsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetQueryStatisticsResponse+newGetQueryStatisticsResponse pHttpStatus_ =+ GetQueryStatisticsResponse'+ { executionStatistics =+ Prelude.Nothing,+ planningStatistics = Prelude.Nothing,+ querySubmissionTime = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An @ExecutionStatistics@ structure containing execution statistics.+getQueryStatisticsResponse_executionStatistics :: Lens.Lens' GetQueryStatisticsResponse (Prelude.Maybe ExecutionStatistics)+getQueryStatisticsResponse_executionStatistics = Lens.lens (\GetQueryStatisticsResponse' {executionStatistics} -> executionStatistics) (\s@GetQueryStatisticsResponse' {} a -> s {executionStatistics = a} :: GetQueryStatisticsResponse)++-- | A @PlanningStatistics@ structure containing query planning statistics.+getQueryStatisticsResponse_planningStatistics :: Lens.Lens' GetQueryStatisticsResponse (Prelude.Maybe PlanningStatistics)+getQueryStatisticsResponse_planningStatistics = Lens.lens (\GetQueryStatisticsResponse' {planningStatistics} -> planningStatistics) (\s@GetQueryStatisticsResponse' {} a -> s {planningStatistics = a} :: GetQueryStatisticsResponse)++-- | The time that the query was submitted.+getQueryStatisticsResponse_querySubmissionTime :: Lens.Lens' GetQueryStatisticsResponse (Prelude.Maybe Prelude.UTCTime)+getQueryStatisticsResponse_querySubmissionTime = Lens.lens (\GetQueryStatisticsResponse' {querySubmissionTime} -> querySubmissionTime) (\s@GetQueryStatisticsResponse' {} a -> s {querySubmissionTime = a} :: GetQueryStatisticsResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+getQueryStatisticsResponse_httpStatus :: Lens.Lens' GetQueryStatisticsResponse Prelude.Int+getQueryStatisticsResponse_httpStatus = Lens.lens (\GetQueryStatisticsResponse' {httpStatus} -> httpStatus) (\s@GetQueryStatisticsResponse' {} a -> s {httpStatus = a} :: GetQueryStatisticsResponse)++instance Prelude.NFData GetQueryStatisticsResponse where+ rnf GetQueryStatisticsResponse' {..} =+ Prelude.rnf executionStatistics+ `Prelude.seq` Prelude.rnf planningStatistics+ `Prelude.seq` Prelude.rnf querySubmissionTime+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/GetResourceLFTags.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.LakeFormation.GetResourceLFTags+-- 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 LF-tags applied to a resource.+module Amazonka.LakeFormation.GetResourceLFTags+ ( -- * Creating a Request+ GetResourceLFTags (..),+ newGetResourceLFTags,++ -- * Request Lenses+ getResourceLFTags_catalogId,+ getResourceLFTags_showAssignedLFTags,+ getResourceLFTags_resource,++ -- * Destructuring the Response+ GetResourceLFTagsResponse (..),+ newGetResourceLFTagsResponse,++ -- * Response Lenses+ getResourceLFTagsResponse_lFTagOnDatabase,+ getResourceLFTagsResponse_lFTagsOnColumns,+ getResourceLFTagsResponse_lFTagsOnTable,+ getResourceLFTagsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetResourceLFTags' smart constructor.+data GetResourceLFTags = GetResourceLFTags'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | Indicates whether to show the assigned LF-tags.+ showAssignedLFTags :: Prelude.Maybe Prelude.Bool,+ -- | The database, table, or column resource for which you want to return+ -- LF-tags.+ resource :: Resource+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetResourceLFTags' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'getResourceLFTags_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'showAssignedLFTags', 'getResourceLFTags_showAssignedLFTags' - Indicates whether to show the assigned LF-tags.+--+-- 'resource', 'getResourceLFTags_resource' - The database, table, or column resource for which you want to return+-- LF-tags.+newGetResourceLFTags ::+ -- | 'resource'+ Resource ->+ GetResourceLFTags+newGetResourceLFTags pResource_ =+ GetResourceLFTags'+ { catalogId = Prelude.Nothing,+ showAssignedLFTags = Prelude.Nothing,+ resource = pResource_+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+getResourceLFTags_catalogId :: Lens.Lens' GetResourceLFTags (Prelude.Maybe Prelude.Text)+getResourceLFTags_catalogId = Lens.lens (\GetResourceLFTags' {catalogId} -> catalogId) (\s@GetResourceLFTags' {} a -> s {catalogId = a} :: GetResourceLFTags)++-- | Indicates whether to show the assigned LF-tags.+getResourceLFTags_showAssignedLFTags :: Lens.Lens' GetResourceLFTags (Prelude.Maybe Prelude.Bool)+getResourceLFTags_showAssignedLFTags = Lens.lens (\GetResourceLFTags' {showAssignedLFTags} -> showAssignedLFTags) (\s@GetResourceLFTags' {} a -> s {showAssignedLFTags = a} :: GetResourceLFTags)++-- | The database, table, or column resource for which you want to return+-- LF-tags.+getResourceLFTags_resource :: Lens.Lens' GetResourceLFTags Resource+getResourceLFTags_resource = Lens.lens (\GetResourceLFTags' {resource} -> resource) (\s@GetResourceLFTags' {} a -> s {resource = a} :: GetResourceLFTags)++instance Core.AWSRequest GetResourceLFTags where+ type+ AWSResponse GetResourceLFTags =+ GetResourceLFTagsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetResourceLFTagsResponse'+ Prelude.<$> (x Data..?> "LFTagOnDatabase")+ Prelude.<*> ( x+ Data..?> "LFTagsOnColumns"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "LFTagsOnTable")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetResourceLFTags where+ hashWithSalt _salt GetResourceLFTags' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` showAssignedLFTags+ `Prelude.hashWithSalt` resource++instance Prelude.NFData GetResourceLFTags where+ rnf GetResourceLFTags' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf showAssignedLFTags+ `Prelude.seq` Prelude.rnf resource++instance Data.ToHeaders GetResourceLFTags where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetResourceLFTags where+ toJSON GetResourceLFTags' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("ShowAssignedLFTags" Data..=)+ Prelude.<$> showAssignedLFTags,+ Prelude.Just ("Resource" Data..= resource)+ ]+ )++instance Data.ToPath GetResourceLFTags where+ toPath = Prelude.const "/GetResourceLFTags"++instance Data.ToQuery GetResourceLFTags where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetResourceLFTagsResponse' smart constructor.+data GetResourceLFTagsResponse = GetResourceLFTagsResponse'+ { -- | A list of LF-tags applied to a database resource.+ lFTagOnDatabase :: Prelude.Maybe (Prelude.NonEmpty LFTagPair),+ -- | A list of LF-tags applied to a column resource.+ lFTagsOnColumns :: Prelude.Maybe [ColumnLFTag],+ -- | A list of LF-tags applied to a table resource.+ lFTagsOnTable :: Prelude.Maybe (Prelude.NonEmpty LFTagPair),+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetResourceLFTagsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lFTagOnDatabase', 'getResourceLFTagsResponse_lFTagOnDatabase' - A list of LF-tags applied to a database resource.+--+-- 'lFTagsOnColumns', 'getResourceLFTagsResponse_lFTagsOnColumns' - A list of LF-tags applied to a column resource.+--+-- 'lFTagsOnTable', 'getResourceLFTagsResponse_lFTagsOnTable' - A list of LF-tags applied to a table resource.+--+-- 'httpStatus', 'getResourceLFTagsResponse_httpStatus' - The response's http status code.+newGetResourceLFTagsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetResourceLFTagsResponse+newGetResourceLFTagsResponse pHttpStatus_ =+ GetResourceLFTagsResponse'+ { lFTagOnDatabase =+ Prelude.Nothing,+ lFTagsOnColumns = Prelude.Nothing,+ lFTagsOnTable = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of LF-tags applied to a database resource.+getResourceLFTagsResponse_lFTagOnDatabase :: Lens.Lens' GetResourceLFTagsResponse (Prelude.Maybe (Prelude.NonEmpty LFTagPair))+getResourceLFTagsResponse_lFTagOnDatabase = Lens.lens (\GetResourceLFTagsResponse' {lFTagOnDatabase} -> lFTagOnDatabase) (\s@GetResourceLFTagsResponse' {} a -> s {lFTagOnDatabase = a} :: GetResourceLFTagsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of LF-tags applied to a column resource.+getResourceLFTagsResponse_lFTagsOnColumns :: Lens.Lens' GetResourceLFTagsResponse (Prelude.Maybe [ColumnLFTag])+getResourceLFTagsResponse_lFTagsOnColumns = Lens.lens (\GetResourceLFTagsResponse' {lFTagsOnColumns} -> lFTagsOnColumns) (\s@GetResourceLFTagsResponse' {} a -> s {lFTagsOnColumns = a} :: GetResourceLFTagsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of LF-tags applied to a table resource.+getResourceLFTagsResponse_lFTagsOnTable :: Lens.Lens' GetResourceLFTagsResponse (Prelude.Maybe (Prelude.NonEmpty LFTagPair))+getResourceLFTagsResponse_lFTagsOnTable = Lens.lens (\GetResourceLFTagsResponse' {lFTagsOnTable} -> lFTagsOnTable) (\s@GetResourceLFTagsResponse' {} a -> s {lFTagsOnTable = a} :: GetResourceLFTagsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getResourceLFTagsResponse_httpStatus :: Lens.Lens' GetResourceLFTagsResponse Prelude.Int+getResourceLFTagsResponse_httpStatus = Lens.lens (\GetResourceLFTagsResponse' {httpStatus} -> httpStatus) (\s@GetResourceLFTagsResponse' {} a -> s {httpStatus = a} :: GetResourceLFTagsResponse)++instance Prelude.NFData GetResourceLFTagsResponse where+ rnf GetResourceLFTagsResponse' {..} =+ Prelude.rnf lFTagOnDatabase+ `Prelude.seq` Prelude.rnf lFTagsOnColumns+ `Prelude.seq` Prelude.rnf lFTagsOnTable+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/GetTableObjects.hs view
@@ -0,0 +1,325 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.GetTableObjects+-- 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 set of Amazon S3 objects that make up the specified governed+-- table. A transaction ID or timestamp can be specified for time-travel+-- queries.+module Amazonka.LakeFormation.GetTableObjects+ ( -- * Creating a Request+ GetTableObjects (..),+ newGetTableObjects,++ -- * Request Lenses+ getTableObjects_catalogId,+ getTableObjects_maxResults,+ getTableObjects_nextToken,+ getTableObjects_partitionPredicate,+ getTableObjects_queryAsOfTime,+ getTableObjects_transactionId,+ getTableObjects_databaseName,+ getTableObjects_tableName,++ -- * Destructuring the Response+ GetTableObjectsResponse (..),+ newGetTableObjectsResponse,++ -- * Response Lenses+ getTableObjectsResponse_nextToken,+ getTableObjectsResponse_objects,+ getTableObjectsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetTableObjects' smart constructor.+data GetTableObjects = GetTableObjects'+ { -- | The catalog containing the governed table. Defaults to the caller’s+ -- account.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | Specifies how many values to return in a page.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A continuation token if this is not the first call to retrieve these+ -- objects.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A predicate to filter the objects returned based on the partition keys+ -- defined in the governed table.+ --+ -- - The comparison operators supported are: =, >, \<, >=, \<=+ --+ -- - The logical operators supported are: AND+ --+ -- - The data types supported are integer, long, date(yyyy-MM-dd),+ -- timestamp(yyyy-MM-dd HH:mm:ssXXX or yyyy-MM-dd HH:mm:ss\"), string+ -- and decimal.+ partitionPredicate :: Prelude.Maybe Prelude.Text,+ -- | The time as of when to read the governed table contents. If not set, the+ -- most recent transaction commit time is used. Cannot be specified along+ -- with @TransactionId@.+ queryAsOfTime :: Prelude.Maybe Data.POSIX,+ -- | The transaction ID at which to read the governed table contents. If this+ -- transaction has aborted, an error is returned. If not set, defaults to+ -- the most recent committed transaction. Cannot be specified along with+ -- @QueryAsOfTime@.+ transactionId :: Prelude.Maybe Prelude.Text,+ -- | The database containing the governed table.+ databaseName :: Prelude.Text,+ -- | The governed table for which to retrieve objects.+ tableName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetTableObjects' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'getTableObjects_catalogId' - The catalog containing the governed table. Defaults to the caller’s+-- account.+--+-- 'maxResults', 'getTableObjects_maxResults' - Specifies how many values to return in a page.+--+-- 'nextToken', 'getTableObjects_nextToken' - A continuation token if this is not the first call to retrieve these+-- objects.+--+-- 'partitionPredicate', 'getTableObjects_partitionPredicate' - A predicate to filter the objects returned based on the partition keys+-- defined in the governed table.+--+-- - The comparison operators supported are: =, >, \<, >=, \<=+--+-- - The logical operators supported are: AND+--+-- - The data types supported are integer, long, date(yyyy-MM-dd),+-- timestamp(yyyy-MM-dd HH:mm:ssXXX or yyyy-MM-dd HH:mm:ss\"), string+-- and decimal.+--+-- 'queryAsOfTime', 'getTableObjects_queryAsOfTime' - The time as of when to read the governed table contents. If not set, the+-- most recent transaction commit time is used. Cannot be specified along+-- with @TransactionId@.+--+-- 'transactionId', 'getTableObjects_transactionId' - The transaction ID at which to read the governed table contents. If this+-- transaction has aborted, an error is returned. If not set, defaults to+-- the most recent committed transaction. Cannot be specified along with+-- @QueryAsOfTime@.+--+-- 'databaseName', 'getTableObjects_databaseName' - The database containing the governed table.+--+-- 'tableName', 'getTableObjects_tableName' - The governed table for which to retrieve objects.+newGetTableObjects ::+ -- | 'databaseName'+ Prelude.Text ->+ -- | 'tableName'+ Prelude.Text ->+ GetTableObjects+newGetTableObjects pDatabaseName_ pTableName_ =+ GetTableObjects'+ { catalogId = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ partitionPredicate = Prelude.Nothing,+ queryAsOfTime = Prelude.Nothing,+ transactionId = Prelude.Nothing,+ databaseName = pDatabaseName_,+ tableName = pTableName_+ }++-- | The catalog containing the governed table. Defaults to the caller’s+-- account.+getTableObjects_catalogId :: Lens.Lens' GetTableObjects (Prelude.Maybe Prelude.Text)+getTableObjects_catalogId = Lens.lens (\GetTableObjects' {catalogId} -> catalogId) (\s@GetTableObjects' {} a -> s {catalogId = a} :: GetTableObjects)++-- | Specifies how many values to return in a page.+getTableObjects_maxResults :: Lens.Lens' GetTableObjects (Prelude.Maybe Prelude.Natural)+getTableObjects_maxResults = Lens.lens (\GetTableObjects' {maxResults} -> maxResults) (\s@GetTableObjects' {} a -> s {maxResults = a} :: GetTableObjects)++-- | A continuation token if this is not the first call to retrieve these+-- objects.+getTableObjects_nextToken :: Lens.Lens' GetTableObjects (Prelude.Maybe Prelude.Text)+getTableObjects_nextToken = Lens.lens (\GetTableObjects' {nextToken} -> nextToken) (\s@GetTableObjects' {} a -> s {nextToken = a} :: GetTableObjects)++-- | A predicate to filter the objects returned based on the partition keys+-- defined in the governed table.+--+-- - The comparison operators supported are: =, >, \<, >=, \<=+--+-- - The logical operators supported are: AND+--+-- - The data types supported are integer, long, date(yyyy-MM-dd),+-- timestamp(yyyy-MM-dd HH:mm:ssXXX or yyyy-MM-dd HH:mm:ss\"), string+-- and decimal.+getTableObjects_partitionPredicate :: Lens.Lens' GetTableObjects (Prelude.Maybe Prelude.Text)+getTableObjects_partitionPredicate = Lens.lens (\GetTableObjects' {partitionPredicate} -> partitionPredicate) (\s@GetTableObjects' {} a -> s {partitionPredicate = a} :: GetTableObjects)++-- | The time as of when to read the governed table contents. If not set, the+-- most recent transaction commit time is used. Cannot be specified along+-- with @TransactionId@.+getTableObjects_queryAsOfTime :: Lens.Lens' GetTableObjects (Prelude.Maybe Prelude.UTCTime)+getTableObjects_queryAsOfTime = Lens.lens (\GetTableObjects' {queryAsOfTime} -> queryAsOfTime) (\s@GetTableObjects' {} a -> s {queryAsOfTime = a} :: GetTableObjects) Prelude.. Lens.mapping Data._Time++-- | The transaction ID at which to read the governed table contents. If this+-- transaction has aborted, an error is returned. If not set, defaults to+-- the most recent committed transaction. Cannot be specified along with+-- @QueryAsOfTime@.+getTableObjects_transactionId :: Lens.Lens' GetTableObjects (Prelude.Maybe Prelude.Text)+getTableObjects_transactionId = Lens.lens (\GetTableObjects' {transactionId} -> transactionId) (\s@GetTableObjects' {} a -> s {transactionId = a} :: GetTableObjects)++-- | The database containing the governed table.+getTableObjects_databaseName :: Lens.Lens' GetTableObjects Prelude.Text+getTableObjects_databaseName = Lens.lens (\GetTableObjects' {databaseName} -> databaseName) (\s@GetTableObjects' {} a -> s {databaseName = a} :: GetTableObjects)++-- | The governed table for which to retrieve objects.+getTableObjects_tableName :: Lens.Lens' GetTableObjects Prelude.Text+getTableObjects_tableName = Lens.lens (\GetTableObjects' {tableName} -> tableName) (\s@GetTableObjects' {} a -> s {tableName = a} :: GetTableObjects)++instance Core.AWSRequest GetTableObjects where+ type+ AWSResponse GetTableObjects =+ GetTableObjectsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetTableObjectsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "Objects" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetTableObjects where+ hashWithSalt _salt GetTableObjects' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` partitionPredicate+ `Prelude.hashWithSalt` queryAsOfTime+ `Prelude.hashWithSalt` transactionId+ `Prelude.hashWithSalt` databaseName+ `Prelude.hashWithSalt` tableName++instance Prelude.NFData GetTableObjects where+ rnf GetTableObjects' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf partitionPredicate+ `Prelude.seq` Prelude.rnf queryAsOfTime+ `Prelude.seq` Prelude.rnf transactionId+ `Prelude.seq` Prelude.rnf databaseName+ `Prelude.seq` Prelude.rnf tableName++instance Data.ToHeaders GetTableObjects where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetTableObjects where+ toJSON GetTableObjects' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("PartitionPredicate" Data..=)+ Prelude.<$> partitionPredicate,+ ("QueryAsOfTime" Data..=) Prelude.<$> queryAsOfTime,+ ("TransactionId" Data..=) Prelude.<$> transactionId,+ Prelude.Just ("DatabaseName" Data..= databaseName),+ Prelude.Just ("TableName" Data..= tableName)+ ]+ )++instance Data.ToPath GetTableObjects where+ toPath = Prelude.const "/GetTableObjects"++instance Data.ToQuery GetTableObjects where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetTableObjectsResponse' smart constructor.+data GetTableObjectsResponse = GetTableObjectsResponse'+ { -- | A continuation token indicating whether additional data is available.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of objects organized by partition keys.+ objects :: Prelude.Maybe [PartitionObjects],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetTableObjectsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getTableObjectsResponse_nextToken' - A continuation token indicating whether additional data is available.+--+-- 'objects', 'getTableObjectsResponse_objects' - A list of objects organized by partition keys.+--+-- 'httpStatus', 'getTableObjectsResponse_httpStatus' - The response's http status code.+newGetTableObjectsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetTableObjectsResponse+newGetTableObjectsResponse pHttpStatus_ =+ GetTableObjectsResponse'+ { nextToken =+ Prelude.Nothing,+ objects = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A continuation token indicating whether additional data is available.+getTableObjectsResponse_nextToken :: Lens.Lens' GetTableObjectsResponse (Prelude.Maybe Prelude.Text)+getTableObjectsResponse_nextToken = Lens.lens (\GetTableObjectsResponse' {nextToken} -> nextToken) (\s@GetTableObjectsResponse' {} a -> s {nextToken = a} :: GetTableObjectsResponse)++-- | A list of objects organized by partition keys.+getTableObjectsResponse_objects :: Lens.Lens' GetTableObjectsResponse (Prelude.Maybe [PartitionObjects])+getTableObjectsResponse_objects = Lens.lens (\GetTableObjectsResponse' {objects} -> objects) (\s@GetTableObjectsResponse' {} a -> s {objects = a} :: GetTableObjectsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getTableObjectsResponse_httpStatus :: Lens.Lens' GetTableObjectsResponse Prelude.Int+getTableObjectsResponse_httpStatus = Lens.lens (\GetTableObjectsResponse' {httpStatus} -> httpStatus) (\s@GetTableObjectsResponse' {} a -> s {httpStatus = a} :: GetTableObjectsResponse)++instance Prelude.NFData GetTableObjectsResponse where+ rnf GetTableObjectsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf objects+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/GetTemporaryGluePartitionCredentials.hs view
@@ -0,0 +1,331 @@+{-# 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.LakeFormation.GetTemporaryGluePartitionCredentials+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This API is identical to @GetTemporaryTableCredentials@ except that this+-- is used when the target Data Catalog resource is of type Partition. Lake+-- Formation restricts the permission of the vended credentials with the+-- same scope down policy which restricts access to a single Amazon S3+-- prefix.+module Amazonka.LakeFormation.GetTemporaryGluePartitionCredentials+ ( -- * Creating a Request+ GetTemporaryGluePartitionCredentials (..),+ newGetTemporaryGluePartitionCredentials,++ -- * Request Lenses+ getTemporaryGluePartitionCredentials_auditContext,+ getTemporaryGluePartitionCredentials_durationSeconds,+ getTemporaryGluePartitionCredentials_permissions,+ getTemporaryGluePartitionCredentials_tableArn,+ getTemporaryGluePartitionCredentials_partition,+ getTemporaryGluePartitionCredentials_supportedPermissionTypes,++ -- * Destructuring the Response+ GetTemporaryGluePartitionCredentialsResponse (..),+ newGetTemporaryGluePartitionCredentialsResponse,++ -- * Response Lenses+ getTemporaryGluePartitionCredentialsResponse_accessKeyId,+ getTemporaryGluePartitionCredentialsResponse_expiration,+ getTemporaryGluePartitionCredentialsResponse_secretAccessKey,+ getTemporaryGluePartitionCredentialsResponse_sessionToken,+ getTemporaryGluePartitionCredentialsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetTemporaryGluePartitionCredentials' smart constructor.+data GetTemporaryGluePartitionCredentials = GetTemporaryGluePartitionCredentials'+ { -- | A structure representing context to access a resource (column names,+ -- query ID, etc).+ auditContext :: Prelude.Maybe AuditContext,+ -- | The time period, between 900 and 21,600 seconds, for the timeout of the+ -- temporary credentials.+ durationSeconds :: Prelude.Maybe Prelude.Natural,+ -- | Filters the request based on the user having been granted a list of+ -- specified permissions on the requested resource(s).+ permissions :: Prelude.Maybe [Permission],+ -- | The ARN of the partitions\' table.+ tableArn :: Prelude.Text,+ -- | A list of partition values identifying a single partition.+ partition :: PartitionValueList,+ -- | A list of supported permission types for the partition. Valid values are+ -- @COLUMN_PERMISSION@ and @CELL_FILTER_PERMISSION@.+ supportedPermissionTypes :: Prelude.NonEmpty PermissionType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetTemporaryGluePartitionCredentials' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'auditContext', 'getTemporaryGluePartitionCredentials_auditContext' - A structure representing context to access a resource (column names,+-- query ID, etc).+--+-- 'durationSeconds', 'getTemporaryGluePartitionCredentials_durationSeconds' - The time period, between 900 and 21,600 seconds, for the timeout of the+-- temporary credentials.+--+-- 'permissions', 'getTemporaryGluePartitionCredentials_permissions' - Filters the request based on the user having been granted a list of+-- specified permissions on the requested resource(s).+--+-- 'tableArn', 'getTemporaryGluePartitionCredentials_tableArn' - The ARN of the partitions\' table.+--+-- 'partition', 'getTemporaryGluePartitionCredentials_partition' - A list of partition values identifying a single partition.+--+-- 'supportedPermissionTypes', 'getTemporaryGluePartitionCredentials_supportedPermissionTypes' - A list of supported permission types for the partition. Valid values are+-- @COLUMN_PERMISSION@ and @CELL_FILTER_PERMISSION@.+newGetTemporaryGluePartitionCredentials ::+ -- | 'tableArn'+ Prelude.Text ->+ -- | 'partition'+ PartitionValueList ->+ -- | 'supportedPermissionTypes'+ Prelude.NonEmpty PermissionType ->+ GetTemporaryGluePartitionCredentials+newGetTemporaryGluePartitionCredentials+ pTableArn_+ pPartition_+ pSupportedPermissionTypes_ =+ GetTemporaryGluePartitionCredentials'+ { auditContext =+ Prelude.Nothing,+ durationSeconds = Prelude.Nothing,+ permissions = Prelude.Nothing,+ tableArn = pTableArn_,+ partition = pPartition_,+ supportedPermissionTypes =+ Lens.coerced+ Lens.# pSupportedPermissionTypes_+ }++-- | A structure representing context to access a resource (column names,+-- query ID, etc).+getTemporaryGluePartitionCredentials_auditContext :: Lens.Lens' GetTemporaryGluePartitionCredentials (Prelude.Maybe AuditContext)+getTemporaryGluePartitionCredentials_auditContext = Lens.lens (\GetTemporaryGluePartitionCredentials' {auditContext} -> auditContext) (\s@GetTemporaryGluePartitionCredentials' {} a -> s {auditContext = a} :: GetTemporaryGluePartitionCredentials)++-- | The time period, between 900 and 21,600 seconds, for the timeout of the+-- temporary credentials.+getTemporaryGluePartitionCredentials_durationSeconds :: Lens.Lens' GetTemporaryGluePartitionCredentials (Prelude.Maybe Prelude.Natural)+getTemporaryGluePartitionCredentials_durationSeconds = Lens.lens (\GetTemporaryGluePartitionCredentials' {durationSeconds} -> durationSeconds) (\s@GetTemporaryGluePartitionCredentials' {} a -> s {durationSeconds = a} :: GetTemporaryGluePartitionCredentials)++-- | Filters the request based on the user having been granted a list of+-- specified permissions on the requested resource(s).+getTemporaryGluePartitionCredentials_permissions :: Lens.Lens' GetTemporaryGluePartitionCredentials (Prelude.Maybe [Permission])+getTemporaryGluePartitionCredentials_permissions = Lens.lens (\GetTemporaryGluePartitionCredentials' {permissions} -> permissions) (\s@GetTemporaryGluePartitionCredentials' {} a -> s {permissions = a} :: GetTemporaryGluePartitionCredentials) Prelude.. Lens.mapping Lens.coerced++-- | The ARN of the partitions\' table.+getTemporaryGluePartitionCredentials_tableArn :: Lens.Lens' GetTemporaryGluePartitionCredentials Prelude.Text+getTemporaryGluePartitionCredentials_tableArn = Lens.lens (\GetTemporaryGluePartitionCredentials' {tableArn} -> tableArn) (\s@GetTemporaryGluePartitionCredentials' {} a -> s {tableArn = a} :: GetTemporaryGluePartitionCredentials)++-- | A list of partition values identifying a single partition.+getTemporaryGluePartitionCredentials_partition :: Lens.Lens' GetTemporaryGluePartitionCredentials PartitionValueList+getTemporaryGluePartitionCredentials_partition = Lens.lens (\GetTemporaryGluePartitionCredentials' {partition} -> partition) (\s@GetTemporaryGluePartitionCredentials' {} a -> s {partition = a} :: GetTemporaryGluePartitionCredentials)++-- | A list of supported permission types for the partition. Valid values are+-- @COLUMN_PERMISSION@ and @CELL_FILTER_PERMISSION@.+getTemporaryGluePartitionCredentials_supportedPermissionTypes :: Lens.Lens' GetTemporaryGluePartitionCredentials (Prelude.NonEmpty PermissionType)+getTemporaryGluePartitionCredentials_supportedPermissionTypes = Lens.lens (\GetTemporaryGluePartitionCredentials' {supportedPermissionTypes} -> supportedPermissionTypes) (\s@GetTemporaryGluePartitionCredentials' {} a -> s {supportedPermissionTypes = a} :: GetTemporaryGluePartitionCredentials) Prelude.. Lens.coerced++instance+ Core.AWSRequest+ GetTemporaryGluePartitionCredentials+ where+ type+ AWSResponse GetTemporaryGluePartitionCredentials =+ GetTemporaryGluePartitionCredentialsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetTemporaryGluePartitionCredentialsResponse'+ Prelude.<$> (x Data..?> "AccessKeyId")+ Prelude.<*> (x Data..?> "Expiration")+ Prelude.<*> (x Data..?> "SecretAccessKey")+ Prelude.<*> (x Data..?> "SessionToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ GetTemporaryGluePartitionCredentials+ where+ hashWithSalt+ _salt+ GetTemporaryGluePartitionCredentials' {..} =+ _salt+ `Prelude.hashWithSalt` auditContext+ `Prelude.hashWithSalt` durationSeconds+ `Prelude.hashWithSalt` permissions+ `Prelude.hashWithSalt` tableArn+ `Prelude.hashWithSalt` partition+ `Prelude.hashWithSalt` supportedPermissionTypes++instance+ Prelude.NFData+ GetTemporaryGluePartitionCredentials+ where+ rnf GetTemporaryGluePartitionCredentials' {..} =+ Prelude.rnf auditContext+ `Prelude.seq` Prelude.rnf durationSeconds+ `Prelude.seq` Prelude.rnf permissions+ `Prelude.seq` Prelude.rnf tableArn+ `Prelude.seq` Prelude.rnf partition+ `Prelude.seq` Prelude.rnf supportedPermissionTypes++instance+ Data.ToHeaders+ GetTemporaryGluePartitionCredentials+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ GetTemporaryGluePartitionCredentials+ where+ toJSON GetTemporaryGluePartitionCredentials' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AuditContext" Data..=) Prelude.<$> auditContext,+ ("DurationSeconds" Data..=)+ Prelude.<$> durationSeconds,+ ("Permissions" Data..=) Prelude.<$> permissions,+ Prelude.Just ("TableArn" Data..= tableArn),+ Prelude.Just ("Partition" Data..= partition),+ Prelude.Just+ ( "SupportedPermissionTypes"+ Data..= supportedPermissionTypes+ )+ ]+ )++instance+ Data.ToPath+ GetTemporaryGluePartitionCredentials+ where+ toPath =+ Prelude.const+ "/GetTemporaryGluePartitionCredentials"++instance+ Data.ToQuery+ GetTemporaryGluePartitionCredentials+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetTemporaryGluePartitionCredentialsResponse' smart constructor.+data GetTemporaryGluePartitionCredentialsResponse = GetTemporaryGluePartitionCredentialsResponse'+ { -- | The access key ID for the temporary credentials.+ accessKeyId :: Prelude.Maybe Prelude.Text,+ -- | The date and time when the temporary credentials expire.+ expiration :: Prelude.Maybe Data.POSIX,+ -- | The secret key for the temporary credentials.+ secretAccessKey :: Prelude.Maybe Prelude.Text,+ -- | The session token for the temporary credentials.+ sessionToken :: 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 'GetTemporaryGluePartitionCredentialsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getTemporaryGluePartitionCredentialsResponse_accessKeyId' - The access key ID for the temporary credentials.+--+-- 'expiration', 'getTemporaryGluePartitionCredentialsResponse_expiration' - The date and time when the temporary credentials expire.+--+-- 'secretAccessKey', 'getTemporaryGluePartitionCredentialsResponse_secretAccessKey' - The secret key for the temporary credentials.+--+-- 'sessionToken', 'getTemporaryGluePartitionCredentialsResponse_sessionToken' - The session token for the temporary credentials.+--+-- 'httpStatus', 'getTemporaryGluePartitionCredentialsResponse_httpStatus' - The response's http status code.+newGetTemporaryGluePartitionCredentialsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetTemporaryGluePartitionCredentialsResponse+newGetTemporaryGluePartitionCredentialsResponse+ pHttpStatus_ =+ GetTemporaryGluePartitionCredentialsResponse'+ { accessKeyId =+ Prelude.Nothing,+ expiration = Prelude.Nothing,+ secretAccessKey =+ Prelude.Nothing,+ sessionToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The access key ID for the temporary credentials.+getTemporaryGluePartitionCredentialsResponse_accessKeyId :: Lens.Lens' GetTemporaryGluePartitionCredentialsResponse (Prelude.Maybe Prelude.Text)+getTemporaryGluePartitionCredentialsResponse_accessKeyId = Lens.lens (\GetTemporaryGluePartitionCredentialsResponse' {accessKeyId} -> accessKeyId) (\s@GetTemporaryGluePartitionCredentialsResponse' {} a -> s {accessKeyId = a} :: GetTemporaryGluePartitionCredentialsResponse)++-- | The date and time when the temporary credentials expire.+getTemporaryGluePartitionCredentialsResponse_expiration :: Lens.Lens' GetTemporaryGluePartitionCredentialsResponse (Prelude.Maybe Prelude.UTCTime)+getTemporaryGluePartitionCredentialsResponse_expiration = Lens.lens (\GetTemporaryGluePartitionCredentialsResponse' {expiration} -> expiration) (\s@GetTemporaryGluePartitionCredentialsResponse' {} a -> s {expiration = a} :: GetTemporaryGluePartitionCredentialsResponse) Prelude.. Lens.mapping Data._Time++-- | The secret key for the temporary credentials.+getTemporaryGluePartitionCredentialsResponse_secretAccessKey :: Lens.Lens' GetTemporaryGluePartitionCredentialsResponse (Prelude.Maybe Prelude.Text)+getTemporaryGluePartitionCredentialsResponse_secretAccessKey = Lens.lens (\GetTemporaryGluePartitionCredentialsResponse' {secretAccessKey} -> secretAccessKey) (\s@GetTemporaryGluePartitionCredentialsResponse' {} a -> s {secretAccessKey = a} :: GetTemporaryGluePartitionCredentialsResponse)++-- | The session token for the temporary credentials.+getTemporaryGluePartitionCredentialsResponse_sessionToken :: Lens.Lens' GetTemporaryGluePartitionCredentialsResponse (Prelude.Maybe Prelude.Text)+getTemporaryGluePartitionCredentialsResponse_sessionToken = Lens.lens (\GetTemporaryGluePartitionCredentialsResponse' {sessionToken} -> sessionToken) (\s@GetTemporaryGluePartitionCredentialsResponse' {} a -> s {sessionToken = a} :: GetTemporaryGluePartitionCredentialsResponse)++-- | The response's http status code.+getTemporaryGluePartitionCredentialsResponse_httpStatus :: Lens.Lens' GetTemporaryGluePartitionCredentialsResponse Prelude.Int+getTemporaryGluePartitionCredentialsResponse_httpStatus = Lens.lens (\GetTemporaryGluePartitionCredentialsResponse' {httpStatus} -> httpStatus) (\s@GetTemporaryGluePartitionCredentialsResponse' {} a -> s {httpStatus = a} :: GetTemporaryGluePartitionCredentialsResponse)++instance+ Prelude.NFData+ GetTemporaryGluePartitionCredentialsResponse+ where+ rnf GetTemporaryGluePartitionCredentialsResponse' {..} =+ Prelude.rnf accessKeyId+ `Prelude.seq` Prelude.rnf expiration+ `Prelude.seq` Prelude.rnf secretAccessKey+ `Prelude.seq` Prelude.rnf sessionToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/GetTemporaryGlueTableCredentials.hs view
@@ -0,0 +1,309 @@+{-# 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.LakeFormation.GetTemporaryGlueTableCredentials+-- 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 a caller in a secure environment to assume a role with permission+-- to access Amazon S3. In order to vend such credentials, Lake Formation+-- assumes the role associated with a registered location, for example an+-- Amazon S3 bucket, with a scope down policy which restricts the access to+-- a single prefix.+module Amazonka.LakeFormation.GetTemporaryGlueTableCredentials+ ( -- * Creating a Request+ GetTemporaryGlueTableCredentials (..),+ newGetTemporaryGlueTableCredentials,++ -- * Request Lenses+ getTemporaryGlueTableCredentials_auditContext,+ getTemporaryGlueTableCredentials_durationSeconds,+ getTemporaryGlueTableCredentials_permissions,+ getTemporaryGlueTableCredentials_tableArn,+ getTemporaryGlueTableCredentials_supportedPermissionTypes,++ -- * Destructuring the Response+ GetTemporaryGlueTableCredentialsResponse (..),+ newGetTemporaryGlueTableCredentialsResponse,++ -- * Response Lenses+ getTemporaryGlueTableCredentialsResponse_accessKeyId,+ getTemporaryGlueTableCredentialsResponse_expiration,+ getTemporaryGlueTableCredentialsResponse_secretAccessKey,+ getTemporaryGlueTableCredentialsResponse_sessionToken,+ getTemporaryGlueTableCredentialsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetTemporaryGlueTableCredentials' smart constructor.+data GetTemporaryGlueTableCredentials = GetTemporaryGlueTableCredentials'+ { -- | A structure representing context to access a resource (column names,+ -- query ID, etc).+ auditContext :: Prelude.Maybe AuditContext,+ -- | The time period, between 900 and 21,600 seconds, for the timeout of the+ -- temporary credentials.+ durationSeconds :: Prelude.Maybe Prelude.Natural,+ -- | Filters the request based on the user having been granted a list of+ -- specified permissions on the requested resource(s).+ permissions :: Prelude.Maybe [Permission],+ -- | The ARN identifying a table in the Data Catalog for the temporary+ -- credentials request.+ tableArn :: Prelude.Text,+ -- | A list of supported permission types for the table. Valid values are+ -- @COLUMN_PERMISSION@ and @CELL_FILTER_PERMISSION@.+ supportedPermissionTypes :: Prelude.NonEmpty PermissionType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetTemporaryGlueTableCredentials' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'auditContext', 'getTemporaryGlueTableCredentials_auditContext' - A structure representing context to access a resource (column names,+-- query ID, etc).+--+-- 'durationSeconds', 'getTemporaryGlueTableCredentials_durationSeconds' - The time period, between 900 and 21,600 seconds, for the timeout of the+-- temporary credentials.+--+-- 'permissions', 'getTemporaryGlueTableCredentials_permissions' - Filters the request based on the user having been granted a list of+-- specified permissions on the requested resource(s).+--+-- 'tableArn', 'getTemporaryGlueTableCredentials_tableArn' - The ARN identifying a table in the Data Catalog for the temporary+-- credentials request.+--+-- 'supportedPermissionTypes', 'getTemporaryGlueTableCredentials_supportedPermissionTypes' - A list of supported permission types for the table. Valid values are+-- @COLUMN_PERMISSION@ and @CELL_FILTER_PERMISSION@.+newGetTemporaryGlueTableCredentials ::+ -- | 'tableArn'+ Prelude.Text ->+ -- | 'supportedPermissionTypes'+ Prelude.NonEmpty PermissionType ->+ GetTemporaryGlueTableCredentials+newGetTemporaryGlueTableCredentials+ pTableArn_+ pSupportedPermissionTypes_ =+ GetTemporaryGlueTableCredentials'+ { auditContext =+ Prelude.Nothing,+ durationSeconds = Prelude.Nothing,+ permissions = Prelude.Nothing,+ tableArn = pTableArn_,+ supportedPermissionTypes =+ Lens.coerced+ Lens.# pSupportedPermissionTypes_+ }++-- | A structure representing context to access a resource (column names,+-- query ID, etc).+getTemporaryGlueTableCredentials_auditContext :: Lens.Lens' GetTemporaryGlueTableCredentials (Prelude.Maybe AuditContext)+getTemporaryGlueTableCredentials_auditContext = Lens.lens (\GetTemporaryGlueTableCredentials' {auditContext} -> auditContext) (\s@GetTemporaryGlueTableCredentials' {} a -> s {auditContext = a} :: GetTemporaryGlueTableCredentials)++-- | The time period, between 900 and 21,600 seconds, for the timeout of the+-- temporary credentials.+getTemporaryGlueTableCredentials_durationSeconds :: Lens.Lens' GetTemporaryGlueTableCredentials (Prelude.Maybe Prelude.Natural)+getTemporaryGlueTableCredentials_durationSeconds = Lens.lens (\GetTemporaryGlueTableCredentials' {durationSeconds} -> durationSeconds) (\s@GetTemporaryGlueTableCredentials' {} a -> s {durationSeconds = a} :: GetTemporaryGlueTableCredentials)++-- | Filters the request based on the user having been granted a list of+-- specified permissions on the requested resource(s).+getTemporaryGlueTableCredentials_permissions :: Lens.Lens' GetTemporaryGlueTableCredentials (Prelude.Maybe [Permission])+getTemporaryGlueTableCredentials_permissions = Lens.lens (\GetTemporaryGlueTableCredentials' {permissions} -> permissions) (\s@GetTemporaryGlueTableCredentials' {} a -> s {permissions = a} :: GetTemporaryGlueTableCredentials) Prelude.. Lens.mapping Lens.coerced++-- | The ARN identifying a table in the Data Catalog for the temporary+-- credentials request.+getTemporaryGlueTableCredentials_tableArn :: Lens.Lens' GetTemporaryGlueTableCredentials Prelude.Text+getTemporaryGlueTableCredentials_tableArn = Lens.lens (\GetTemporaryGlueTableCredentials' {tableArn} -> tableArn) (\s@GetTemporaryGlueTableCredentials' {} a -> s {tableArn = a} :: GetTemporaryGlueTableCredentials)++-- | A list of supported permission types for the table. Valid values are+-- @COLUMN_PERMISSION@ and @CELL_FILTER_PERMISSION@.+getTemporaryGlueTableCredentials_supportedPermissionTypes :: Lens.Lens' GetTemporaryGlueTableCredentials (Prelude.NonEmpty PermissionType)+getTemporaryGlueTableCredentials_supportedPermissionTypes = Lens.lens (\GetTemporaryGlueTableCredentials' {supportedPermissionTypes} -> supportedPermissionTypes) (\s@GetTemporaryGlueTableCredentials' {} a -> s {supportedPermissionTypes = a} :: GetTemporaryGlueTableCredentials) Prelude.. Lens.coerced++instance+ Core.AWSRequest+ GetTemporaryGlueTableCredentials+ where+ type+ AWSResponse GetTemporaryGlueTableCredentials =+ GetTemporaryGlueTableCredentialsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetTemporaryGlueTableCredentialsResponse'+ Prelude.<$> (x Data..?> "AccessKeyId")+ Prelude.<*> (x Data..?> "Expiration")+ Prelude.<*> (x Data..?> "SecretAccessKey")+ Prelude.<*> (x Data..?> "SessionToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ GetTemporaryGlueTableCredentials+ where+ hashWithSalt+ _salt+ GetTemporaryGlueTableCredentials' {..} =+ _salt+ `Prelude.hashWithSalt` auditContext+ `Prelude.hashWithSalt` durationSeconds+ `Prelude.hashWithSalt` permissions+ `Prelude.hashWithSalt` tableArn+ `Prelude.hashWithSalt` supportedPermissionTypes++instance+ Prelude.NFData+ GetTemporaryGlueTableCredentials+ where+ rnf GetTemporaryGlueTableCredentials' {..} =+ Prelude.rnf auditContext+ `Prelude.seq` Prelude.rnf durationSeconds+ `Prelude.seq` Prelude.rnf permissions+ `Prelude.seq` Prelude.rnf tableArn+ `Prelude.seq` Prelude.rnf supportedPermissionTypes++instance+ Data.ToHeaders+ GetTemporaryGlueTableCredentials+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetTemporaryGlueTableCredentials where+ toJSON GetTemporaryGlueTableCredentials' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AuditContext" Data..=) Prelude.<$> auditContext,+ ("DurationSeconds" Data..=)+ Prelude.<$> durationSeconds,+ ("Permissions" Data..=) Prelude.<$> permissions,+ Prelude.Just ("TableArn" Data..= tableArn),+ Prelude.Just+ ( "SupportedPermissionTypes"+ Data..= supportedPermissionTypes+ )+ ]+ )++instance Data.ToPath GetTemporaryGlueTableCredentials where+ toPath =+ Prelude.const "/GetTemporaryGlueTableCredentials"++instance+ Data.ToQuery+ GetTemporaryGlueTableCredentials+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetTemporaryGlueTableCredentialsResponse' smart constructor.+data GetTemporaryGlueTableCredentialsResponse = GetTemporaryGlueTableCredentialsResponse'+ { -- | The access key ID for the temporary credentials.+ accessKeyId :: Prelude.Maybe Prelude.Text,+ -- | The date and time when the temporary credentials expire.+ expiration :: Prelude.Maybe Data.POSIX,+ -- | The secret key for the temporary credentials.+ secretAccessKey :: Prelude.Maybe Prelude.Text,+ -- | The session token for the temporary credentials.+ sessionToken :: 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 'GetTemporaryGlueTableCredentialsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getTemporaryGlueTableCredentialsResponse_accessKeyId' - The access key ID for the temporary credentials.+--+-- 'expiration', 'getTemporaryGlueTableCredentialsResponse_expiration' - The date and time when the temporary credentials expire.+--+-- 'secretAccessKey', 'getTemporaryGlueTableCredentialsResponse_secretAccessKey' - The secret key for the temporary credentials.+--+-- 'sessionToken', 'getTemporaryGlueTableCredentialsResponse_sessionToken' - The session token for the temporary credentials.+--+-- 'httpStatus', 'getTemporaryGlueTableCredentialsResponse_httpStatus' - The response's http status code.+newGetTemporaryGlueTableCredentialsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetTemporaryGlueTableCredentialsResponse+newGetTemporaryGlueTableCredentialsResponse+ pHttpStatus_ =+ GetTemporaryGlueTableCredentialsResponse'+ { accessKeyId =+ Prelude.Nothing,+ expiration = Prelude.Nothing,+ secretAccessKey = Prelude.Nothing,+ sessionToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The access key ID for the temporary credentials.+getTemporaryGlueTableCredentialsResponse_accessKeyId :: Lens.Lens' GetTemporaryGlueTableCredentialsResponse (Prelude.Maybe Prelude.Text)+getTemporaryGlueTableCredentialsResponse_accessKeyId = Lens.lens (\GetTemporaryGlueTableCredentialsResponse' {accessKeyId} -> accessKeyId) (\s@GetTemporaryGlueTableCredentialsResponse' {} a -> s {accessKeyId = a} :: GetTemporaryGlueTableCredentialsResponse)++-- | The date and time when the temporary credentials expire.+getTemporaryGlueTableCredentialsResponse_expiration :: Lens.Lens' GetTemporaryGlueTableCredentialsResponse (Prelude.Maybe Prelude.UTCTime)+getTemporaryGlueTableCredentialsResponse_expiration = Lens.lens (\GetTemporaryGlueTableCredentialsResponse' {expiration} -> expiration) (\s@GetTemporaryGlueTableCredentialsResponse' {} a -> s {expiration = a} :: GetTemporaryGlueTableCredentialsResponse) Prelude.. Lens.mapping Data._Time++-- | The secret key for the temporary credentials.+getTemporaryGlueTableCredentialsResponse_secretAccessKey :: Lens.Lens' GetTemporaryGlueTableCredentialsResponse (Prelude.Maybe Prelude.Text)+getTemporaryGlueTableCredentialsResponse_secretAccessKey = Lens.lens (\GetTemporaryGlueTableCredentialsResponse' {secretAccessKey} -> secretAccessKey) (\s@GetTemporaryGlueTableCredentialsResponse' {} a -> s {secretAccessKey = a} :: GetTemporaryGlueTableCredentialsResponse)++-- | The session token for the temporary credentials.+getTemporaryGlueTableCredentialsResponse_sessionToken :: Lens.Lens' GetTemporaryGlueTableCredentialsResponse (Prelude.Maybe Prelude.Text)+getTemporaryGlueTableCredentialsResponse_sessionToken = Lens.lens (\GetTemporaryGlueTableCredentialsResponse' {sessionToken} -> sessionToken) (\s@GetTemporaryGlueTableCredentialsResponse' {} a -> s {sessionToken = a} :: GetTemporaryGlueTableCredentialsResponse)++-- | The response's http status code.+getTemporaryGlueTableCredentialsResponse_httpStatus :: Lens.Lens' GetTemporaryGlueTableCredentialsResponse Prelude.Int+getTemporaryGlueTableCredentialsResponse_httpStatus = Lens.lens (\GetTemporaryGlueTableCredentialsResponse' {httpStatus} -> httpStatus) (\s@GetTemporaryGlueTableCredentialsResponse' {} a -> s {httpStatus = a} :: GetTemporaryGlueTableCredentialsResponse)++instance+ Prelude.NFData+ GetTemporaryGlueTableCredentialsResponse+ where+ rnf GetTemporaryGlueTableCredentialsResponse' {..} =+ Prelude.rnf accessKeyId+ `Prelude.seq` Prelude.rnf expiration+ `Prelude.seq` Prelude.rnf secretAccessKey+ `Prelude.seq` Prelude.rnf sessionToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/GetWorkUnitResults.hs view
@@ -0,0 +1,218 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.GetWorkUnitResults+-- 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 work units resulting from the query. Work units can be+-- executed in any order and in parallel.+module Amazonka.LakeFormation.GetWorkUnitResults+ ( -- * Creating a Request+ GetWorkUnitResults (..),+ newGetWorkUnitResults,++ -- * Request Lenses+ getWorkUnitResults_queryId,+ getWorkUnitResults_workUnitId,+ getWorkUnitResults_workUnitToken,++ -- * Destructuring the Response+ GetWorkUnitResultsResponse (..),+ newGetWorkUnitResultsResponse,++ -- * Response Lenses+ getWorkUnitResultsResponse_httpStatus,+ getWorkUnitResultsResponse_resultStream,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetWorkUnitResults' smart constructor.+data GetWorkUnitResults = GetWorkUnitResults'+ { -- | The ID of the plan query operation for which to get results.+ queryId :: Prelude.Text,+ -- | The work unit ID for which to get results. Value generated by+ -- enumerating @WorkUnitIdMin@ to @WorkUnitIdMax@ (inclusive) from the+ -- @WorkUnitRange@ in the output of @GetWorkUnits@.+ workUnitId :: Prelude.Natural,+ -- | A work token used to query the execution service. Token output from+ -- @GetWorkUnits@.+ workUnitToken :: Data.Sensitive Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetWorkUnitResults' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'queryId', 'getWorkUnitResults_queryId' - The ID of the plan query operation for which to get results.+--+-- 'workUnitId', 'getWorkUnitResults_workUnitId' - The work unit ID for which to get results. Value generated by+-- enumerating @WorkUnitIdMin@ to @WorkUnitIdMax@ (inclusive) from the+-- @WorkUnitRange@ in the output of @GetWorkUnits@.+--+-- 'workUnitToken', 'getWorkUnitResults_workUnitToken' - A work token used to query the execution service. Token output from+-- @GetWorkUnits@.+newGetWorkUnitResults ::+ -- | 'queryId'+ Prelude.Text ->+ -- | 'workUnitId'+ Prelude.Natural ->+ -- | 'workUnitToken'+ Prelude.Text ->+ GetWorkUnitResults+newGetWorkUnitResults+ pQueryId_+ pWorkUnitId_+ pWorkUnitToken_ =+ GetWorkUnitResults'+ { queryId = pQueryId_,+ workUnitId = pWorkUnitId_,+ workUnitToken =+ Data._Sensitive Lens.# pWorkUnitToken_+ }++-- | The ID of the plan query operation for which to get results.+getWorkUnitResults_queryId :: Lens.Lens' GetWorkUnitResults Prelude.Text+getWorkUnitResults_queryId = Lens.lens (\GetWorkUnitResults' {queryId} -> queryId) (\s@GetWorkUnitResults' {} a -> s {queryId = a} :: GetWorkUnitResults)++-- | The work unit ID for which to get results. Value generated by+-- enumerating @WorkUnitIdMin@ to @WorkUnitIdMax@ (inclusive) from the+-- @WorkUnitRange@ in the output of @GetWorkUnits@.+getWorkUnitResults_workUnitId :: Lens.Lens' GetWorkUnitResults Prelude.Natural+getWorkUnitResults_workUnitId = Lens.lens (\GetWorkUnitResults' {workUnitId} -> workUnitId) (\s@GetWorkUnitResults' {} a -> s {workUnitId = a} :: GetWorkUnitResults)++-- | A work token used to query the execution service. Token output from+-- @GetWorkUnits@.+getWorkUnitResults_workUnitToken :: Lens.Lens' GetWorkUnitResults Prelude.Text+getWorkUnitResults_workUnitToken = Lens.lens (\GetWorkUnitResults' {workUnitToken} -> workUnitToken) (\s@GetWorkUnitResults' {} a -> s {workUnitToken = a} :: GetWorkUnitResults) Prelude.. Data._Sensitive++instance Core.AWSRequest GetWorkUnitResults where+ type+ AWSResponse GetWorkUnitResults =+ GetWorkUnitResultsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveBody+ ( \s h x ->+ GetWorkUnitResultsResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Prelude.pure x)+ )++instance Prelude.Hashable GetWorkUnitResults where+ hashWithSalt _salt GetWorkUnitResults' {..} =+ _salt+ `Prelude.hashWithSalt` queryId+ `Prelude.hashWithSalt` workUnitId+ `Prelude.hashWithSalt` workUnitToken++instance Prelude.NFData GetWorkUnitResults where+ rnf GetWorkUnitResults' {..} =+ Prelude.rnf queryId+ `Prelude.seq` Prelude.rnf workUnitId+ `Prelude.seq` Prelude.rnf workUnitToken++instance Data.ToHeaders GetWorkUnitResults where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetWorkUnitResults where+ toJSON GetWorkUnitResults' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("QueryId" Data..= queryId),+ Prelude.Just ("WorkUnitId" Data..= workUnitId),+ Prelude.Just+ ("WorkUnitToken" Data..= workUnitToken)+ ]+ )++instance Data.ToPath GetWorkUnitResults where+ toPath = Prelude.const "/GetWorkUnitResults"++instance Data.ToQuery GetWorkUnitResults where+ toQuery = Prelude.const Prelude.mempty++-- | A structure for the output.+--+-- /See:/ 'newGetWorkUnitResultsResponse' smart constructor.+data GetWorkUnitResultsResponse = GetWorkUnitResultsResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | Rows returned from the @GetWorkUnitResults@ operation as a stream of+ -- Apache Arrow v1.0 messages.+ resultStream :: Data.ResponseBody+ }+ deriving (Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetWorkUnitResultsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'getWorkUnitResultsResponse_httpStatus' - The response's http status code.+--+-- 'resultStream', 'getWorkUnitResultsResponse_resultStream' - Rows returned from the @GetWorkUnitResults@ operation as a stream of+-- Apache Arrow v1.0 messages.+newGetWorkUnitResultsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'resultStream'+ Data.ResponseBody ->+ GetWorkUnitResultsResponse+newGetWorkUnitResultsResponse+ pHttpStatus_+ pResultStream_ =+ GetWorkUnitResultsResponse'+ { httpStatus =+ pHttpStatus_,+ resultStream = pResultStream_+ }++-- | The response's http status code.+getWorkUnitResultsResponse_httpStatus :: Lens.Lens' GetWorkUnitResultsResponse Prelude.Int+getWorkUnitResultsResponse_httpStatus = Lens.lens (\GetWorkUnitResultsResponse' {httpStatus} -> httpStatus) (\s@GetWorkUnitResultsResponse' {} a -> s {httpStatus = a} :: GetWorkUnitResultsResponse)++-- | Rows returned from the @GetWorkUnitResults@ operation as a stream of+-- Apache Arrow v1.0 messages.+getWorkUnitResultsResponse_resultStream :: Lens.Lens' GetWorkUnitResultsResponse Data.ResponseBody+getWorkUnitResultsResponse_resultStream = Lens.lens (\GetWorkUnitResultsResponse' {resultStream} -> resultStream) (\s@GetWorkUnitResultsResponse' {} a -> s {resultStream = a} :: GetWorkUnitResultsResponse)
+ gen/Amazonka/LakeFormation/GetWorkUnits.hs view
@@ -0,0 +1,263 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.GetWorkUnits+-- 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 work units generated by the @StartQueryPlanning@+-- operation.+--+-- This operation returns paginated results.+module Amazonka.LakeFormation.GetWorkUnits+ ( -- * Creating a Request+ GetWorkUnits (..),+ newGetWorkUnits,++ -- * Request Lenses+ getWorkUnits_nextToken,+ getWorkUnits_pageSize,+ getWorkUnits_queryId,++ -- * Destructuring the Response+ GetWorkUnitsResponse (..),+ newGetWorkUnitsResponse,++ -- * Response Lenses+ getWorkUnitsResponse_nextToken,+ getWorkUnitsResponse_httpStatus,+ getWorkUnitsResponse_queryId,+ getWorkUnitsResponse_workUnitRanges,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetWorkUnits' smart constructor.+data GetWorkUnits = GetWorkUnits'+ { -- | A continuation token, if this is a continuation call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The size of each page to get in the Amazon Web Services service call.+ -- This does not affect the number of items returned in the command\'s+ -- output. Setting a smaller page size results in more calls to the Amazon+ -- Web Services service, retrieving fewer items in each call. This can help+ -- prevent the Amazon Web Services service calls from timing out.+ pageSize :: Prelude.Maybe Prelude.Int,+ -- | The ID of the plan query operation.+ queryId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetWorkUnits' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getWorkUnits_nextToken' - A continuation token, if this is a continuation call.+--+-- 'pageSize', 'getWorkUnits_pageSize' - The size of each page to get in the Amazon Web Services service call.+-- This does not affect the number of items returned in the command\'s+-- output. Setting a smaller page size results in more calls to the Amazon+-- Web Services service, retrieving fewer items in each call. This can help+-- prevent the Amazon Web Services service calls from timing out.+--+-- 'queryId', 'getWorkUnits_queryId' - The ID of the plan query operation.+newGetWorkUnits ::+ -- | 'queryId'+ Prelude.Text ->+ GetWorkUnits+newGetWorkUnits pQueryId_ =+ GetWorkUnits'+ { nextToken = Prelude.Nothing,+ pageSize = Prelude.Nothing,+ queryId = pQueryId_+ }++-- | A continuation token, if this is a continuation call.+getWorkUnits_nextToken :: Lens.Lens' GetWorkUnits (Prelude.Maybe Prelude.Text)+getWorkUnits_nextToken = Lens.lens (\GetWorkUnits' {nextToken} -> nextToken) (\s@GetWorkUnits' {} a -> s {nextToken = a} :: GetWorkUnits)++-- | The size of each page to get in the Amazon Web Services service call.+-- This does not affect the number of items returned in the command\'s+-- output. Setting a smaller page size results in more calls to the Amazon+-- Web Services service, retrieving fewer items in each call. This can help+-- prevent the Amazon Web Services service calls from timing out.+getWorkUnits_pageSize :: Lens.Lens' GetWorkUnits (Prelude.Maybe Prelude.Int)+getWorkUnits_pageSize = Lens.lens (\GetWorkUnits' {pageSize} -> pageSize) (\s@GetWorkUnits' {} a -> s {pageSize = a} :: GetWorkUnits)++-- | The ID of the plan query operation.+getWorkUnits_queryId :: Lens.Lens' GetWorkUnits Prelude.Text+getWorkUnits_queryId = Lens.lens (\GetWorkUnits' {queryId} -> queryId) (\s@GetWorkUnits' {} a -> s {queryId = a} :: GetWorkUnits)++instance Core.AWSPager GetWorkUnits where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? getWorkUnitsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ (rs Lens.^. getWorkUnitsResponse_workUnitRanges) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& getWorkUnits_nextToken+ Lens..~ rs+ Lens.^? getWorkUnitsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest GetWorkUnits where+ type AWSResponse GetWorkUnits = GetWorkUnitsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetWorkUnitsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "QueryId")+ Prelude.<*> ( x+ Data..?> "WorkUnitRanges"+ Core..!@ Prelude.mempty+ )+ )++instance Prelude.Hashable GetWorkUnits where+ hashWithSalt _salt GetWorkUnits' {..} =+ _salt+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` pageSize+ `Prelude.hashWithSalt` queryId++instance Prelude.NFData GetWorkUnits where+ rnf GetWorkUnits' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf pageSize+ `Prelude.seq` Prelude.rnf queryId++instance Data.ToHeaders GetWorkUnits where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetWorkUnits where+ toJSON GetWorkUnits' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("PageSize" Data..=) Prelude.<$> pageSize,+ Prelude.Just ("QueryId" Data..= queryId)+ ]+ )++instance Data.ToPath GetWorkUnits where+ toPath = Prelude.const "/GetWorkUnits"++instance Data.ToQuery GetWorkUnits where+ toQuery = Prelude.const Prelude.mempty++-- | A structure for the output.+--+-- /See:/ 'newGetWorkUnitsResponse' smart constructor.+data GetWorkUnitsResponse = GetWorkUnitsResponse'+ { -- | A continuation token for paginating the returned list of tokens,+ -- returned if the current segment of the list is not the last.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The ID of the plan query operation.+ queryId :: Prelude.Text,+ -- | A @WorkUnitRangeList@ object that specifies the valid range of work unit+ -- IDs for querying the execution service.+ workUnitRanges :: [WorkUnitRange]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetWorkUnitsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getWorkUnitsResponse_nextToken' - A continuation token for paginating the returned list of tokens,+-- returned if the current segment of the list is not the last.+--+-- 'httpStatus', 'getWorkUnitsResponse_httpStatus' - The response's http status code.+--+-- 'queryId', 'getWorkUnitsResponse_queryId' - The ID of the plan query operation.+--+-- 'workUnitRanges', 'getWorkUnitsResponse_workUnitRanges' - A @WorkUnitRangeList@ object that specifies the valid range of work unit+-- IDs for querying the execution service.+newGetWorkUnitsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'queryId'+ Prelude.Text ->+ GetWorkUnitsResponse+newGetWorkUnitsResponse pHttpStatus_ pQueryId_ =+ GetWorkUnitsResponse'+ { nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ queryId = pQueryId_,+ workUnitRanges = Prelude.mempty+ }++-- | A continuation token for paginating the returned list of tokens,+-- returned if the current segment of the list is not the last.+getWorkUnitsResponse_nextToken :: Lens.Lens' GetWorkUnitsResponse (Prelude.Maybe Prelude.Text)+getWorkUnitsResponse_nextToken = Lens.lens (\GetWorkUnitsResponse' {nextToken} -> nextToken) (\s@GetWorkUnitsResponse' {} a -> s {nextToken = a} :: GetWorkUnitsResponse)++-- | The response's http status code.+getWorkUnitsResponse_httpStatus :: Lens.Lens' GetWorkUnitsResponse Prelude.Int+getWorkUnitsResponse_httpStatus = Lens.lens (\GetWorkUnitsResponse' {httpStatus} -> httpStatus) (\s@GetWorkUnitsResponse' {} a -> s {httpStatus = a} :: GetWorkUnitsResponse)++-- | The ID of the plan query operation.+getWorkUnitsResponse_queryId :: Lens.Lens' GetWorkUnitsResponse Prelude.Text+getWorkUnitsResponse_queryId = Lens.lens (\GetWorkUnitsResponse' {queryId} -> queryId) (\s@GetWorkUnitsResponse' {} a -> s {queryId = a} :: GetWorkUnitsResponse)++-- | A @WorkUnitRangeList@ object that specifies the valid range of work unit+-- IDs for querying the execution service.+getWorkUnitsResponse_workUnitRanges :: Lens.Lens' GetWorkUnitsResponse [WorkUnitRange]+getWorkUnitsResponse_workUnitRanges = Lens.lens (\GetWorkUnitsResponse' {workUnitRanges} -> workUnitRanges) (\s@GetWorkUnitsResponse' {} a -> s {workUnitRanges = a} :: GetWorkUnitsResponse) Prelude.. Lens.coerced++instance Prelude.NFData GetWorkUnitsResponse where+ rnf GetWorkUnitsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf queryId+ `Prelude.seq` Prelude.rnf workUnitRanges
+ gen/Amazonka/LakeFormation/GrantPermissions.hs view
@@ -0,0 +1,264 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.GrantPermissions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Grants permissions to the principal to access metadata in the Data+-- Catalog and data organized in underlying data storage such as Amazon S3.+--+-- For information about permissions, see+-- <https://docs-aws.amazon.com/lake-formation/latest/dg/security-data-access.html Security and Access Control to Metadata and Data>.+module Amazonka.LakeFormation.GrantPermissions+ ( -- * Creating a Request+ GrantPermissions (..),+ newGrantPermissions,++ -- * Request Lenses+ grantPermissions_catalogId,+ grantPermissions_permissionsWithGrantOption,+ grantPermissions_principal,+ grantPermissions_resource,+ grantPermissions_permissions,++ -- * Destructuring the Response+ GrantPermissionsResponse (..),+ newGrantPermissionsResponse,++ -- * Response Lenses+ grantPermissionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGrantPermissions' smart constructor.+data GrantPermissions = GrantPermissions'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | Indicates a list of the granted permissions that the principal may pass+ -- to other users. These permissions may only be a subset of the+ -- permissions granted in the @Privileges@.+ permissionsWithGrantOption :: Prelude.Maybe [Permission],+ -- | The principal to be granted the permissions on the resource. Supported+ -- principals are IAM users or IAM roles, and they are defined by their+ -- principal type and their ARN.+ --+ -- Note that if you define a resource with a particular ARN, then later+ -- delete, and recreate a resource with that same ARN, the resource+ -- maintains the permissions already granted.+ principal :: DataLakePrincipal,+ -- | The resource to which permissions are to be granted. Resources in Lake+ -- Formation are the Data Catalog, databases, and tables.+ resource :: Resource,+ -- | The permissions granted to the principal on the resource. Lake Formation+ -- defines privileges to grant and revoke access to metadata in the Data+ -- Catalog and data organized in underlying data storage such as Amazon S3.+ -- Lake Formation requires that each principal be authorized to perform a+ -- specific task on Lake Formation resources.+ permissions :: [Permission]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrantPermissions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'grantPermissions_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'permissionsWithGrantOption', 'grantPermissions_permissionsWithGrantOption' - Indicates a list of the granted permissions that the principal may pass+-- to other users. These permissions may only be a subset of the+-- permissions granted in the @Privileges@.+--+-- 'principal', 'grantPermissions_principal' - The principal to be granted the permissions on the resource. Supported+-- principals are IAM users or IAM roles, and they are defined by their+-- principal type and their ARN.+--+-- Note that if you define a resource with a particular ARN, then later+-- delete, and recreate a resource with that same ARN, the resource+-- maintains the permissions already granted.+--+-- 'resource', 'grantPermissions_resource' - The resource to which permissions are to be granted. Resources in Lake+-- Formation are the Data Catalog, databases, and tables.+--+-- 'permissions', 'grantPermissions_permissions' - The permissions granted to the principal on the resource. Lake Formation+-- defines privileges to grant and revoke access to metadata in the Data+-- Catalog and data organized in underlying data storage such as Amazon S3.+-- Lake Formation requires that each principal be authorized to perform a+-- specific task on Lake Formation resources.+newGrantPermissions ::+ -- | 'principal'+ DataLakePrincipal ->+ -- | 'resource'+ Resource ->+ GrantPermissions+newGrantPermissions pPrincipal_ pResource_ =+ GrantPermissions'+ { catalogId = Prelude.Nothing,+ permissionsWithGrantOption = Prelude.Nothing,+ principal = pPrincipal_,+ resource = pResource_,+ permissions = Prelude.mempty+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+grantPermissions_catalogId :: Lens.Lens' GrantPermissions (Prelude.Maybe Prelude.Text)+grantPermissions_catalogId = Lens.lens (\GrantPermissions' {catalogId} -> catalogId) (\s@GrantPermissions' {} a -> s {catalogId = a} :: GrantPermissions)++-- | Indicates a list of the granted permissions that the principal may pass+-- to other users. These permissions may only be a subset of the+-- permissions granted in the @Privileges@.+grantPermissions_permissionsWithGrantOption :: Lens.Lens' GrantPermissions (Prelude.Maybe [Permission])+grantPermissions_permissionsWithGrantOption = Lens.lens (\GrantPermissions' {permissionsWithGrantOption} -> permissionsWithGrantOption) (\s@GrantPermissions' {} a -> s {permissionsWithGrantOption = a} :: GrantPermissions) Prelude.. Lens.mapping Lens.coerced++-- | The principal to be granted the permissions on the resource. Supported+-- principals are IAM users or IAM roles, and they are defined by their+-- principal type and their ARN.+--+-- Note that if you define a resource with a particular ARN, then later+-- delete, and recreate a resource with that same ARN, the resource+-- maintains the permissions already granted.+grantPermissions_principal :: Lens.Lens' GrantPermissions DataLakePrincipal+grantPermissions_principal = Lens.lens (\GrantPermissions' {principal} -> principal) (\s@GrantPermissions' {} a -> s {principal = a} :: GrantPermissions)++-- | The resource to which permissions are to be granted. Resources in Lake+-- Formation are the Data Catalog, databases, and tables.+grantPermissions_resource :: Lens.Lens' GrantPermissions Resource+grantPermissions_resource = Lens.lens (\GrantPermissions' {resource} -> resource) (\s@GrantPermissions' {} a -> s {resource = a} :: GrantPermissions)++-- | The permissions granted to the principal on the resource. Lake Formation+-- defines privileges to grant and revoke access to metadata in the Data+-- Catalog and data organized in underlying data storage such as Amazon S3.+-- Lake Formation requires that each principal be authorized to perform a+-- specific task on Lake Formation resources.+grantPermissions_permissions :: Lens.Lens' GrantPermissions [Permission]+grantPermissions_permissions = Lens.lens (\GrantPermissions' {permissions} -> permissions) (\s@GrantPermissions' {} a -> s {permissions = a} :: GrantPermissions) Prelude.. Lens.coerced++instance Core.AWSRequest GrantPermissions where+ type+ AWSResponse GrantPermissions =+ GrantPermissionsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ GrantPermissionsResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GrantPermissions where+ hashWithSalt _salt GrantPermissions' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` permissionsWithGrantOption+ `Prelude.hashWithSalt` principal+ `Prelude.hashWithSalt` resource+ `Prelude.hashWithSalt` permissions++instance Prelude.NFData GrantPermissions where+ rnf GrantPermissions' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf permissionsWithGrantOption+ `Prelude.seq` Prelude.rnf principal+ `Prelude.seq` Prelude.rnf resource+ `Prelude.seq` Prelude.rnf permissions++instance Data.ToHeaders GrantPermissions where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GrantPermissions where+ toJSON GrantPermissions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("PermissionsWithGrantOption" Data..=)+ Prelude.<$> permissionsWithGrantOption,+ Prelude.Just ("Principal" Data..= principal),+ Prelude.Just ("Resource" Data..= resource),+ Prelude.Just ("Permissions" Data..= permissions)+ ]+ )++instance Data.ToPath GrantPermissions where+ toPath = Prelude.const "/GrantPermissions"++instance Data.ToQuery GrantPermissions where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGrantPermissionsResponse' smart constructor.+data GrantPermissionsResponse = GrantPermissionsResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrantPermissionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'grantPermissionsResponse_httpStatus' - The response's http status code.+newGrantPermissionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GrantPermissionsResponse+newGrantPermissionsResponse pHttpStatus_ =+ GrantPermissionsResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+grantPermissionsResponse_httpStatus :: Lens.Lens' GrantPermissionsResponse Prelude.Int+grantPermissionsResponse_httpStatus = Lens.lens (\GrantPermissionsResponse' {httpStatus} -> httpStatus) (\s@GrantPermissionsResponse' {} a -> s {httpStatus = a} :: GrantPermissionsResponse)++instance Prelude.NFData GrantPermissionsResponse where+ rnf GrantPermissionsResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/Lens.hs view
@@ -0,0 +1,660 @@+{-# 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.LakeFormation.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.LakeFormation.Lens+ ( -- * Operations++ -- ** AddLFTagsToResource+ addLFTagsToResource_catalogId,+ addLFTagsToResource_resource,+ addLFTagsToResource_lFTags,+ addLFTagsToResourceResponse_failures,+ addLFTagsToResourceResponse_httpStatus,++ -- ** AssumeDecoratedRoleWithSAML+ assumeDecoratedRoleWithSAML_durationSeconds,+ assumeDecoratedRoleWithSAML_sAMLAssertion,+ assumeDecoratedRoleWithSAML_roleArn,+ assumeDecoratedRoleWithSAML_principalArn,+ assumeDecoratedRoleWithSAMLResponse_accessKeyId,+ assumeDecoratedRoleWithSAMLResponse_expiration,+ assumeDecoratedRoleWithSAMLResponse_secretAccessKey,+ assumeDecoratedRoleWithSAMLResponse_sessionToken,+ assumeDecoratedRoleWithSAMLResponse_httpStatus,++ -- ** BatchGrantPermissions+ batchGrantPermissions_catalogId,+ batchGrantPermissions_entries,+ batchGrantPermissionsResponse_failures,+ batchGrantPermissionsResponse_httpStatus,++ -- ** BatchRevokePermissions+ batchRevokePermissions_catalogId,+ batchRevokePermissions_entries,+ batchRevokePermissionsResponse_failures,+ batchRevokePermissionsResponse_httpStatus,++ -- ** CancelTransaction+ cancelTransaction_transactionId,+ cancelTransactionResponse_httpStatus,++ -- ** CommitTransaction+ commitTransaction_transactionId,+ commitTransactionResponse_transactionStatus,+ commitTransactionResponse_httpStatus,++ -- ** CreateDataCellsFilter+ createDataCellsFilter_tableData,+ createDataCellsFilterResponse_httpStatus,++ -- ** CreateLFTag+ createLFTag_catalogId,+ createLFTag_tagKey,+ createLFTag_tagValues,+ createLFTagResponse_httpStatus,++ -- ** DeleteDataCellsFilter+ deleteDataCellsFilter_databaseName,+ deleteDataCellsFilter_name,+ deleteDataCellsFilter_tableCatalogId,+ deleteDataCellsFilter_tableName,+ deleteDataCellsFilterResponse_httpStatus,++ -- ** DeleteLFTag+ deleteLFTag_catalogId,+ deleteLFTag_tagKey,+ deleteLFTagResponse_httpStatus,++ -- ** DeleteObjectsOnCancel+ deleteObjectsOnCancel_catalogId,+ deleteObjectsOnCancel_databaseName,+ deleteObjectsOnCancel_tableName,+ deleteObjectsOnCancel_transactionId,+ deleteObjectsOnCancel_objects,+ deleteObjectsOnCancelResponse_httpStatus,++ -- ** DeregisterResource+ deregisterResource_resourceArn,+ deregisterResourceResponse_httpStatus,++ -- ** DescribeResource+ describeResource_resourceArn,+ describeResourceResponse_resourceInfo,+ describeResourceResponse_httpStatus,++ -- ** DescribeTransaction+ describeTransaction_transactionId,+ describeTransactionResponse_transactionDescription,+ describeTransactionResponse_httpStatus,++ -- ** ExtendTransaction+ extendTransaction_transactionId,+ extendTransactionResponse_httpStatus,++ -- ** GetDataLakeSettings+ getDataLakeSettings_catalogId,+ getDataLakeSettingsResponse_dataLakeSettings,+ getDataLakeSettingsResponse_httpStatus,++ -- ** GetEffectivePermissionsForPath+ getEffectivePermissionsForPath_catalogId,+ getEffectivePermissionsForPath_maxResults,+ getEffectivePermissionsForPath_nextToken,+ getEffectivePermissionsForPath_resourceArn,+ getEffectivePermissionsForPathResponse_nextToken,+ getEffectivePermissionsForPathResponse_permissions,+ getEffectivePermissionsForPathResponse_httpStatus,++ -- ** GetLFTag+ getLFTag_catalogId,+ getLFTag_tagKey,+ getLFTagResponse_catalogId,+ getLFTagResponse_tagKey,+ getLFTagResponse_tagValues,+ getLFTagResponse_httpStatus,++ -- ** GetQueryState+ getQueryState_queryId,+ getQueryStateResponse_error,+ getQueryStateResponse_httpStatus,+ getQueryStateResponse_state,++ -- ** GetQueryStatistics+ getQueryStatistics_queryId,+ getQueryStatisticsResponse_executionStatistics,+ getQueryStatisticsResponse_planningStatistics,+ getQueryStatisticsResponse_querySubmissionTime,+ getQueryStatisticsResponse_httpStatus,++ -- ** GetResourceLFTags+ getResourceLFTags_catalogId,+ getResourceLFTags_showAssignedLFTags,+ getResourceLFTags_resource,+ getResourceLFTagsResponse_lFTagOnDatabase,+ getResourceLFTagsResponse_lFTagsOnColumns,+ getResourceLFTagsResponse_lFTagsOnTable,+ getResourceLFTagsResponse_httpStatus,++ -- ** GetTableObjects+ getTableObjects_catalogId,+ getTableObjects_maxResults,+ getTableObjects_nextToken,+ getTableObjects_partitionPredicate,+ getTableObjects_queryAsOfTime,+ getTableObjects_transactionId,+ getTableObjects_databaseName,+ getTableObjects_tableName,+ getTableObjectsResponse_nextToken,+ getTableObjectsResponse_objects,+ getTableObjectsResponse_httpStatus,++ -- ** GetTemporaryGluePartitionCredentials+ getTemporaryGluePartitionCredentials_auditContext,+ getTemporaryGluePartitionCredentials_durationSeconds,+ getTemporaryGluePartitionCredentials_permissions,+ getTemporaryGluePartitionCredentials_tableArn,+ getTemporaryGluePartitionCredentials_partition,+ getTemporaryGluePartitionCredentials_supportedPermissionTypes,+ getTemporaryGluePartitionCredentialsResponse_accessKeyId,+ getTemporaryGluePartitionCredentialsResponse_expiration,+ getTemporaryGluePartitionCredentialsResponse_secretAccessKey,+ getTemporaryGluePartitionCredentialsResponse_sessionToken,+ getTemporaryGluePartitionCredentialsResponse_httpStatus,++ -- ** GetTemporaryGlueTableCredentials+ getTemporaryGlueTableCredentials_auditContext,+ getTemporaryGlueTableCredentials_durationSeconds,+ getTemporaryGlueTableCredentials_permissions,+ getTemporaryGlueTableCredentials_tableArn,+ getTemporaryGlueTableCredentials_supportedPermissionTypes,+ getTemporaryGlueTableCredentialsResponse_accessKeyId,+ getTemporaryGlueTableCredentialsResponse_expiration,+ getTemporaryGlueTableCredentialsResponse_secretAccessKey,+ getTemporaryGlueTableCredentialsResponse_sessionToken,+ getTemporaryGlueTableCredentialsResponse_httpStatus,++ -- ** GetWorkUnitResults+ getWorkUnitResults_queryId,+ getWorkUnitResults_workUnitId,+ getWorkUnitResults_workUnitToken,+ getWorkUnitResultsResponse_httpStatus,+ getWorkUnitResultsResponse_resultStream,++ -- ** GetWorkUnits+ getWorkUnits_nextToken,+ getWorkUnits_pageSize,+ getWorkUnits_queryId,+ getWorkUnitsResponse_nextToken,+ getWorkUnitsResponse_httpStatus,+ getWorkUnitsResponse_queryId,+ getWorkUnitsResponse_workUnitRanges,++ -- ** GrantPermissions+ grantPermissions_catalogId,+ grantPermissions_permissionsWithGrantOption,+ grantPermissions_principal,+ grantPermissions_resource,+ grantPermissions_permissions,+ grantPermissionsResponse_httpStatus,++ -- ** ListDataCellsFilter+ listDataCellsFilter_maxResults,+ listDataCellsFilter_nextToken,+ listDataCellsFilter_table,+ listDataCellsFilterResponse_dataCellsFilters,+ listDataCellsFilterResponse_nextToken,+ listDataCellsFilterResponse_httpStatus,++ -- ** ListLFTags+ listLFTags_catalogId,+ listLFTags_maxResults,+ listLFTags_nextToken,+ listLFTags_resourceShareType,+ listLFTagsResponse_lFTags,+ listLFTagsResponse_nextToken,+ listLFTagsResponse_httpStatus,++ -- ** ListPermissions+ listPermissions_catalogId,+ listPermissions_includeRelated,+ listPermissions_maxResults,+ listPermissions_nextToken,+ listPermissions_principal,+ listPermissions_resource,+ listPermissions_resourceType,+ listPermissionsResponse_nextToken,+ listPermissionsResponse_principalResourcePermissions,+ listPermissionsResponse_httpStatus,++ -- ** ListResources+ listResources_filterConditionList,+ listResources_maxResults,+ listResources_nextToken,+ listResourcesResponse_nextToken,+ listResourcesResponse_resourceInfoList,+ listResourcesResponse_httpStatus,++ -- ** ListTableStorageOptimizers+ listTableStorageOptimizers_catalogId,+ listTableStorageOptimizers_maxResults,+ listTableStorageOptimizers_nextToken,+ listTableStorageOptimizers_storageOptimizerType,+ listTableStorageOptimizers_databaseName,+ listTableStorageOptimizers_tableName,+ listTableStorageOptimizersResponse_nextToken,+ listTableStorageOptimizersResponse_storageOptimizerList,+ listTableStorageOptimizersResponse_httpStatus,++ -- ** ListTransactions+ listTransactions_catalogId,+ listTransactions_maxResults,+ listTransactions_nextToken,+ listTransactions_statusFilter,+ listTransactionsResponse_nextToken,+ listTransactionsResponse_transactions,+ listTransactionsResponse_httpStatus,++ -- ** PutDataLakeSettings+ putDataLakeSettings_catalogId,+ putDataLakeSettings_dataLakeSettings,+ putDataLakeSettingsResponse_httpStatus,++ -- ** RegisterResource+ registerResource_roleArn,+ registerResource_useServiceLinkedRole,+ registerResource_resourceArn,+ registerResourceResponse_httpStatus,++ -- ** RemoveLFTagsFromResource+ removeLFTagsFromResource_catalogId,+ removeLFTagsFromResource_resource,+ removeLFTagsFromResource_lFTags,+ removeLFTagsFromResourceResponse_failures,+ removeLFTagsFromResourceResponse_httpStatus,++ -- ** RevokePermissions+ revokePermissions_catalogId,+ revokePermissions_permissionsWithGrantOption,+ revokePermissions_principal,+ revokePermissions_resource,+ revokePermissions_permissions,+ revokePermissionsResponse_httpStatus,++ -- ** SearchDatabasesByLFTags+ searchDatabasesByLFTags_catalogId,+ searchDatabasesByLFTags_maxResults,+ searchDatabasesByLFTags_nextToken,+ searchDatabasesByLFTags_expression,+ searchDatabasesByLFTagsResponse_databaseList,+ searchDatabasesByLFTagsResponse_nextToken,+ searchDatabasesByLFTagsResponse_httpStatus,++ -- ** SearchTablesByLFTags+ searchTablesByLFTags_catalogId,+ searchTablesByLFTags_maxResults,+ searchTablesByLFTags_nextToken,+ searchTablesByLFTags_expression,+ searchTablesByLFTagsResponse_nextToken,+ searchTablesByLFTagsResponse_tableList,+ searchTablesByLFTagsResponse_httpStatus,++ -- ** StartQueryPlanning+ startQueryPlanning_queryPlanningContext,+ startQueryPlanning_queryString,+ startQueryPlanningResponse_httpStatus,+ startQueryPlanningResponse_queryId,++ -- ** StartTransaction+ startTransaction_transactionType,+ startTransactionResponse_transactionId,+ startTransactionResponse_httpStatus,++ -- ** UpdateLFTag+ updateLFTag_catalogId,+ updateLFTag_tagValuesToAdd,+ updateLFTag_tagValuesToDelete,+ updateLFTag_tagKey,+ updateLFTagResponse_httpStatus,++ -- ** UpdateResource+ updateResource_roleArn,+ updateResource_resourceArn,+ updateResourceResponse_httpStatus,++ -- ** UpdateTableObjects+ updateTableObjects_catalogId,+ updateTableObjects_transactionId,+ updateTableObjects_databaseName,+ updateTableObjects_tableName,+ updateTableObjects_writeOperations,+ updateTableObjectsResponse_httpStatus,++ -- ** UpdateTableStorageOptimizer+ updateTableStorageOptimizer_catalogId,+ updateTableStorageOptimizer_databaseName,+ updateTableStorageOptimizer_tableName,+ updateTableStorageOptimizer_storageOptimizerConfig,+ updateTableStorageOptimizerResponse_result,+ updateTableStorageOptimizerResponse_httpStatus,++ -- * Types++ -- ** AddObjectInput+ addObjectInput_partitionValues,+ addObjectInput_uri,+ addObjectInput_eTag,+ addObjectInput_size,++ -- ** AllRowsWildcard++ -- ** AuditContext+ auditContext_additionalAuditContext,++ -- ** BatchPermissionsFailureEntry+ batchPermissionsFailureEntry_error,+ batchPermissionsFailureEntry_requestEntry,++ -- ** BatchPermissionsRequestEntry+ batchPermissionsRequestEntry_permissions,+ batchPermissionsRequestEntry_permissionsWithGrantOption,+ batchPermissionsRequestEntry_principal,+ batchPermissionsRequestEntry_resource,+ batchPermissionsRequestEntry_id,++ -- ** CatalogResource++ -- ** ColumnLFTag+ columnLFTag_lFTags,+ columnLFTag_name,++ -- ** ColumnWildcard+ columnWildcard_excludedColumnNames,++ -- ** DataCellsFilter+ dataCellsFilter_columnNames,+ dataCellsFilter_columnWildcard,+ dataCellsFilter_rowFilter,+ dataCellsFilter_tableCatalogId,+ dataCellsFilter_databaseName,+ dataCellsFilter_tableName,+ dataCellsFilter_name,++ -- ** DataCellsFilterResource+ dataCellsFilterResource_databaseName,+ dataCellsFilterResource_name,+ dataCellsFilterResource_tableCatalogId,+ dataCellsFilterResource_tableName,++ -- ** DataLakePrincipal+ dataLakePrincipal_dataLakePrincipalIdentifier,++ -- ** DataLakeSettings+ dataLakeSettings_allowExternalDataFiltering,+ dataLakeSettings_authorizedSessionTagValueList,+ dataLakeSettings_createDatabaseDefaultPermissions,+ dataLakeSettings_createTableDefaultPermissions,+ dataLakeSettings_dataLakeAdmins,+ dataLakeSettings_externalDataFilteringAllowList,+ dataLakeSettings_parameters,+ dataLakeSettings_trustedResourceOwners,++ -- ** DataLocationResource+ dataLocationResource_catalogId,+ dataLocationResource_resourceArn,++ -- ** DatabaseResource+ databaseResource_catalogId,+ databaseResource_name,++ -- ** DeleteObjectInput+ deleteObjectInput_eTag,+ deleteObjectInput_partitionValues,+ deleteObjectInput_uri,++ -- ** DetailsMap+ detailsMap_resourceShare,++ -- ** ErrorDetail+ errorDetail_errorCode,+ errorDetail_errorMessage,++ -- ** ExecutionStatistics+ executionStatistics_averageExecutionTimeMillis,+ executionStatistics_dataScannedBytes,+ executionStatistics_workUnitsExecutedCount,++ -- ** FilterCondition+ filterCondition_comparisonOperator,+ filterCondition_field,+ filterCondition_stringValueList,++ -- ** LFTag+ lFTag_tagKey,+ lFTag_tagValues,++ -- ** LFTagError+ lFTagError_error,+ lFTagError_lFTag,++ -- ** LFTagKeyResource+ lFTagKeyResource_catalogId,+ lFTagKeyResource_tagKey,+ lFTagKeyResource_tagValues,++ -- ** LFTagPair+ lFTagPair_catalogId,+ lFTagPair_tagKey,+ lFTagPair_tagValues,++ -- ** LFTagPolicyResource+ lFTagPolicyResource_catalogId,+ lFTagPolicyResource_resourceType,+ lFTagPolicyResource_expression,++ -- ** PartitionObjects+ partitionObjects_objects,+ partitionObjects_partitionValues,++ -- ** PartitionValueList+ partitionValueList_values,++ -- ** PlanningStatistics+ planningStatistics_estimatedDataToScanBytes,+ planningStatistics_planningTimeMillis,+ planningStatistics_queueTimeMillis,+ planningStatistics_workUnitsGeneratedCount,++ -- ** PrincipalPermissions+ principalPermissions_permissions,+ principalPermissions_principal,++ -- ** PrincipalResourcePermissions+ principalResourcePermissions_additionalDetails,+ principalResourcePermissions_permissions,+ principalResourcePermissions_permissionsWithGrantOption,+ principalResourcePermissions_principal,+ principalResourcePermissions_resource,++ -- ** QueryPlanningContext+ queryPlanningContext_catalogId,+ queryPlanningContext_queryAsOfTime,+ queryPlanningContext_queryParameters,+ queryPlanningContext_transactionId,+ queryPlanningContext_databaseName,++ -- ** Resource+ resource_catalog,+ resource_dataCellsFilter,+ resource_dataLocation,+ resource_database,+ resource_lFTag,+ resource_lFTagPolicy,+ resource_table,+ resource_tableWithColumns,++ -- ** ResourceInfo+ resourceInfo_lastModified,+ resourceInfo_resourceArn,+ resourceInfo_roleArn,++ -- ** RowFilter+ rowFilter_allRowsWildcard,+ rowFilter_filterExpression,++ -- ** StorageOptimizer+ storageOptimizer_config,+ storageOptimizer_errorMessage,+ storageOptimizer_lastRunDetails,+ storageOptimizer_storageOptimizerType,+ storageOptimizer_warnings,++ -- ** TableObject+ tableObject_eTag,+ tableObject_size,+ tableObject_uri,++ -- ** TableResource+ tableResource_catalogId,+ tableResource_name,+ tableResource_tableWildcard,+ tableResource_databaseName,++ -- ** TableWildcard++ -- ** TableWithColumnsResource+ tableWithColumnsResource_catalogId,+ tableWithColumnsResource_columnNames,+ tableWithColumnsResource_columnWildcard,+ tableWithColumnsResource_databaseName,+ tableWithColumnsResource_name,++ -- ** TaggedDatabase+ taggedDatabase_database,+ taggedDatabase_lFTags,++ -- ** TaggedTable+ taggedTable_lFTagOnDatabase,+ taggedTable_lFTagsOnColumns,+ taggedTable_lFTagsOnTable,+ taggedTable_table,++ -- ** TransactionDescription+ transactionDescription_transactionEndTime,+ transactionDescription_transactionId,+ transactionDescription_transactionStartTime,+ transactionDescription_transactionStatus,++ -- ** VirtualObject+ virtualObject_eTag,+ virtualObject_uri,++ -- ** WorkUnitRange+ workUnitRange_workUnitIdMax,+ workUnitRange_workUnitIdMin,+ workUnitRange_workUnitToken,++ -- ** WriteOperation+ writeOperation_addObject,+ writeOperation_deleteObject,+ )+where++import Amazonka.LakeFormation.AddLFTagsToResource+import Amazonka.LakeFormation.AssumeDecoratedRoleWithSAML+import Amazonka.LakeFormation.BatchGrantPermissions+import Amazonka.LakeFormation.BatchRevokePermissions+import Amazonka.LakeFormation.CancelTransaction+import Amazonka.LakeFormation.CommitTransaction+import Amazonka.LakeFormation.CreateDataCellsFilter+import Amazonka.LakeFormation.CreateLFTag+import Amazonka.LakeFormation.DeleteDataCellsFilter+import Amazonka.LakeFormation.DeleteLFTag+import Amazonka.LakeFormation.DeleteObjectsOnCancel+import Amazonka.LakeFormation.DeregisterResource+import Amazonka.LakeFormation.DescribeResource+import Amazonka.LakeFormation.DescribeTransaction+import Amazonka.LakeFormation.ExtendTransaction+import Amazonka.LakeFormation.GetDataLakeSettings+import Amazonka.LakeFormation.GetEffectivePermissionsForPath+import Amazonka.LakeFormation.GetLFTag+import Amazonka.LakeFormation.GetQueryState+import Amazonka.LakeFormation.GetQueryStatistics+import Amazonka.LakeFormation.GetResourceLFTags+import Amazonka.LakeFormation.GetTableObjects+import Amazonka.LakeFormation.GetTemporaryGluePartitionCredentials+import Amazonka.LakeFormation.GetTemporaryGlueTableCredentials+import Amazonka.LakeFormation.GetWorkUnitResults+import Amazonka.LakeFormation.GetWorkUnits+import Amazonka.LakeFormation.GrantPermissions+import Amazonka.LakeFormation.ListDataCellsFilter+import Amazonka.LakeFormation.ListLFTags+import Amazonka.LakeFormation.ListPermissions+import Amazonka.LakeFormation.ListResources+import Amazonka.LakeFormation.ListTableStorageOptimizers+import Amazonka.LakeFormation.ListTransactions+import Amazonka.LakeFormation.PutDataLakeSettings+import Amazonka.LakeFormation.RegisterResource+import Amazonka.LakeFormation.RemoveLFTagsFromResource+import Amazonka.LakeFormation.RevokePermissions+import Amazonka.LakeFormation.SearchDatabasesByLFTags+import Amazonka.LakeFormation.SearchTablesByLFTags+import Amazonka.LakeFormation.StartQueryPlanning+import Amazonka.LakeFormation.StartTransaction+import Amazonka.LakeFormation.Types.AddObjectInput+import Amazonka.LakeFormation.Types.AllRowsWildcard+import Amazonka.LakeFormation.Types.AuditContext+import Amazonka.LakeFormation.Types.BatchPermissionsFailureEntry+import Amazonka.LakeFormation.Types.BatchPermissionsRequestEntry+import Amazonka.LakeFormation.Types.CatalogResource+import Amazonka.LakeFormation.Types.ColumnLFTag+import Amazonka.LakeFormation.Types.ColumnWildcard+import Amazonka.LakeFormation.Types.DataCellsFilter+import Amazonka.LakeFormation.Types.DataCellsFilterResource+import Amazonka.LakeFormation.Types.DataLakePrincipal+import Amazonka.LakeFormation.Types.DataLakeSettings+import Amazonka.LakeFormation.Types.DataLocationResource+import Amazonka.LakeFormation.Types.DatabaseResource+import Amazonka.LakeFormation.Types.DeleteObjectInput+import Amazonka.LakeFormation.Types.DetailsMap+import Amazonka.LakeFormation.Types.ErrorDetail+import Amazonka.LakeFormation.Types.ExecutionStatistics+import Amazonka.LakeFormation.Types.FilterCondition+import Amazonka.LakeFormation.Types.LFTag+import Amazonka.LakeFormation.Types.LFTagError+import Amazonka.LakeFormation.Types.LFTagKeyResource+import Amazonka.LakeFormation.Types.LFTagPair+import Amazonka.LakeFormation.Types.LFTagPolicyResource+import Amazonka.LakeFormation.Types.PartitionObjects+import Amazonka.LakeFormation.Types.PartitionValueList+import Amazonka.LakeFormation.Types.PlanningStatistics+import Amazonka.LakeFormation.Types.PrincipalPermissions+import Amazonka.LakeFormation.Types.PrincipalResourcePermissions+import Amazonka.LakeFormation.Types.QueryPlanningContext+import Amazonka.LakeFormation.Types.Resource+import Amazonka.LakeFormation.Types.ResourceInfo+import Amazonka.LakeFormation.Types.RowFilter+import Amazonka.LakeFormation.Types.StorageOptimizer+import Amazonka.LakeFormation.Types.TableObject+import Amazonka.LakeFormation.Types.TableResource+import Amazonka.LakeFormation.Types.TableWildcard+import Amazonka.LakeFormation.Types.TableWithColumnsResource+import Amazonka.LakeFormation.Types.TaggedDatabase+import Amazonka.LakeFormation.Types.TaggedTable+import Amazonka.LakeFormation.Types.TransactionDescription+import Amazonka.LakeFormation.Types.VirtualObject+import Amazonka.LakeFormation.Types.WorkUnitRange+import Amazonka.LakeFormation.Types.WriteOperation+import Amazonka.LakeFormation.UpdateLFTag+import Amazonka.LakeFormation.UpdateResource+import Amazonka.LakeFormation.UpdateTableObjects+import Amazonka.LakeFormation.UpdateTableStorageOptimizer
+ gen/Amazonka/LakeFormation/ListDataCellsFilter.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.LakeFormation.ListDataCellsFilter+-- 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 data cell filters on a table.+--+-- This operation returns paginated results.+module Amazonka.LakeFormation.ListDataCellsFilter+ ( -- * Creating a Request+ ListDataCellsFilter (..),+ newListDataCellsFilter,++ -- * Request Lenses+ listDataCellsFilter_maxResults,+ listDataCellsFilter_nextToken,+ listDataCellsFilter_table,++ -- * Destructuring the Response+ ListDataCellsFilterResponse (..),+ newListDataCellsFilterResponse,++ -- * Response Lenses+ listDataCellsFilterResponse_dataCellsFilters,+ listDataCellsFilterResponse_nextToken,+ listDataCellsFilterResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDataCellsFilter' smart constructor.+data ListDataCellsFilter = ListDataCellsFilter'+ { -- | The maximum size of the response.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A continuation token, if this is a continuation call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A table in the Glue Data Catalog.+ table :: Prelude.Maybe TableResource+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDataCellsFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listDataCellsFilter_maxResults' - The maximum size of the response.+--+-- 'nextToken', 'listDataCellsFilter_nextToken' - A continuation token, if this is a continuation call.+--+-- 'table', 'listDataCellsFilter_table' - A table in the Glue Data Catalog.+newListDataCellsFilter ::+ ListDataCellsFilter+newListDataCellsFilter =+ ListDataCellsFilter'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ table = Prelude.Nothing+ }++-- | The maximum size of the response.+listDataCellsFilter_maxResults :: Lens.Lens' ListDataCellsFilter (Prelude.Maybe Prelude.Natural)+listDataCellsFilter_maxResults = Lens.lens (\ListDataCellsFilter' {maxResults} -> maxResults) (\s@ListDataCellsFilter' {} a -> s {maxResults = a} :: ListDataCellsFilter)++-- | A continuation token, if this is a continuation call.+listDataCellsFilter_nextToken :: Lens.Lens' ListDataCellsFilter (Prelude.Maybe Prelude.Text)+listDataCellsFilter_nextToken = Lens.lens (\ListDataCellsFilter' {nextToken} -> nextToken) (\s@ListDataCellsFilter' {} a -> s {nextToken = a} :: ListDataCellsFilter)++-- | A table in the Glue Data Catalog.+listDataCellsFilter_table :: Lens.Lens' ListDataCellsFilter (Prelude.Maybe TableResource)+listDataCellsFilter_table = Lens.lens (\ListDataCellsFilter' {table} -> table) (\s@ListDataCellsFilter' {} a -> s {table = a} :: ListDataCellsFilter)++instance Core.AWSPager ListDataCellsFilter where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listDataCellsFilterResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listDataCellsFilterResponse_dataCellsFilters+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listDataCellsFilter_nextToken+ Lens..~ rs+ Lens.^? listDataCellsFilterResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListDataCellsFilter where+ type+ AWSResponse ListDataCellsFilter =+ ListDataCellsFilterResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListDataCellsFilterResponse'+ Prelude.<$> ( x+ Data..?> "DataCellsFilters"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListDataCellsFilter where+ hashWithSalt _salt ListDataCellsFilter' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` table++instance Prelude.NFData ListDataCellsFilter where+ rnf ListDataCellsFilter' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf table++instance Data.ToHeaders ListDataCellsFilter where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListDataCellsFilter where+ toJSON ListDataCellsFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("Table" Data..=) Prelude.<$> table+ ]+ )++instance Data.ToPath ListDataCellsFilter where+ toPath = Prelude.const "/ListDataCellsFilter"++instance Data.ToQuery ListDataCellsFilter where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListDataCellsFilterResponse' smart constructor.+data ListDataCellsFilterResponse = ListDataCellsFilterResponse'+ { -- | A list of @DataCellFilter@ structures.+ dataCellsFilters :: Prelude.Maybe [DataCellsFilter],+ -- | A continuation token, if not all requested data cell filters have been+ -- returned.+ 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 'ListDataCellsFilterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataCellsFilters', 'listDataCellsFilterResponse_dataCellsFilters' - A list of @DataCellFilter@ structures.+--+-- 'nextToken', 'listDataCellsFilterResponse_nextToken' - A continuation token, if not all requested data cell filters have been+-- returned.+--+-- 'httpStatus', 'listDataCellsFilterResponse_httpStatus' - The response's http status code.+newListDataCellsFilterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListDataCellsFilterResponse+newListDataCellsFilterResponse pHttpStatus_ =+ ListDataCellsFilterResponse'+ { dataCellsFilters =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of @DataCellFilter@ structures.+listDataCellsFilterResponse_dataCellsFilters :: Lens.Lens' ListDataCellsFilterResponse (Prelude.Maybe [DataCellsFilter])+listDataCellsFilterResponse_dataCellsFilters = Lens.lens (\ListDataCellsFilterResponse' {dataCellsFilters} -> dataCellsFilters) (\s@ListDataCellsFilterResponse' {} a -> s {dataCellsFilters = a} :: ListDataCellsFilterResponse) Prelude.. Lens.mapping Lens.coerced++-- | A continuation token, if not all requested data cell filters have been+-- returned.+listDataCellsFilterResponse_nextToken :: Lens.Lens' ListDataCellsFilterResponse (Prelude.Maybe Prelude.Text)+listDataCellsFilterResponse_nextToken = Lens.lens (\ListDataCellsFilterResponse' {nextToken} -> nextToken) (\s@ListDataCellsFilterResponse' {} a -> s {nextToken = a} :: ListDataCellsFilterResponse)++-- | The response's http status code.+listDataCellsFilterResponse_httpStatus :: Lens.Lens' ListDataCellsFilterResponse Prelude.Int+listDataCellsFilterResponse_httpStatus = Lens.lens (\ListDataCellsFilterResponse' {httpStatus} -> httpStatus) (\s@ListDataCellsFilterResponse' {} a -> s {httpStatus = a} :: ListDataCellsFilterResponse)++instance Prelude.NFData ListDataCellsFilterResponse where+ rnf ListDataCellsFilterResponse' {..} =+ Prelude.rnf dataCellsFilters+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/ListLFTags.hs view
@@ -0,0 +1,268 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.ListLFTags+-- 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 LF-tags that the requester has permission to view.+--+-- This operation returns paginated results.+module Amazonka.LakeFormation.ListLFTags+ ( -- * Creating a Request+ ListLFTags (..),+ newListLFTags,++ -- * Request Lenses+ listLFTags_catalogId,+ listLFTags_maxResults,+ listLFTags_nextToken,+ listLFTags_resourceShareType,++ -- * Destructuring the Response+ ListLFTagsResponse (..),+ newListLFTagsResponse,++ -- * Response Lenses+ listLFTagsResponse_lFTags,+ listLFTagsResponse_nextToken,+ listLFTagsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListLFTags' smart constructor.+data ListLFTags = ListLFTags'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of results to return.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A continuation token, if this is not the first call to retrieve this+ -- list.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | If resource share type is @ALL@, returns both in-account LF-tags and+ -- shared LF-tags that the requester has permission to view. If resource+ -- share type is @FOREIGN@, returns all share LF-tags that the requester+ -- can view. If no resource share type is passed, lists LF-tags in the+ -- given catalog ID that the requester has permission to view.+ resourceShareType :: Prelude.Maybe ResourceShareType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListLFTags' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'listLFTags_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'maxResults', 'listLFTags_maxResults' - The maximum number of results to return.+--+-- 'nextToken', 'listLFTags_nextToken' - A continuation token, if this is not the first call to retrieve this+-- list.+--+-- 'resourceShareType', 'listLFTags_resourceShareType' - If resource share type is @ALL@, returns both in-account LF-tags and+-- shared LF-tags that the requester has permission to view. If resource+-- share type is @FOREIGN@, returns all share LF-tags that the requester+-- can view. If no resource share type is passed, lists LF-tags in the+-- given catalog ID that the requester has permission to view.+newListLFTags ::+ ListLFTags+newListLFTags =+ ListLFTags'+ { catalogId = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ resourceShareType = Prelude.Nothing+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+listLFTags_catalogId :: Lens.Lens' ListLFTags (Prelude.Maybe Prelude.Text)+listLFTags_catalogId = Lens.lens (\ListLFTags' {catalogId} -> catalogId) (\s@ListLFTags' {} a -> s {catalogId = a} :: ListLFTags)++-- | The maximum number of results to return.+listLFTags_maxResults :: Lens.Lens' ListLFTags (Prelude.Maybe Prelude.Natural)+listLFTags_maxResults = Lens.lens (\ListLFTags' {maxResults} -> maxResults) (\s@ListLFTags' {} a -> s {maxResults = a} :: ListLFTags)++-- | A continuation token, if this is not the first call to retrieve this+-- list.+listLFTags_nextToken :: Lens.Lens' ListLFTags (Prelude.Maybe Prelude.Text)+listLFTags_nextToken = Lens.lens (\ListLFTags' {nextToken} -> nextToken) (\s@ListLFTags' {} a -> s {nextToken = a} :: ListLFTags)++-- | If resource share type is @ALL@, returns both in-account LF-tags and+-- shared LF-tags that the requester has permission to view. If resource+-- share type is @FOREIGN@, returns all share LF-tags that the requester+-- can view. If no resource share type is passed, lists LF-tags in the+-- given catalog ID that the requester has permission to view.+listLFTags_resourceShareType :: Lens.Lens' ListLFTags (Prelude.Maybe ResourceShareType)+listLFTags_resourceShareType = Lens.lens (\ListLFTags' {resourceShareType} -> resourceShareType) (\s@ListLFTags' {} a -> s {resourceShareType = a} :: ListLFTags)++instance Core.AWSPager ListLFTags where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listLFTagsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listLFTagsResponse_lFTags+ Prelude.. Lens._Just+ Prelude.. Lens.to Prelude.toList+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listLFTags_nextToken+ Lens..~ rs+ Lens.^? listLFTagsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListLFTags where+ type AWSResponse ListLFTags = ListLFTagsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListLFTagsResponse'+ Prelude.<$> (x Data..?> "LFTags")+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListLFTags where+ hashWithSalt _salt ListLFTags' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` resourceShareType++instance Prelude.NFData ListLFTags where+ rnf ListLFTags' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf resourceShareType++instance Data.ToHeaders ListLFTags where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListLFTags where+ toJSON ListLFTags' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("ResourceShareType" Data..=)+ Prelude.<$> resourceShareType+ ]+ )++instance Data.ToPath ListLFTags where+ toPath = Prelude.const "/ListLFTags"++instance Data.ToQuery ListLFTags where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListLFTagsResponse' smart constructor.+data ListLFTagsResponse = ListLFTagsResponse'+ { -- | A list of LF-tags that the requested has permission to view.+ lFTags :: Prelude.Maybe (Prelude.NonEmpty LFTagPair),+ -- | A continuation token, present if the current list segment is not the+ -- last.+ 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 'ListLFTagsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lFTags', 'listLFTagsResponse_lFTags' - A list of LF-tags that the requested has permission to view.+--+-- 'nextToken', 'listLFTagsResponse_nextToken' - A continuation token, present if the current list segment is not the+-- last.+--+-- 'httpStatus', 'listLFTagsResponse_httpStatus' - The response's http status code.+newListLFTagsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListLFTagsResponse+newListLFTagsResponse pHttpStatus_ =+ ListLFTagsResponse'+ { lFTags = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of LF-tags that the requested has permission to view.+listLFTagsResponse_lFTags :: Lens.Lens' ListLFTagsResponse (Prelude.Maybe (Prelude.NonEmpty LFTagPair))+listLFTagsResponse_lFTags = Lens.lens (\ListLFTagsResponse' {lFTags} -> lFTags) (\s@ListLFTagsResponse' {} a -> s {lFTags = a} :: ListLFTagsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A continuation token, present if the current list segment is not the+-- last.+listLFTagsResponse_nextToken :: Lens.Lens' ListLFTagsResponse (Prelude.Maybe Prelude.Text)+listLFTagsResponse_nextToken = Lens.lens (\ListLFTagsResponse' {nextToken} -> nextToken) (\s@ListLFTagsResponse' {} a -> s {nextToken = a} :: ListLFTagsResponse)++-- | The response's http status code.+listLFTagsResponse_httpStatus :: Lens.Lens' ListLFTagsResponse Prelude.Int+listLFTagsResponse_httpStatus = Lens.lens (\ListLFTagsResponse' {httpStatus} -> httpStatus) (\s@ListLFTagsResponse' {} a -> s {httpStatus = a} :: ListLFTagsResponse)++instance Prelude.NFData ListLFTagsResponse where+ rnf ListLFTagsResponse' {..} =+ Prelude.rnf lFTags+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/ListPermissions.hs view
@@ -0,0 +1,300 @@+{-# 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.LakeFormation.ListPermissions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of the principal permissions on the resource, filtered by+-- the permissions of the caller. For example, if you are granted an ALTER+-- permission, you are able to see only the principal permissions for+-- ALTER.+--+-- This operation returns only those permissions that have been explicitly+-- granted.+--+-- For information about permissions, see+-- <https://docs-aws.amazon.com/lake-formation/latest/dg/security-data-access.html Security and Access Control to Metadata and Data>.+module Amazonka.LakeFormation.ListPermissions+ ( -- * Creating a Request+ ListPermissions (..),+ newListPermissions,++ -- * Request Lenses+ listPermissions_catalogId,+ listPermissions_includeRelated,+ listPermissions_maxResults,+ listPermissions_nextToken,+ listPermissions_principal,+ listPermissions_resource,+ listPermissions_resourceType,++ -- * Destructuring the Response+ ListPermissionsResponse (..),+ newListPermissionsResponse,++ -- * Response Lenses+ listPermissionsResponse_nextToken,+ listPermissionsResponse_principalResourcePermissions,+ listPermissionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListPermissions' smart constructor.+data ListPermissions = ListPermissions'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | Indicates that related permissions should be included in the results.+ includeRelated :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of results to return.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A continuation token, if this is not the first call to retrieve this+ -- list.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Specifies a principal to filter the permissions returned.+ principal :: Prelude.Maybe DataLakePrincipal,+ -- | A resource where you will get a list of the principal permissions.+ --+ -- This operation does not support getting privileges on a table with+ -- columns. Instead, call this operation on the table, and the operation+ -- returns the table and the table w columns.+ resource :: Prelude.Maybe Resource,+ -- | Specifies a resource type to filter the permissions returned.+ resourceType :: Prelude.Maybe DataLakeResourceType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPermissions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'listPermissions_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'includeRelated', 'listPermissions_includeRelated' - Indicates that related permissions should be included in the results.+--+-- 'maxResults', 'listPermissions_maxResults' - The maximum number of results to return.+--+-- 'nextToken', 'listPermissions_nextToken' - A continuation token, if this is not the first call to retrieve this+-- list.+--+-- 'principal', 'listPermissions_principal' - Specifies a principal to filter the permissions returned.+--+-- 'resource', 'listPermissions_resource' - A resource where you will get a list of the principal permissions.+--+-- This operation does not support getting privileges on a table with+-- columns. Instead, call this operation on the table, and the operation+-- returns the table and the table w columns.+--+-- 'resourceType', 'listPermissions_resourceType' - Specifies a resource type to filter the permissions returned.+newListPermissions ::+ ListPermissions+newListPermissions =+ ListPermissions'+ { catalogId = Prelude.Nothing,+ includeRelated = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ principal = Prelude.Nothing,+ resource = Prelude.Nothing,+ resourceType = Prelude.Nothing+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+listPermissions_catalogId :: Lens.Lens' ListPermissions (Prelude.Maybe Prelude.Text)+listPermissions_catalogId = Lens.lens (\ListPermissions' {catalogId} -> catalogId) (\s@ListPermissions' {} a -> s {catalogId = a} :: ListPermissions)++-- | Indicates that related permissions should be included in the results.+listPermissions_includeRelated :: Lens.Lens' ListPermissions (Prelude.Maybe Prelude.Text)+listPermissions_includeRelated = Lens.lens (\ListPermissions' {includeRelated} -> includeRelated) (\s@ListPermissions' {} a -> s {includeRelated = a} :: ListPermissions)++-- | The maximum number of results to return.+listPermissions_maxResults :: Lens.Lens' ListPermissions (Prelude.Maybe Prelude.Natural)+listPermissions_maxResults = Lens.lens (\ListPermissions' {maxResults} -> maxResults) (\s@ListPermissions' {} a -> s {maxResults = a} :: ListPermissions)++-- | A continuation token, if this is not the first call to retrieve this+-- list.+listPermissions_nextToken :: Lens.Lens' ListPermissions (Prelude.Maybe Prelude.Text)+listPermissions_nextToken = Lens.lens (\ListPermissions' {nextToken} -> nextToken) (\s@ListPermissions' {} a -> s {nextToken = a} :: ListPermissions)++-- | Specifies a principal to filter the permissions returned.+listPermissions_principal :: Lens.Lens' ListPermissions (Prelude.Maybe DataLakePrincipal)+listPermissions_principal = Lens.lens (\ListPermissions' {principal} -> principal) (\s@ListPermissions' {} a -> s {principal = a} :: ListPermissions)++-- | A resource where you will get a list of the principal permissions.+--+-- This operation does not support getting privileges on a table with+-- columns. Instead, call this operation on the table, and the operation+-- returns the table and the table w columns.+listPermissions_resource :: Lens.Lens' ListPermissions (Prelude.Maybe Resource)+listPermissions_resource = Lens.lens (\ListPermissions' {resource} -> resource) (\s@ListPermissions' {} a -> s {resource = a} :: ListPermissions)++-- | Specifies a resource type to filter the permissions returned.+listPermissions_resourceType :: Lens.Lens' ListPermissions (Prelude.Maybe DataLakeResourceType)+listPermissions_resourceType = Lens.lens (\ListPermissions' {resourceType} -> resourceType) (\s@ListPermissions' {} a -> s {resourceType = a} :: ListPermissions)++instance Core.AWSRequest ListPermissions where+ type+ AWSResponse ListPermissions =+ ListPermissionsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListPermissionsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> ( x+ Data..?> "PrincipalResourcePermissions"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListPermissions where+ hashWithSalt _salt ListPermissions' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` includeRelated+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` principal+ `Prelude.hashWithSalt` resource+ `Prelude.hashWithSalt` resourceType++instance Prelude.NFData ListPermissions where+ rnf ListPermissions' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf includeRelated+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf principal+ `Prelude.seq` Prelude.rnf resource+ `Prelude.seq` Prelude.rnf resourceType++instance Data.ToHeaders ListPermissions where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListPermissions where+ toJSON ListPermissions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("IncludeRelated" Data..=)+ Prelude.<$> includeRelated,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("Principal" Data..=) Prelude.<$> principal,+ ("Resource" Data..=) Prelude.<$> resource,+ ("ResourceType" Data..=) Prelude.<$> resourceType+ ]+ )++instance Data.ToPath ListPermissions where+ toPath = Prelude.const "/ListPermissions"++instance Data.ToQuery ListPermissions where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListPermissionsResponse' smart constructor.+data ListPermissionsResponse = ListPermissionsResponse'+ { -- | A continuation token, if this is not the first call to retrieve this+ -- list.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of principals and their permissions on the resource for the+ -- specified principal and resource types.+ principalResourcePermissions :: Prelude.Maybe [PrincipalResourcePermissions],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPermissionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listPermissionsResponse_nextToken' - A continuation token, if this is not the first call to retrieve this+-- list.+--+-- 'principalResourcePermissions', 'listPermissionsResponse_principalResourcePermissions' - A list of principals and their permissions on the resource for the+-- specified principal and resource types.+--+-- 'httpStatus', 'listPermissionsResponse_httpStatus' - The response's http status code.+newListPermissionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListPermissionsResponse+newListPermissionsResponse pHttpStatus_ =+ ListPermissionsResponse'+ { nextToken =+ Prelude.Nothing,+ principalResourcePermissions = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A continuation token, if this is not the first call to retrieve this+-- list.+listPermissionsResponse_nextToken :: Lens.Lens' ListPermissionsResponse (Prelude.Maybe Prelude.Text)+listPermissionsResponse_nextToken = Lens.lens (\ListPermissionsResponse' {nextToken} -> nextToken) (\s@ListPermissionsResponse' {} a -> s {nextToken = a} :: ListPermissionsResponse)++-- | A list of principals and their permissions on the resource for the+-- specified principal and resource types.+listPermissionsResponse_principalResourcePermissions :: Lens.Lens' ListPermissionsResponse (Prelude.Maybe [PrincipalResourcePermissions])+listPermissionsResponse_principalResourcePermissions = Lens.lens (\ListPermissionsResponse' {principalResourcePermissions} -> principalResourcePermissions) (\s@ListPermissionsResponse' {} a -> s {principalResourcePermissions = a} :: ListPermissionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listPermissionsResponse_httpStatus :: Lens.Lens' ListPermissionsResponse Prelude.Int+listPermissionsResponse_httpStatus = Lens.lens (\ListPermissionsResponse' {httpStatus} -> httpStatus) (\s@ListPermissionsResponse' {} a -> s {httpStatus = a} :: ListPermissionsResponse)++instance Prelude.NFData ListPermissionsResponse where+ rnf ListPermissionsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf principalResourcePermissions+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/ListResources.hs view
@@ -0,0 +1,218 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.ListResources+-- 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 resources registered to be managed by the Data Catalog.+module Amazonka.LakeFormation.ListResources+ ( -- * Creating a Request+ ListResources (..),+ newListResources,++ -- * Request Lenses+ listResources_filterConditionList,+ listResources_maxResults,+ listResources_nextToken,++ -- * Destructuring the Response+ ListResourcesResponse (..),+ newListResourcesResponse,++ -- * Response Lenses+ listResourcesResponse_nextToken,+ listResourcesResponse_resourceInfoList,+ listResourcesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListResources' smart constructor.+data ListResources = ListResources'+ { -- | Any applicable row-level and\/or column-level filtering conditions for+ -- the resources.+ filterConditionList :: Prelude.Maybe (Prelude.NonEmpty FilterCondition),+ -- | The maximum number of resource results.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A continuation token, if this is not the first call to retrieve these+ -- resources.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListResources' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filterConditionList', 'listResources_filterConditionList' - Any applicable row-level and\/or column-level filtering conditions for+-- the resources.+--+-- 'maxResults', 'listResources_maxResults' - The maximum number of resource results.+--+-- 'nextToken', 'listResources_nextToken' - A continuation token, if this is not the first call to retrieve these+-- resources.+newListResources ::+ ListResources+newListResources =+ ListResources'+ { filterConditionList =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | Any applicable row-level and\/or column-level filtering conditions for+-- the resources.+listResources_filterConditionList :: Lens.Lens' ListResources (Prelude.Maybe (Prelude.NonEmpty FilterCondition))+listResources_filterConditionList = Lens.lens (\ListResources' {filterConditionList} -> filterConditionList) (\s@ListResources' {} a -> s {filterConditionList = a} :: ListResources) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of resource results.+listResources_maxResults :: Lens.Lens' ListResources (Prelude.Maybe Prelude.Natural)+listResources_maxResults = Lens.lens (\ListResources' {maxResults} -> maxResults) (\s@ListResources' {} a -> s {maxResults = a} :: ListResources)++-- | A continuation token, if this is not the first call to retrieve these+-- resources.+listResources_nextToken :: Lens.Lens' ListResources (Prelude.Maybe Prelude.Text)+listResources_nextToken = Lens.lens (\ListResources' {nextToken} -> nextToken) (\s@ListResources' {} a -> s {nextToken = a} :: ListResources)++instance Core.AWSRequest ListResources where+ type+ AWSResponse ListResources =+ ListResourcesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListResourcesResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> ( x+ Data..?> "ResourceInfoList"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListResources where+ hashWithSalt _salt ListResources' {..} =+ _salt+ `Prelude.hashWithSalt` filterConditionList+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListResources where+ rnf ListResources' {..} =+ Prelude.rnf filterConditionList+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListResources where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListResources where+ toJSON ListResources' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("FilterConditionList" Data..=)+ Prelude.<$> filterConditionList,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken+ ]+ )++instance Data.ToPath ListResources where+ toPath = Prelude.const "/ListResources"++instance Data.ToQuery ListResources where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListResourcesResponse' smart constructor.+data ListResourcesResponse = ListResourcesResponse'+ { -- | A continuation token, if this is not the first call to retrieve these+ -- resources.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A summary of the data lake resources.+ resourceInfoList :: Prelude.Maybe [ResourceInfo],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListResourcesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listResourcesResponse_nextToken' - A continuation token, if this is not the first call to retrieve these+-- resources.+--+-- 'resourceInfoList', 'listResourcesResponse_resourceInfoList' - A summary of the data lake resources.+--+-- 'httpStatus', 'listResourcesResponse_httpStatus' - The response's http status code.+newListResourcesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListResourcesResponse+newListResourcesResponse pHttpStatus_ =+ ListResourcesResponse'+ { nextToken = Prelude.Nothing,+ resourceInfoList = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A continuation token, if this is not the first call to retrieve these+-- resources.+listResourcesResponse_nextToken :: Lens.Lens' ListResourcesResponse (Prelude.Maybe Prelude.Text)+listResourcesResponse_nextToken = Lens.lens (\ListResourcesResponse' {nextToken} -> nextToken) (\s@ListResourcesResponse' {} a -> s {nextToken = a} :: ListResourcesResponse)++-- | A summary of the data lake resources.+listResourcesResponse_resourceInfoList :: Lens.Lens' ListResourcesResponse (Prelude.Maybe [ResourceInfo])+listResourcesResponse_resourceInfoList = Lens.lens (\ListResourcesResponse' {resourceInfoList} -> resourceInfoList) (\s@ListResourcesResponse' {} a -> s {resourceInfoList = a} :: ListResourcesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listResourcesResponse_httpStatus :: Lens.Lens' ListResourcesResponse Prelude.Int+listResourcesResponse_httpStatus = Lens.lens (\ListResourcesResponse' {httpStatus} -> httpStatus) (\s@ListResourcesResponse' {} a -> s {httpStatus = a} :: ListResourcesResponse)++instance Prelude.NFData ListResourcesResponse where+ rnf ListResourcesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf resourceInfoList+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/ListTableStorageOptimizers.hs view
@@ -0,0 +1,265 @@+{-# 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.LakeFormation.ListTableStorageOptimizers+-- 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 configuration of all storage optimizers associated with a+-- specified table.+module Amazonka.LakeFormation.ListTableStorageOptimizers+ ( -- * Creating a Request+ ListTableStorageOptimizers (..),+ newListTableStorageOptimizers,++ -- * Request Lenses+ listTableStorageOptimizers_catalogId,+ listTableStorageOptimizers_maxResults,+ listTableStorageOptimizers_nextToken,+ listTableStorageOptimizers_storageOptimizerType,+ listTableStorageOptimizers_databaseName,+ listTableStorageOptimizers_tableName,++ -- * Destructuring the Response+ ListTableStorageOptimizersResponse (..),+ newListTableStorageOptimizersResponse,++ -- * Response Lenses+ listTableStorageOptimizersResponse_nextToken,+ listTableStorageOptimizersResponse_storageOptimizerList,+ listTableStorageOptimizersResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTableStorageOptimizers' smart constructor.+data ListTableStorageOptimizers = ListTableStorageOptimizers'+ { -- | The Catalog ID of the table.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The number of storage optimizers to return on each call.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A continuation token, if this is a continuation call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The specific type of storage optimizers to list. The supported value is+ -- @compaction@.+ storageOptimizerType :: Prelude.Maybe OptimizerType,+ -- | Name of the database where the table is present.+ databaseName :: Prelude.Text,+ -- | Name of the table.+ tableName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTableStorageOptimizers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'listTableStorageOptimizers_catalogId' - The Catalog ID of the table.+--+-- 'maxResults', 'listTableStorageOptimizers_maxResults' - The number of storage optimizers to return on each call.+--+-- 'nextToken', 'listTableStorageOptimizers_nextToken' - A continuation token, if this is a continuation call.+--+-- 'storageOptimizerType', 'listTableStorageOptimizers_storageOptimizerType' - The specific type of storage optimizers to list. The supported value is+-- @compaction@.+--+-- 'databaseName', 'listTableStorageOptimizers_databaseName' - Name of the database where the table is present.+--+-- 'tableName', 'listTableStorageOptimizers_tableName' - Name of the table.+newListTableStorageOptimizers ::+ -- | 'databaseName'+ Prelude.Text ->+ -- | 'tableName'+ Prelude.Text ->+ ListTableStorageOptimizers+newListTableStorageOptimizers+ pDatabaseName_+ pTableName_ =+ ListTableStorageOptimizers'+ { catalogId =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ storageOptimizerType = Prelude.Nothing,+ databaseName = pDatabaseName_,+ tableName = pTableName_+ }++-- | The Catalog ID of the table.+listTableStorageOptimizers_catalogId :: Lens.Lens' ListTableStorageOptimizers (Prelude.Maybe Prelude.Text)+listTableStorageOptimizers_catalogId = Lens.lens (\ListTableStorageOptimizers' {catalogId} -> catalogId) (\s@ListTableStorageOptimizers' {} a -> s {catalogId = a} :: ListTableStorageOptimizers)++-- | The number of storage optimizers to return on each call.+listTableStorageOptimizers_maxResults :: Lens.Lens' ListTableStorageOptimizers (Prelude.Maybe Prelude.Natural)+listTableStorageOptimizers_maxResults = Lens.lens (\ListTableStorageOptimizers' {maxResults} -> maxResults) (\s@ListTableStorageOptimizers' {} a -> s {maxResults = a} :: ListTableStorageOptimizers)++-- | A continuation token, if this is a continuation call.+listTableStorageOptimizers_nextToken :: Lens.Lens' ListTableStorageOptimizers (Prelude.Maybe Prelude.Text)+listTableStorageOptimizers_nextToken = Lens.lens (\ListTableStorageOptimizers' {nextToken} -> nextToken) (\s@ListTableStorageOptimizers' {} a -> s {nextToken = a} :: ListTableStorageOptimizers)++-- | The specific type of storage optimizers to list. The supported value is+-- @compaction@.+listTableStorageOptimizers_storageOptimizerType :: Lens.Lens' ListTableStorageOptimizers (Prelude.Maybe OptimizerType)+listTableStorageOptimizers_storageOptimizerType = Lens.lens (\ListTableStorageOptimizers' {storageOptimizerType} -> storageOptimizerType) (\s@ListTableStorageOptimizers' {} a -> s {storageOptimizerType = a} :: ListTableStorageOptimizers)++-- | Name of the database where the table is present.+listTableStorageOptimizers_databaseName :: Lens.Lens' ListTableStorageOptimizers Prelude.Text+listTableStorageOptimizers_databaseName = Lens.lens (\ListTableStorageOptimizers' {databaseName} -> databaseName) (\s@ListTableStorageOptimizers' {} a -> s {databaseName = a} :: ListTableStorageOptimizers)++-- | Name of the table.+listTableStorageOptimizers_tableName :: Lens.Lens' ListTableStorageOptimizers Prelude.Text+listTableStorageOptimizers_tableName = Lens.lens (\ListTableStorageOptimizers' {tableName} -> tableName) (\s@ListTableStorageOptimizers' {} a -> s {tableName = a} :: ListTableStorageOptimizers)++instance Core.AWSRequest ListTableStorageOptimizers where+ type+ AWSResponse ListTableStorageOptimizers =+ ListTableStorageOptimizersResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListTableStorageOptimizersResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> ( x+ Data..?> "StorageOptimizerList"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListTableStorageOptimizers where+ hashWithSalt _salt ListTableStorageOptimizers' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` storageOptimizerType+ `Prelude.hashWithSalt` databaseName+ `Prelude.hashWithSalt` tableName++instance Prelude.NFData ListTableStorageOptimizers where+ rnf ListTableStorageOptimizers' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf storageOptimizerType+ `Prelude.seq` Prelude.rnf databaseName+ `Prelude.seq` Prelude.rnf tableName++instance Data.ToHeaders ListTableStorageOptimizers where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListTableStorageOptimizers where+ toJSON ListTableStorageOptimizers' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("StorageOptimizerType" Data..=)+ Prelude.<$> storageOptimizerType,+ Prelude.Just ("DatabaseName" Data..= databaseName),+ Prelude.Just ("TableName" Data..= tableName)+ ]+ )++instance Data.ToPath ListTableStorageOptimizers where+ toPath = Prelude.const "/ListTableStorageOptimizers"++instance Data.ToQuery ListTableStorageOptimizers where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTableStorageOptimizersResponse' smart constructor.+data ListTableStorageOptimizersResponse = ListTableStorageOptimizersResponse'+ { -- | A continuation token for paginating the returned list of tokens,+ -- returned if the current segment of the list is not the last.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of the storage optimizers associated with a table.+ storageOptimizerList :: Prelude.Maybe [StorageOptimizer],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTableStorageOptimizersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listTableStorageOptimizersResponse_nextToken' - A continuation token for paginating the returned list of tokens,+-- returned if the current segment of the list is not the last.+--+-- 'storageOptimizerList', 'listTableStorageOptimizersResponse_storageOptimizerList' - A list of the storage optimizers associated with a table.+--+-- 'httpStatus', 'listTableStorageOptimizersResponse_httpStatus' - The response's http status code.+newListTableStorageOptimizersResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListTableStorageOptimizersResponse+newListTableStorageOptimizersResponse pHttpStatus_ =+ ListTableStorageOptimizersResponse'+ { nextToken =+ Prelude.Nothing,+ storageOptimizerList = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A continuation token for paginating the returned list of tokens,+-- returned if the current segment of the list is not the last.+listTableStorageOptimizersResponse_nextToken :: Lens.Lens' ListTableStorageOptimizersResponse (Prelude.Maybe Prelude.Text)+listTableStorageOptimizersResponse_nextToken = Lens.lens (\ListTableStorageOptimizersResponse' {nextToken} -> nextToken) (\s@ListTableStorageOptimizersResponse' {} a -> s {nextToken = a} :: ListTableStorageOptimizersResponse)++-- | A list of the storage optimizers associated with a table.+listTableStorageOptimizersResponse_storageOptimizerList :: Lens.Lens' ListTableStorageOptimizersResponse (Prelude.Maybe [StorageOptimizer])+listTableStorageOptimizersResponse_storageOptimizerList = Lens.lens (\ListTableStorageOptimizersResponse' {storageOptimizerList} -> storageOptimizerList) (\s@ListTableStorageOptimizersResponse' {} a -> s {storageOptimizerList = a} :: ListTableStorageOptimizersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTableStorageOptimizersResponse_httpStatus :: Lens.Lens' ListTableStorageOptimizersResponse Prelude.Int+listTableStorageOptimizersResponse_httpStatus = Lens.lens (\ListTableStorageOptimizersResponse' {httpStatus} -> httpStatus) (\s@ListTableStorageOptimizersResponse' {} a -> s {httpStatus = a} :: ListTableStorageOptimizersResponse)++instance+ Prelude.NFData+ ListTableStorageOptimizersResponse+ where+ rnf ListTableStorageOptimizersResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf storageOptimizerList+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/ListTransactions.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.LakeFormation.ListTransactions+-- 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 metadata about transactions and their status. To prevent the+-- response from growing indefinitely, only uncommitted transactions and+-- those available for time-travel queries are returned.+--+-- This operation can help you identify uncommitted transactions or to get+-- information about transactions.+module Amazonka.LakeFormation.ListTransactions+ ( -- * Creating a Request+ ListTransactions (..),+ newListTransactions,++ -- * Request Lenses+ listTransactions_catalogId,+ listTransactions_maxResults,+ listTransactions_nextToken,+ listTransactions_statusFilter,++ -- * Destructuring the Response+ ListTransactionsResponse (..),+ newListTransactionsResponse,++ -- * Response Lenses+ listTransactionsResponse_nextToken,+ listTransactionsResponse_transactions,+ listTransactionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTransactions' smart constructor.+data ListTransactions = ListTransactions'+ { -- | The catalog for which to list transactions. Defaults to the account ID+ -- of the caller.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of transactions to return in a single call.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A continuation token if this is not the first call to retrieve+ -- transactions.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A filter indicating the status of transactions to return. Options are+ -- ALL | COMPLETED | COMMITTED | ABORTED | ACTIVE. The default is @ALL@.+ statusFilter :: Prelude.Maybe TransactionStatusFilter+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTransactions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'listTransactions_catalogId' - The catalog for which to list transactions. Defaults to the account ID+-- of the caller.+--+-- 'maxResults', 'listTransactions_maxResults' - The maximum number of transactions to return in a single call.+--+-- 'nextToken', 'listTransactions_nextToken' - A continuation token if this is not the first call to retrieve+-- transactions.+--+-- 'statusFilter', 'listTransactions_statusFilter' - A filter indicating the status of transactions to return. Options are+-- ALL | COMPLETED | COMMITTED | ABORTED | ACTIVE. The default is @ALL@.+newListTransactions ::+ ListTransactions+newListTransactions =+ ListTransactions'+ { catalogId = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ statusFilter = Prelude.Nothing+ }++-- | The catalog for which to list transactions. Defaults to the account ID+-- of the caller.+listTransactions_catalogId :: Lens.Lens' ListTransactions (Prelude.Maybe Prelude.Text)+listTransactions_catalogId = Lens.lens (\ListTransactions' {catalogId} -> catalogId) (\s@ListTransactions' {} a -> s {catalogId = a} :: ListTransactions)++-- | The maximum number of transactions to return in a single call.+listTransactions_maxResults :: Lens.Lens' ListTransactions (Prelude.Maybe Prelude.Natural)+listTransactions_maxResults = Lens.lens (\ListTransactions' {maxResults} -> maxResults) (\s@ListTransactions' {} a -> s {maxResults = a} :: ListTransactions)++-- | A continuation token if this is not the first call to retrieve+-- transactions.+listTransactions_nextToken :: Lens.Lens' ListTransactions (Prelude.Maybe Prelude.Text)+listTransactions_nextToken = Lens.lens (\ListTransactions' {nextToken} -> nextToken) (\s@ListTransactions' {} a -> s {nextToken = a} :: ListTransactions)++-- | A filter indicating the status of transactions to return. Options are+-- ALL | COMPLETED | COMMITTED | ABORTED | ACTIVE. The default is @ALL@.+listTransactions_statusFilter :: Lens.Lens' ListTransactions (Prelude.Maybe TransactionStatusFilter)+listTransactions_statusFilter = Lens.lens (\ListTransactions' {statusFilter} -> statusFilter) (\s@ListTransactions' {} a -> s {statusFilter = a} :: ListTransactions)++instance Core.AWSRequest ListTransactions where+ type+ AWSResponse ListTransactions =+ ListTransactionsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListTransactionsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "Transactions" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListTransactions where+ hashWithSalt _salt ListTransactions' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` statusFilter++instance Prelude.NFData ListTransactions where+ rnf ListTransactions' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf statusFilter++instance Data.ToHeaders ListTransactions where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListTransactions where+ toJSON ListTransactions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("StatusFilter" Data..=) Prelude.<$> statusFilter+ ]+ )++instance Data.ToPath ListTransactions where+ toPath = Prelude.const "/ListTransactions"++instance Data.ToQuery ListTransactions where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTransactionsResponse' smart constructor.+data ListTransactionsResponse = ListTransactionsResponse'+ { -- | A continuation token indicating whether additional data is available.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of transactions. The record for each transaction is a+ -- @TransactionDescription@ object.+ transactions :: Prelude.Maybe [TransactionDescription],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTransactionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listTransactionsResponse_nextToken' - A continuation token indicating whether additional data is available.+--+-- 'transactions', 'listTransactionsResponse_transactions' - A list of transactions. The record for each transaction is a+-- @TransactionDescription@ object.+--+-- 'httpStatus', 'listTransactionsResponse_httpStatus' - The response's http status code.+newListTransactionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListTransactionsResponse+newListTransactionsResponse pHttpStatus_ =+ ListTransactionsResponse'+ { nextToken =+ Prelude.Nothing,+ transactions = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A continuation token indicating whether additional data is available.+listTransactionsResponse_nextToken :: Lens.Lens' ListTransactionsResponse (Prelude.Maybe Prelude.Text)+listTransactionsResponse_nextToken = Lens.lens (\ListTransactionsResponse' {nextToken} -> nextToken) (\s@ListTransactionsResponse' {} a -> s {nextToken = a} :: ListTransactionsResponse)++-- | A list of transactions. The record for each transaction is a+-- @TransactionDescription@ object.+listTransactionsResponse_transactions :: Lens.Lens' ListTransactionsResponse (Prelude.Maybe [TransactionDescription])+listTransactionsResponse_transactions = Lens.lens (\ListTransactionsResponse' {transactions} -> transactions) (\s@ListTransactionsResponse' {} a -> s {transactions = a} :: ListTransactionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTransactionsResponse_httpStatus :: Lens.Lens' ListTransactionsResponse Prelude.Int+listTransactionsResponse_httpStatus = Lens.lens (\ListTransactionsResponse' {httpStatus} -> httpStatus) (\s@ListTransactionsResponse' {} a -> s {httpStatus = a} :: ListTransactionsResponse)++instance Prelude.NFData ListTransactionsResponse where+ rnf ListTransactionsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf transactions+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/PutDataLakeSettings.hs view
@@ -0,0 +1,190 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.PutDataLakeSettings+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets the list of data lake administrators who have admin privileges on+-- all resources managed by Lake Formation. For more information on admin+-- privileges, see+-- <https://docs.aws.amazon.com/lake-formation/latest/dg/lake-formation-permissions.html Granting Lake Formation Permissions>.+--+-- This API replaces the current list of data lake admins with the new list+-- being passed. To add an admin, fetch the current list and add the new+-- admin to that list and pass that list in this API.+module Amazonka.LakeFormation.PutDataLakeSettings+ ( -- * Creating a Request+ PutDataLakeSettings (..),+ newPutDataLakeSettings,++ -- * Request Lenses+ putDataLakeSettings_catalogId,+ putDataLakeSettings_dataLakeSettings,++ -- * Destructuring the Response+ PutDataLakeSettingsResponse (..),+ newPutDataLakeSettingsResponse,++ -- * Response Lenses+ putDataLakeSettingsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutDataLakeSettings' smart constructor.+data PutDataLakeSettings = PutDataLakeSettings'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | A structure representing a list of Lake Formation principals designated+ -- as data lake administrators.+ dataLakeSettings :: DataLakeSettings+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutDataLakeSettings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'putDataLakeSettings_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'dataLakeSettings', 'putDataLakeSettings_dataLakeSettings' - A structure representing a list of Lake Formation principals designated+-- as data lake administrators.+newPutDataLakeSettings ::+ -- | 'dataLakeSettings'+ DataLakeSettings ->+ PutDataLakeSettings+newPutDataLakeSettings pDataLakeSettings_ =+ PutDataLakeSettings'+ { catalogId = Prelude.Nothing,+ dataLakeSettings = pDataLakeSettings_+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+putDataLakeSettings_catalogId :: Lens.Lens' PutDataLakeSettings (Prelude.Maybe Prelude.Text)+putDataLakeSettings_catalogId = Lens.lens (\PutDataLakeSettings' {catalogId} -> catalogId) (\s@PutDataLakeSettings' {} a -> s {catalogId = a} :: PutDataLakeSettings)++-- | A structure representing a list of Lake Formation principals designated+-- as data lake administrators.+putDataLakeSettings_dataLakeSettings :: Lens.Lens' PutDataLakeSettings DataLakeSettings+putDataLakeSettings_dataLakeSettings = Lens.lens (\PutDataLakeSettings' {dataLakeSettings} -> dataLakeSettings) (\s@PutDataLakeSettings' {} a -> s {dataLakeSettings = a} :: PutDataLakeSettings)++instance Core.AWSRequest PutDataLakeSettings where+ type+ AWSResponse PutDataLakeSettings =+ PutDataLakeSettingsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutDataLakeSettingsResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable PutDataLakeSettings where+ hashWithSalt _salt PutDataLakeSettings' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` dataLakeSettings++instance Prelude.NFData PutDataLakeSettings where+ rnf PutDataLakeSettings' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf dataLakeSettings++instance Data.ToHeaders PutDataLakeSettings where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutDataLakeSettings where+ toJSON PutDataLakeSettings' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ Prelude.Just+ ("DataLakeSettings" Data..= dataLakeSettings)+ ]+ )++instance Data.ToPath PutDataLakeSettings where+ toPath = Prelude.const "/PutDataLakeSettings"++instance Data.ToQuery PutDataLakeSettings where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutDataLakeSettingsResponse' smart constructor.+data PutDataLakeSettingsResponse = PutDataLakeSettingsResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutDataLakeSettingsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'putDataLakeSettingsResponse_httpStatus' - The response's http status code.+newPutDataLakeSettingsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutDataLakeSettingsResponse+newPutDataLakeSettingsResponse pHttpStatus_ =+ PutDataLakeSettingsResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putDataLakeSettingsResponse_httpStatus :: Lens.Lens' PutDataLakeSettingsResponse Prelude.Int+putDataLakeSettingsResponse_httpStatus = Lens.lens (\PutDataLakeSettingsResponse' {httpStatus} -> httpStatus) (\s@PutDataLakeSettingsResponse' {} a -> s {httpStatus = a} :: PutDataLakeSettingsResponse)++instance Prelude.NFData PutDataLakeSettingsResponse where+ rnf PutDataLakeSettingsResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/RegisterResource.hs view
@@ -0,0 +1,221 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.RegisterResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Registers the resource as managed by the Data Catalog.+--+-- To add or update data, Lake Formation needs read\/write access to the+-- chosen Amazon S3 path. Choose a role that you know has permission to do+-- this, or choose the AWSServiceRoleForLakeFormationDataAccess+-- service-linked role. When you register the first Amazon S3 path, the+-- service-linked role and a new inline policy are created on your behalf.+-- Lake Formation adds the first path to the inline policy and attaches it+-- to the service-linked role. When you register subsequent paths, Lake+-- Formation adds the path to the existing policy.+--+-- The following request registers a new location and gives Lake Formation+-- permission to use the service-linked role to access that location.+--+-- @ResourceArn = arn:aws:s3:::my-bucket UseServiceLinkedRole = true@+--+-- If @UseServiceLinkedRole@ is not set to true, you must provide or set+-- the @RoleArn@:+--+-- @arn:aws:iam::12345:role\/my-data-access-role@+module Amazonka.LakeFormation.RegisterResource+ ( -- * Creating a Request+ RegisterResource (..),+ newRegisterResource,++ -- * Request Lenses+ registerResource_roleArn,+ registerResource_useServiceLinkedRole,+ registerResource_resourceArn,++ -- * Destructuring the Response+ RegisterResourceResponse (..),+ newRegisterResourceResponse,++ -- * Response Lenses+ registerResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRegisterResource' smart constructor.+data RegisterResource = RegisterResource'+ { -- | The identifier for the role that registers the resource.+ roleArn :: Prelude.Maybe Prelude.Text,+ -- | Designates an Identity and Access Management (IAM) service-linked role+ -- by registering this role with the Data Catalog. A service-linked role is+ -- a unique type of IAM role that is linked directly to Lake Formation.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/lake-formation/latest/dg/service-linked-roles.html Using Service-Linked Roles for Lake Formation>.+ useServiceLinkedRole :: Prelude.Maybe Prelude.Bool,+ -- | The Amazon Resource Name (ARN) of the resource that you want to+ -- register.+ resourceArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RegisterResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'roleArn', 'registerResource_roleArn' - The identifier for the role that registers the resource.+--+-- 'useServiceLinkedRole', 'registerResource_useServiceLinkedRole' - Designates an Identity and Access Management (IAM) service-linked role+-- by registering this role with the Data Catalog. A service-linked role is+-- a unique type of IAM role that is linked directly to Lake Formation.+--+-- For more information, see+-- <https://docs.aws.amazon.com/lake-formation/latest/dg/service-linked-roles.html Using Service-Linked Roles for Lake Formation>.+--+-- 'resourceArn', 'registerResource_resourceArn' - The Amazon Resource Name (ARN) of the resource that you want to+-- register.+newRegisterResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ RegisterResource+newRegisterResource pResourceArn_ =+ RegisterResource'+ { roleArn = Prelude.Nothing,+ useServiceLinkedRole = Prelude.Nothing,+ resourceArn = pResourceArn_+ }++-- | The identifier for the role that registers the resource.+registerResource_roleArn :: Lens.Lens' RegisterResource (Prelude.Maybe Prelude.Text)+registerResource_roleArn = Lens.lens (\RegisterResource' {roleArn} -> roleArn) (\s@RegisterResource' {} a -> s {roleArn = a} :: RegisterResource)++-- | Designates an Identity and Access Management (IAM) service-linked role+-- by registering this role with the Data Catalog. A service-linked role is+-- a unique type of IAM role that is linked directly to Lake Formation.+--+-- For more information, see+-- <https://docs.aws.amazon.com/lake-formation/latest/dg/service-linked-roles.html Using Service-Linked Roles for Lake Formation>.+registerResource_useServiceLinkedRole :: Lens.Lens' RegisterResource (Prelude.Maybe Prelude.Bool)+registerResource_useServiceLinkedRole = Lens.lens (\RegisterResource' {useServiceLinkedRole} -> useServiceLinkedRole) (\s@RegisterResource' {} a -> s {useServiceLinkedRole = a} :: RegisterResource)++-- | The Amazon Resource Name (ARN) of the resource that you want to+-- register.+registerResource_resourceArn :: Lens.Lens' RegisterResource Prelude.Text+registerResource_resourceArn = Lens.lens (\RegisterResource' {resourceArn} -> resourceArn) (\s@RegisterResource' {} a -> s {resourceArn = a} :: RegisterResource)++instance Core.AWSRequest RegisterResource where+ type+ AWSResponse RegisterResource =+ RegisterResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ RegisterResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable RegisterResource where+ hashWithSalt _salt RegisterResource' {..} =+ _salt+ `Prelude.hashWithSalt` roleArn+ `Prelude.hashWithSalt` useServiceLinkedRole+ `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData RegisterResource where+ rnf RegisterResource' {..} =+ Prelude.rnf roleArn+ `Prelude.seq` Prelude.rnf useServiceLinkedRole+ `Prelude.seq` Prelude.rnf resourceArn++instance Data.ToHeaders RegisterResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON RegisterResource where+ toJSON RegisterResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("RoleArn" Data..=) Prelude.<$> roleArn,+ ("UseServiceLinkedRole" Data..=)+ Prelude.<$> useServiceLinkedRole,+ Prelude.Just ("ResourceArn" Data..= resourceArn)+ ]+ )++instance Data.ToPath RegisterResource where+ toPath = Prelude.const "/RegisterResource"++instance Data.ToQuery RegisterResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRegisterResourceResponse' smart constructor.+data RegisterResourceResponse = RegisterResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RegisterResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'registerResourceResponse_httpStatus' - The response's http status code.+newRegisterResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ RegisterResourceResponse+newRegisterResourceResponse pHttpStatus_ =+ RegisterResourceResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+registerResourceResponse_httpStatus :: Lens.Lens' RegisterResourceResponse Prelude.Int+registerResourceResponse_httpStatus = Lens.lens (\RegisterResourceResponse' {httpStatus} -> httpStatus) (\s@RegisterResourceResponse' {} a -> s {httpStatus = a} :: RegisterResourceResponse)++instance Prelude.NFData RegisterResourceResponse where+ rnf RegisterResourceResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/RemoveLFTagsFromResource.hs view
@@ -0,0 +1,215 @@+{-# 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.LakeFormation.RemoveLFTagsFromResource+-- 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 an LF-tag from the resource. Only database, table, or+-- tableWithColumns resource are allowed. To tag columns, use the column+-- inclusion list in @tableWithColumns@ to specify column input.+module Amazonka.LakeFormation.RemoveLFTagsFromResource+ ( -- * Creating a Request+ RemoveLFTagsFromResource (..),+ newRemoveLFTagsFromResource,++ -- * Request Lenses+ removeLFTagsFromResource_catalogId,+ removeLFTagsFromResource_resource,+ removeLFTagsFromResource_lFTags,++ -- * Destructuring the Response+ RemoveLFTagsFromResourceResponse (..),+ newRemoveLFTagsFromResourceResponse,++ -- * Response Lenses+ removeLFTagsFromResourceResponse_failures,+ removeLFTagsFromResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRemoveLFTagsFromResource' smart constructor.+data RemoveLFTagsFromResource = RemoveLFTagsFromResource'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The database, table, or column resource where you want to remove an+ -- LF-tag.+ resource :: Resource,+ -- | The LF-tags to be removed from the resource.+ lFTags :: Prelude.NonEmpty LFTagPair+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveLFTagsFromResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'removeLFTagsFromResource_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'resource', 'removeLFTagsFromResource_resource' - The database, table, or column resource where you want to remove an+-- LF-tag.+--+-- 'lFTags', 'removeLFTagsFromResource_lFTags' - The LF-tags to be removed from the resource.+newRemoveLFTagsFromResource ::+ -- | 'resource'+ Resource ->+ -- | 'lFTags'+ Prelude.NonEmpty LFTagPair ->+ RemoveLFTagsFromResource+newRemoveLFTagsFromResource pResource_ pLFTags_ =+ RemoveLFTagsFromResource'+ { catalogId =+ Prelude.Nothing,+ resource = pResource_,+ lFTags = Lens.coerced Lens.# pLFTags_+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+removeLFTagsFromResource_catalogId :: Lens.Lens' RemoveLFTagsFromResource (Prelude.Maybe Prelude.Text)+removeLFTagsFromResource_catalogId = Lens.lens (\RemoveLFTagsFromResource' {catalogId} -> catalogId) (\s@RemoveLFTagsFromResource' {} a -> s {catalogId = a} :: RemoveLFTagsFromResource)++-- | The database, table, or column resource where you want to remove an+-- LF-tag.+removeLFTagsFromResource_resource :: Lens.Lens' RemoveLFTagsFromResource Resource+removeLFTagsFromResource_resource = Lens.lens (\RemoveLFTagsFromResource' {resource} -> resource) (\s@RemoveLFTagsFromResource' {} a -> s {resource = a} :: RemoveLFTagsFromResource)++-- | The LF-tags to be removed from the resource.+removeLFTagsFromResource_lFTags :: Lens.Lens' RemoveLFTagsFromResource (Prelude.NonEmpty LFTagPair)+removeLFTagsFromResource_lFTags = Lens.lens (\RemoveLFTagsFromResource' {lFTags} -> lFTags) (\s@RemoveLFTagsFromResource' {} a -> s {lFTags = a} :: RemoveLFTagsFromResource) Prelude.. Lens.coerced++instance Core.AWSRequest RemoveLFTagsFromResource where+ type+ AWSResponse RemoveLFTagsFromResource =+ RemoveLFTagsFromResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ RemoveLFTagsFromResourceResponse'+ Prelude.<$> (x Data..?> "Failures" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable RemoveLFTagsFromResource where+ hashWithSalt _salt RemoveLFTagsFromResource' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` resource+ `Prelude.hashWithSalt` lFTags++instance Prelude.NFData RemoveLFTagsFromResource where+ rnf RemoveLFTagsFromResource' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf resource+ `Prelude.seq` Prelude.rnf lFTags++instance Data.ToHeaders RemoveLFTagsFromResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON RemoveLFTagsFromResource where+ toJSON RemoveLFTagsFromResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ Prelude.Just ("Resource" Data..= resource),+ Prelude.Just ("LFTags" Data..= lFTags)+ ]+ )++instance Data.ToPath RemoveLFTagsFromResource where+ toPath = Prelude.const "/RemoveLFTagsFromResource"++instance Data.ToQuery RemoveLFTagsFromResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRemoveLFTagsFromResourceResponse' smart constructor.+data RemoveLFTagsFromResourceResponse = RemoveLFTagsFromResourceResponse'+ { -- | A list of failures to untag a resource.+ failures :: Prelude.Maybe [LFTagError],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveLFTagsFromResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failures', 'removeLFTagsFromResourceResponse_failures' - A list of failures to untag a resource.+--+-- 'httpStatus', 'removeLFTagsFromResourceResponse_httpStatus' - The response's http status code.+newRemoveLFTagsFromResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ RemoveLFTagsFromResourceResponse+newRemoveLFTagsFromResourceResponse pHttpStatus_ =+ RemoveLFTagsFromResourceResponse'+ { failures =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of failures to untag a resource.+removeLFTagsFromResourceResponse_failures :: Lens.Lens' RemoveLFTagsFromResourceResponse (Prelude.Maybe [LFTagError])+removeLFTagsFromResourceResponse_failures = Lens.lens (\RemoveLFTagsFromResourceResponse' {failures} -> failures) (\s@RemoveLFTagsFromResourceResponse' {} a -> s {failures = a} :: RemoveLFTagsFromResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+removeLFTagsFromResourceResponse_httpStatus :: Lens.Lens' RemoveLFTagsFromResourceResponse Prelude.Int+removeLFTagsFromResourceResponse_httpStatus = Lens.lens (\RemoveLFTagsFromResourceResponse' {httpStatus} -> httpStatus) (\s@RemoveLFTagsFromResourceResponse' {} a -> s {httpStatus = a} :: RemoveLFTagsFromResourceResponse)++instance+ Prelude.NFData+ RemoveLFTagsFromResourceResponse+ where+ rnf RemoveLFTagsFromResourceResponse' {..} =+ Prelude.rnf failures+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/RevokePermissions.hs view
@@ -0,0 +1,231 @@+{-# 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.LakeFormation.RevokePermissions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Revokes permissions to the principal to access metadata in the Data+-- Catalog and data organized in underlying data storage such as Amazon S3.+module Amazonka.LakeFormation.RevokePermissions+ ( -- * Creating a Request+ RevokePermissions (..),+ newRevokePermissions,++ -- * Request Lenses+ revokePermissions_catalogId,+ revokePermissions_permissionsWithGrantOption,+ revokePermissions_principal,+ revokePermissions_resource,+ revokePermissions_permissions,++ -- * Destructuring the Response+ RevokePermissionsResponse (..),+ newRevokePermissionsResponse,++ -- * Response Lenses+ revokePermissionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRevokePermissions' smart constructor.+data RevokePermissions = RevokePermissions'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | Indicates a list of permissions for which to revoke the grant option+ -- allowing the principal to pass permissions to other principals.+ permissionsWithGrantOption :: Prelude.Maybe [Permission],+ -- | The principal to be revoked permissions on the resource.+ principal :: DataLakePrincipal,+ -- | The resource to which permissions are to be revoked.+ resource :: Resource,+ -- | The permissions revoked to the principal on the resource. For+ -- information about permissions, see+ -- <https://docs-aws.amazon.com/lake-formation/latest/dg/security-data-access.html Security and Access Control to Metadata and Data>.+ permissions :: [Permission]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RevokePermissions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'revokePermissions_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'permissionsWithGrantOption', 'revokePermissions_permissionsWithGrantOption' - Indicates a list of permissions for which to revoke the grant option+-- allowing the principal to pass permissions to other principals.+--+-- 'principal', 'revokePermissions_principal' - The principal to be revoked permissions on the resource.+--+-- 'resource', 'revokePermissions_resource' - The resource to which permissions are to be revoked.+--+-- 'permissions', 'revokePermissions_permissions' - The permissions revoked to the principal on the resource. For+-- information about permissions, see+-- <https://docs-aws.amazon.com/lake-formation/latest/dg/security-data-access.html Security and Access Control to Metadata and Data>.+newRevokePermissions ::+ -- | 'principal'+ DataLakePrincipal ->+ -- | 'resource'+ Resource ->+ RevokePermissions+newRevokePermissions pPrincipal_ pResource_ =+ RevokePermissions'+ { catalogId = Prelude.Nothing,+ permissionsWithGrantOption = Prelude.Nothing,+ principal = pPrincipal_,+ resource = pResource_,+ permissions = Prelude.mempty+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+revokePermissions_catalogId :: Lens.Lens' RevokePermissions (Prelude.Maybe Prelude.Text)+revokePermissions_catalogId = Lens.lens (\RevokePermissions' {catalogId} -> catalogId) (\s@RevokePermissions' {} a -> s {catalogId = a} :: RevokePermissions)++-- | Indicates a list of permissions for which to revoke the grant option+-- allowing the principal to pass permissions to other principals.+revokePermissions_permissionsWithGrantOption :: Lens.Lens' RevokePermissions (Prelude.Maybe [Permission])+revokePermissions_permissionsWithGrantOption = Lens.lens (\RevokePermissions' {permissionsWithGrantOption} -> permissionsWithGrantOption) (\s@RevokePermissions' {} a -> s {permissionsWithGrantOption = a} :: RevokePermissions) Prelude.. Lens.mapping Lens.coerced++-- | The principal to be revoked permissions on the resource.+revokePermissions_principal :: Lens.Lens' RevokePermissions DataLakePrincipal+revokePermissions_principal = Lens.lens (\RevokePermissions' {principal} -> principal) (\s@RevokePermissions' {} a -> s {principal = a} :: RevokePermissions)++-- | The resource to which permissions are to be revoked.+revokePermissions_resource :: Lens.Lens' RevokePermissions Resource+revokePermissions_resource = Lens.lens (\RevokePermissions' {resource} -> resource) (\s@RevokePermissions' {} a -> s {resource = a} :: RevokePermissions)++-- | The permissions revoked to the principal on the resource. For+-- information about permissions, see+-- <https://docs-aws.amazon.com/lake-formation/latest/dg/security-data-access.html Security and Access Control to Metadata and Data>.+revokePermissions_permissions :: Lens.Lens' RevokePermissions [Permission]+revokePermissions_permissions = Lens.lens (\RevokePermissions' {permissions} -> permissions) (\s@RevokePermissions' {} a -> s {permissions = a} :: RevokePermissions) Prelude.. Lens.coerced++instance Core.AWSRequest RevokePermissions where+ type+ AWSResponse RevokePermissions =+ RevokePermissionsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ RevokePermissionsResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable RevokePermissions where+ hashWithSalt _salt RevokePermissions' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` permissionsWithGrantOption+ `Prelude.hashWithSalt` principal+ `Prelude.hashWithSalt` resource+ `Prelude.hashWithSalt` permissions++instance Prelude.NFData RevokePermissions where+ rnf RevokePermissions' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf permissionsWithGrantOption+ `Prelude.seq` Prelude.rnf principal+ `Prelude.seq` Prelude.rnf resource+ `Prelude.seq` Prelude.rnf permissions++instance Data.ToHeaders RevokePermissions where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON RevokePermissions where+ toJSON RevokePermissions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("PermissionsWithGrantOption" Data..=)+ Prelude.<$> permissionsWithGrantOption,+ Prelude.Just ("Principal" Data..= principal),+ Prelude.Just ("Resource" Data..= resource),+ Prelude.Just ("Permissions" Data..= permissions)+ ]+ )++instance Data.ToPath RevokePermissions where+ toPath = Prelude.const "/RevokePermissions"++instance Data.ToQuery RevokePermissions where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRevokePermissionsResponse' smart constructor.+data RevokePermissionsResponse = RevokePermissionsResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RevokePermissionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'revokePermissionsResponse_httpStatus' - The response's http status code.+newRevokePermissionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ RevokePermissionsResponse+newRevokePermissionsResponse pHttpStatus_ =+ RevokePermissionsResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+revokePermissionsResponse_httpStatus :: Lens.Lens' RevokePermissionsResponse Prelude.Int+revokePermissionsResponse_httpStatus = Lens.lens (\RevokePermissionsResponse' {httpStatus} -> httpStatus) (\s@RevokePermissionsResponse' {} a -> s {httpStatus = a} :: RevokePermissionsResponse)++instance Prelude.NFData RevokePermissionsResponse where+ rnf RevokePermissionsResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/SearchDatabasesByLFTags.hs view
@@ -0,0 +1,271 @@+{-# 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.LakeFormation.SearchDatabasesByLFTags+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation allows a search on @DATABASE@ resources by+-- @TagCondition@. This operation is used by admins who want to grant user+-- permissions on certain @TagConditions@. Before making a grant, the admin+-- can use @SearchDatabasesByTags@ to find all resources where the given+-- @TagConditions@ are valid to verify whether the returned resources can+-- be shared.+--+-- This operation returns paginated results.+module Amazonka.LakeFormation.SearchDatabasesByLFTags+ ( -- * Creating a Request+ SearchDatabasesByLFTags (..),+ newSearchDatabasesByLFTags,++ -- * Request Lenses+ searchDatabasesByLFTags_catalogId,+ searchDatabasesByLFTags_maxResults,+ searchDatabasesByLFTags_nextToken,+ searchDatabasesByLFTags_expression,++ -- * Destructuring the Response+ SearchDatabasesByLFTagsResponse (..),+ newSearchDatabasesByLFTagsResponse,++ -- * Response Lenses+ searchDatabasesByLFTagsResponse_databaseList,+ searchDatabasesByLFTagsResponse_nextToken,+ searchDatabasesByLFTagsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newSearchDatabasesByLFTags' smart constructor.+data SearchDatabasesByLFTags = SearchDatabasesByLFTags'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of results to return.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A continuation token, if this is not the first call to retrieve this+ -- list.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of conditions (@LFTag@ structures) to search for in database+ -- resources.+ expression :: Prelude.NonEmpty LFTag+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchDatabasesByLFTags' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'searchDatabasesByLFTags_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'maxResults', 'searchDatabasesByLFTags_maxResults' - The maximum number of results to return.+--+-- 'nextToken', 'searchDatabasesByLFTags_nextToken' - A continuation token, if this is not the first call to retrieve this+-- list.+--+-- 'expression', 'searchDatabasesByLFTags_expression' - A list of conditions (@LFTag@ structures) to search for in database+-- resources.+newSearchDatabasesByLFTags ::+ -- | 'expression'+ Prelude.NonEmpty LFTag ->+ SearchDatabasesByLFTags+newSearchDatabasesByLFTags pExpression_ =+ SearchDatabasesByLFTags'+ { catalogId =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ expression = Lens.coerced Lens.# pExpression_+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+searchDatabasesByLFTags_catalogId :: Lens.Lens' SearchDatabasesByLFTags (Prelude.Maybe Prelude.Text)+searchDatabasesByLFTags_catalogId = Lens.lens (\SearchDatabasesByLFTags' {catalogId} -> catalogId) (\s@SearchDatabasesByLFTags' {} a -> s {catalogId = a} :: SearchDatabasesByLFTags)++-- | The maximum number of results to return.+searchDatabasesByLFTags_maxResults :: Lens.Lens' SearchDatabasesByLFTags (Prelude.Maybe Prelude.Natural)+searchDatabasesByLFTags_maxResults = Lens.lens (\SearchDatabasesByLFTags' {maxResults} -> maxResults) (\s@SearchDatabasesByLFTags' {} a -> s {maxResults = a} :: SearchDatabasesByLFTags)++-- | A continuation token, if this is not the first call to retrieve this+-- list.+searchDatabasesByLFTags_nextToken :: Lens.Lens' SearchDatabasesByLFTags (Prelude.Maybe Prelude.Text)+searchDatabasesByLFTags_nextToken = Lens.lens (\SearchDatabasesByLFTags' {nextToken} -> nextToken) (\s@SearchDatabasesByLFTags' {} a -> s {nextToken = a} :: SearchDatabasesByLFTags)++-- | A list of conditions (@LFTag@ structures) to search for in database+-- resources.+searchDatabasesByLFTags_expression :: Lens.Lens' SearchDatabasesByLFTags (Prelude.NonEmpty LFTag)+searchDatabasesByLFTags_expression = Lens.lens (\SearchDatabasesByLFTags' {expression} -> expression) (\s@SearchDatabasesByLFTags' {} a -> s {expression = a} :: SearchDatabasesByLFTags) Prelude.. Lens.coerced++instance Core.AWSPager SearchDatabasesByLFTags where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? searchDatabasesByLFTagsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? searchDatabasesByLFTagsResponse_databaseList+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& searchDatabasesByLFTags_nextToken+ Lens..~ rs+ Lens.^? searchDatabasesByLFTagsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest SearchDatabasesByLFTags where+ type+ AWSResponse SearchDatabasesByLFTags =+ SearchDatabasesByLFTagsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ SearchDatabasesByLFTagsResponse'+ Prelude.<$> (x Data..?> "DatabaseList" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable SearchDatabasesByLFTags where+ hashWithSalt _salt SearchDatabasesByLFTags' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` expression++instance Prelude.NFData SearchDatabasesByLFTags where+ rnf SearchDatabasesByLFTags' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf expression++instance Data.ToHeaders SearchDatabasesByLFTags where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON SearchDatabasesByLFTags where+ toJSON SearchDatabasesByLFTags' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("Expression" Data..= expression)+ ]+ )++instance Data.ToPath SearchDatabasesByLFTags where+ toPath = Prelude.const "/SearchDatabasesByLFTags"++instance Data.ToQuery SearchDatabasesByLFTags where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newSearchDatabasesByLFTagsResponse' smart constructor.+data SearchDatabasesByLFTagsResponse = SearchDatabasesByLFTagsResponse'+ { -- | A list of databases that meet the LF-tag conditions.+ databaseList :: Prelude.Maybe [TaggedDatabase],+ -- | A continuation token, present if the current list segment is not the+ -- last.+ 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 'SearchDatabasesByLFTagsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'databaseList', 'searchDatabasesByLFTagsResponse_databaseList' - A list of databases that meet the LF-tag conditions.+--+-- 'nextToken', 'searchDatabasesByLFTagsResponse_nextToken' - A continuation token, present if the current list segment is not the+-- last.+--+-- 'httpStatus', 'searchDatabasesByLFTagsResponse_httpStatus' - The response's http status code.+newSearchDatabasesByLFTagsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ SearchDatabasesByLFTagsResponse+newSearchDatabasesByLFTagsResponse pHttpStatus_ =+ SearchDatabasesByLFTagsResponse'+ { databaseList =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of databases that meet the LF-tag conditions.+searchDatabasesByLFTagsResponse_databaseList :: Lens.Lens' SearchDatabasesByLFTagsResponse (Prelude.Maybe [TaggedDatabase])+searchDatabasesByLFTagsResponse_databaseList = Lens.lens (\SearchDatabasesByLFTagsResponse' {databaseList} -> databaseList) (\s@SearchDatabasesByLFTagsResponse' {} a -> s {databaseList = a} :: SearchDatabasesByLFTagsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A continuation token, present if the current list segment is not the+-- last.+searchDatabasesByLFTagsResponse_nextToken :: Lens.Lens' SearchDatabasesByLFTagsResponse (Prelude.Maybe Prelude.Text)+searchDatabasesByLFTagsResponse_nextToken = Lens.lens (\SearchDatabasesByLFTagsResponse' {nextToken} -> nextToken) (\s@SearchDatabasesByLFTagsResponse' {} a -> s {nextToken = a} :: SearchDatabasesByLFTagsResponse)++-- | The response's http status code.+searchDatabasesByLFTagsResponse_httpStatus :: Lens.Lens' SearchDatabasesByLFTagsResponse Prelude.Int+searchDatabasesByLFTagsResponse_httpStatus = Lens.lens (\SearchDatabasesByLFTagsResponse' {httpStatus} -> httpStatus) (\s@SearchDatabasesByLFTagsResponse' {} a -> s {httpStatus = a} :: SearchDatabasesByLFTagsResponse)++instance+ Prelude.NFData+ SearchDatabasesByLFTagsResponse+ where+ rnf SearchDatabasesByLFTagsResponse' {..} =+ Prelude.rnf databaseList+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/SearchTablesByLFTags.hs view
@@ -0,0 +1,266 @@+{-# 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.LakeFormation.SearchTablesByLFTags+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This operation allows a search on @TABLE@ resources by @LFTag@s. This+-- will be used by admins who want to grant user permissions on certain+-- LF-tags. Before making a grant, the admin can use @SearchTablesByLFTags@+-- to find all resources where the given @LFTag@s are valid to verify+-- whether the returned resources can be shared.+--+-- This operation returns paginated results.+module Amazonka.LakeFormation.SearchTablesByLFTags+ ( -- * Creating a Request+ SearchTablesByLFTags (..),+ newSearchTablesByLFTags,++ -- * Request Lenses+ searchTablesByLFTags_catalogId,+ searchTablesByLFTags_maxResults,+ searchTablesByLFTags_nextToken,+ searchTablesByLFTags_expression,++ -- * Destructuring the Response+ SearchTablesByLFTagsResponse (..),+ newSearchTablesByLFTagsResponse,++ -- * Response Lenses+ searchTablesByLFTagsResponse_nextToken,+ searchTablesByLFTagsResponse_tableList,+ searchTablesByLFTagsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newSearchTablesByLFTags' smart constructor.+data SearchTablesByLFTags = SearchTablesByLFTags'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of results to return.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A continuation token, if this is not the first call to retrieve this+ -- list.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of conditions (@LFTag@ structures) to search for in table+ -- resources.+ expression :: Prelude.NonEmpty LFTag+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchTablesByLFTags' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'searchTablesByLFTags_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'maxResults', 'searchTablesByLFTags_maxResults' - The maximum number of results to return.+--+-- 'nextToken', 'searchTablesByLFTags_nextToken' - A continuation token, if this is not the first call to retrieve this+-- list.+--+-- 'expression', 'searchTablesByLFTags_expression' - A list of conditions (@LFTag@ structures) to search for in table+-- resources.+newSearchTablesByLFTags ::+ -- | 'expression'+ Prelude.NonEmpty LFTag ->+ SearchTablesByLFTags+newSearchTablesByLFTags pExpression_ =+ SearchTablesByLFTags'+ { catalogId = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ expression = Lens.coerced Lens.# pExpression_+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+searchTablesByLFTags_catalogId :: Lens.Lens' SearchTablesByLFTags (Prelude.Maybe Prelude.Text)+searchTablesByLFTags_catalogId = Lens.lens (\SearchTablesByLFTags' {catalogId} -> catalogId) (\s@SearchTablesByLFTags' {} a -> s {catalogId = a} :: SearchTablesByLFTags)++-- | The maximum number of results to return.+searchTablesByLFTags_maxResults :: Lens.Lens' SearchTablesByLFTags (Prelude.Maybe Prelude.Natural)+searchTablesByLFTags_maxResults = Lens.lens (\SearchTablesByLFTags' {maxResults} -> maxResults) (\s@SearchTablesByLFTags' {} a -> s {maxResults = a} :: SearchTablesByLFTags)++-- | A continuation token, if this is not the first call to retrieve this+-- list.+searchTablesByLFTags_nextToken :: Lens.Lens' SearchTablesByLFTags (Prelude.Maybe Prelude.Text)+searchTablesByLFTags_nextToken = Lens.lens (\SearchTablesByLFTags' {nextToken} -> nextToken) (\s@SearchTablesByLFTags' {} a -> s {nextToken = a} :: SearchTablesByLFTags)++-- | A list of conditions (@LFTag@ structures) to search for in table+-- resources.+searchTablesByLFTags_expression :: Lens.Lens' SearchTablesByLFTags (Prelude.NonEmpty LFTag)+searchTablesByLFTags_expression = Lens.lens (\SearchTablesByLFTags' {expression} -> expression) (\s@SearchTablesByLFTags' {} a -> s {expression = a} :: SearchTablesByLFTags) Prelude.. Lens.coerced++instance Core.AWSPager SearchTablesByLFTags where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? searchTablesByLFTagsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? searchTablesByLFTagsResponse_tableList+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& searchTablesByLFTags_nextToken+ Lens..~ rs+ Lens.^? searchTablesByLFTagsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest SearchTablesByLFTags where+ type+ AWSResponse SearchTablesByLFTags =+ SearchTablesByLFTagsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ SearchTablesByLFTagsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "TableList" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable SearchTablesByLFTags where+ hashWithSalt _salt SearchTablesByLFTags' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` expression++instance Prelude.NFData SearchTablesByLFTags where+ rnf SearchTablesByLFTags' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf expression++instance Data.ToHeaders SearchTablesByLFTags where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON SearchTablesByLFTags where+ toJSON SearchTablesByLFTags' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("Expression" Data..= expression)+ ]+ )++instance Data.ToPath SearchTablesByLFTags where+ toPath = Prelude.const "/SearchTablesByLFTags"++instance Data.ToQuery SearchTablesByLFTags where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newSearchTablesByLFTagsResponse' smart constructor.+data SearchTablesByLFTagsResponse = SearchTablesByLFTagsResponse'+ { -- | A continuation token, present if the current list segment is not the+ -- last.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of tables that meet the LF-tag conditions.+ tableList :: Prelude.Maybe [TaggedTable],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchTablesByLFTagsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'searchTablesByLFTagsResponse_nextToken' - A continuation token, present if the current list segment is not the+-- last.+--+-- 'tableList', 'searchTablesByLFTagsResponse_tableList' - A list of tables that meet the LF-tag conditions.+--+-- 'httpStatus', 'searchTablesByLFTagsResponse_httpStatus' - The response's http status code.+newSearchTablesByLFTagsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ SearchTablesByLFTagsResponse+newSearchTablesByLFTagsResponse pHttpStatus_ =+ SearchTablesByLFTagsResponse'+ { nextToken =+ Prelude.Nothing,+ tableList = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A continuation token, present if the current list segment is not the+-- last.+searchTablesByLFTagsResponse_nextToken :: Lens.Lens' SearchTablesByLFTagsResponse (Prelude.Maybe Prelude.Text)+searchTablesByLFTagsResponse_nextToken = Lens.lens (\SearchTablesByLFTagsResponse' {nextToken} -> nextToken) (\s@SearchTablesByLFTagsResponse' {} a -> s {nextToken = a} :: SearchTablesByLFTagsResponse)++-- | A list of tables that meet the LF-tag conditions.+searchTablesByLFTagsResponse_tableList :: Lens.Lens' SearchTablesByLFTagsResponse (Prelude.Maybe [TaggedTable])+searchTablesByLFTagsResponse_tableList = Lens.lens (\SearchTablesByLFTagsResponse' {tableList} -> tableList) (\s@SearchTablesByLFTagsResponse' {} a -> s {tableList = a} :: SearchTablesByLFTagsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+searchTablesByLFTagsResponse_httpStatus :: Lens.Lens' SearchTablesByLFTagsResponse Prelude.Int+searchTablesByLFTagsResponse_httpStatus = Lens.lens (\SearchTablesByLFTagsResponse' {httpStatus} -> httpStatus) (\s@SearchTablesByLFTagsResponse' {} a -> s {httpStatus = a} :: SearchTablesByLFTagsResponse)++instance Prelude.NFData SearchTablesByLFTagsResponse where+ rnf SearchTablesByLFTagsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf tableList+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/StartQueryPlanning.hs view
@@ -0,0 +1,207 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.StartQueryPlanning+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Submits a request to process a query statement.+--+-- This operation generates work units that can be retrieved with the+-- @GetWorkUnits@ operation as soon as the query state is+-- WORKUNITS_AVAILABLE or FINISHED.+module Amazonka.LakeFormation.StartQueryPlanning+ ( -- * Creating a Request+ StartQueryPlanning (..),+ newStartQueryPlanning,++ -- * Request Lenses+ startQueryPlanning_queryPlanningContext,+ startQueryPlanning_queryString,++ -- * Destructuring the Response+ StartQueryPlanningResponse (..),+ newStartQueryPlanningResponse,++ -- * Response Lenses+ startQueryPlanningResponse_httpStatus,+ startQueryPlanningResponse_queryId,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartQueryPlanning' smart constructor.+data StartQueryPlanning = StartQueryPlanning'+ { -- | A structure containing information about the query plan.+ queryPlanningContext :: QueryPlanningContext,+ -- | A PartiQL query statement used as an input to the planner service.+ queryString :: Data.Sensitive Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartQueryPlanning' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'queryPlanningContext', 'startQueryPlanning_queryPlanningContext' - A structure containing information about the query plan.+--+-- 'queryString', 'startQueryPlanning_queryString' - A PartiQL query statement used as an input to the planner service.+newStartQueryPlanning ::+ -- | 'queryPlanningContext'+ QueryPlanningContext ->+ -- | 'queryString'+ Prelude.Text ->+ StartQueryPlanning+newStartQueryPlanning+ pQueryPlanningContext_+ pQueryString_ =+ StartQueryPlanning'+ { queryPlanningContext =+ pQueryPlanningContext_,+ queryString = Data._Sensitive Lens.# pQueryString_+ }++-- | A structure containing information about the query plan.+startQueryPlanning_queryPlanningContext :: Lens.Lens' StartQueryPlanning QueryPlanningContext+startQueryPlanning_queryPlanningContext = Lens.lens (\StartQueryPlanning' {queryPlanningContext} -> queryPlanningContext) (\s@StartQueryPlanning' {} a -> s {queryPlanningContext = a} :: StartQueryPlanning)++-- | A PartiQL query statement used as an input to the planner service.+startQueryPlanning_queryString :: Lens.Lens' StartQueryPlanning Prelude.Text+startQueryPlanning_queryString = Lens.lens (\StartQueryPlanning' {queryString} -> queryString) (\s@StartQueryPlanning' {} a -> s {queryString = a} :: StartQueryPlanning) Prelude.. Data._Sensitive++instance Core.AWSRequest StartQueryPlanning where+ type+ AWSResponse StartQueryPlanning =+ StartQueryPlanningResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ StartQueryPlanningResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "QueryId")+ )++instance Prelude.Hashable StartQueryPlanning where+ hashWithSalt _salt StartQueryPlanning' {..} =+ _salt+ `Prelude.hashWithSalt` queryPlanningContext+ `Prelude.hashWithSalt` queryString++instance Prelude.NFData StartQueryPlanning where+ rnf StartQueryPlanning' {..} =+ Prelude.rnf queryPlanningContext+ `Prelude.seq` Prelude.rnf queryString++instance Data.ToHeaders StartQueryPlanning where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON StartQueryPlanning where+ toJSON StartQueryPlanning' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ( "QueryPlanningContext"+ Data..= queryPlanningContext+ ),+ Prelude.Just ("QueryString" Data..= queryString)+ ]+ )++instance Data.ToPath StartQueryPlanning where+ toPath = Prelude.const "/StartQueryPlanning"++instance Data.ToQuery StartQueryPlanning where+ toQuery = Prelude.const Prelude.mempty++-- | A structure for the output.+--+-- /See:/ 'newStartQueryPlanningResponse' smart constructor.+data StartQueryPlanningResponse = StartQueryPlanningResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The ID of the plan query operation can be used to fetch the actual work+ -- unit descriptors that are produced as the result of the operation. The+ -- ID is also used to get the query state and as an input to the @Execute@+ -- operation.+ queryId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartQueryPlanningResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'startQueryPlanningResponse_httpStatus' - The response's http status code.+--+-- 'queryId', 'startQueryPlanningResponse_queryId' - The ID of the plan query operation can be used to fetch the actual work+-- unit descriptors that are produced as the result of the operation. The+-- ID is also used to get the query state and as an input to the @Execute@+-- operation.+newStartQueryPlanningResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'queryId'+ Prelude.Text ->+ StartQueryPlanningResponse+newStartQueryPlanningResponse pHttpStatus_ pQueryId_ =+ StartQueryPlanningResponse'+ { httpStatus =+ pHttpStatus_,+ queryId = pQueryId_+ }++-- | The response's http status code.+startQueryPlanningResponse_httpStatus :: Lens.Lens' StartQueryPlanningResponse Prelude.Int+startQueryPlanningResponse_httpStatus = Lens.lens (\StartQueryPlanningResponse' {httpStatus} -> httpStatus) (\s@StartQueryPlanningResponse' {} a -> s {httpStatus = a} :: StartQueryPlanningResponse)++-- | The ID of the plan query operation can be used to fetch the actual work+-- unit descriptors that are produced as the result of the operation. The+-- ID is also used to get the query state and as an input to the @Execute@+-- operation.+startQueryPlanningResponse_queryId :: Lens.Lens' StartQueryPlanningResponse Prelude.Text+startQueryPlanningResponse_queryId = Lens.lens (\StartQueryPlanningResponse' {queryId} -> queryId) (\s@StartQueryPlanningResponse' {} a -> s {queryId = a} :: StartQueryPlanningResponse)++instance Prelude.NFData StartQueryPlanningResponse where+ rnf StartQueryPlanningResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf queryId
+ gen/Amazonka/LakeFormation/StartTransaction.hs view
@@ -0,0 +1,175 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.StartTransaction+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts a new transaction and returns its transaction ID. Transaction IDs+-- are opaque objects that you can use to identify a transaction.+module Amazonka.LakeFormation.StartTransaction+ ( -- * Creating a Request+ StartTransaction (..),+ newStartTransaction,++ -- * Request Lenses+ startTransaction_transactionType,++ -- * Destructuring the Response+ StartTransactionResponse (..),+ newStartTransactionResponse,++ -- * Response Lenses+ startTransactionResponse_transactionId,+ startTransactionResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartTransaction' smart constructor.+data StartTransaction = StartTransaction'+ { -- | Indicates whether this transaction should be read only or read and+ -- write. Writes made using a read-only transaction ID will be rejected.+ -- Read-only transactions do not need to be committed.+ transactionType :: Prelude.Maybe TransactionType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartTransaction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'transactionType', 'startTransaction_transactionType' - Indicates whether this transaction should be read only or read and+-- write. Writes made using a read-only transaction ID will be rejected.+-- Read-only transactions do not need to be committed.+newStartTransaction ::+ StartTransaction+newStartTransaction =+ StartTransaction'+ { transactionType =+ Prelude.Nothing+ }++-- | Indicates whether this transaction should be read only or read and+-- write. Writes made using a read-only transaction ID will be rejected.+-- Read-only transactions do not need to be committed.+startTransaction_transactionType :: Lens.Lens' StartTransaction (Prelude.Maybe TransactionType)+startTransaction_transactionType = Lens.lens (\StartTransaction' {transactionType} -> transactionType) (\s@StartTransaction' {} a -> s {transactionType = a} :: StartTransaction)++instance Core.AWSRequest StartTransaction where+ type+ AWSResponse StartTransaction =+ StartTransactionResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ StartTransactionResponse'+ Prelude.<$> (x Data..?> "TransactionId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable StartTransaction where+ hashWithSalt _salt StartTransaction' {..} =+ _salt `Prelude.hashWithSalt` transactionType++instance Prelude.NFData StartTransaction where+ rnf StartTransaction' {..} =+ Prelude.rnf transactionType++instance Data.ToHeaders StartTransaction where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON StartTransaction where+ toJSON StartTransaction' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("TransactionType" Data..=)+ Prelude.<$> transactionType+ ]+ )++instance Data.ToPath StartTransaction where+ toPath = Prelude.const "/StartTransaction"++instance Data.ToQuery StartTransaction where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartTransactionResponse' smart constructor.+data StartTransactionResponse = StartTransactionResponse'+ { -- | An opaque identifier for the transaction.+ transactionId :: 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 'StartTransactionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'transactionId', 'startTransactionResponse_transactionId' - An opaque identifier for the transaction.+--+-- 'httpStatus', 'startTransactionResponse_httpStatus' - The response's http status code.+newStartTransactionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ StartTransactionResponse+newStartTransactionResponse pHttpStatus_ =+ StartTransactionResponse'+ { transactionId =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An opaque identifier for the transaction.+startTransactionResponse_transactionId :: Lens.Lens' StartTransactionResponse (Prelude.Maybe Prelude.Text)+startTransactionResponse_transactionId = Lens.lens (\StartTransactionResponse' {transactionId} -> transactionId) (\s@StartTransactionResponse' {} a -> s {transactionId = a} :: StartTransactionResponse)++-- | The response's http status code.+startTransactionResponse_httpStatus :: Lens.Lens' StartTransactionResponse Prelude.Int+startTransactionResponse_httpStatus = Lens.lens (\StartTransactionResponse' {httpStatus} -> httpStatus) (\s@StartTransactionResponse' {} a -> s {httpStatus = a} :: StartTransactionResponse)++instance Prelude.NFData StartTransactionResponse where+ rnf StartTransactionResponse' {..} =+ Prelude.rnf transactionId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/Types.hs view
@@ -0,0 +1,658 @@+{-# 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.LakeFormation.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.LakeFormation.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _AccessDeniedException,+ _AlreadyExistsException,+ _ConcurrentModificationException,+ _EntityNotFoundException,+ _ExpiredException,+ _GlueEncryptionException,+ _InternalServiceException,+ _InvalidInputException,+ _OperationTimeoutException,+ _PermissionTypeMismatchException,+ _ResourceNotReadyException,+ _ResourceNumberLimitExceededException,+ _StatisticsNotReadyYetException,+ _ThrottledException,+ _TransactionCanceledException,+ _TransactionCommitInProgressException,+ _TransactionCommittedException,+ _WorkUnitsNotReadyYetException,++ -- * ComparisonOperator+ ComparisonOperator (..),++ -- * DataLakeResourceType+ DataLakeResourceType (..),++ -- * FieldNameString+ FieldNameString (..),++ -- * OptimizerType+ OptimizerType (..),++ -- * Permission+ Permission (..),++ -- * PermissionType+ PermissionType (..),++ -- * QueryStateString+ QueryStateString (..),++ -- * ResourceShareType+ ResourceShareType (..),++ -- * ResourceType+ ResourceType (..),++ -- * TransactionStatus+ TransactionStatus (..),++ -- * TransactionStatusFilter+ TransactionStatusFilter (..),++ -- * TransactionType+ TransactionType (..),++ -- * AddObjectInput+ AddObjectInput (..),+ newAddObjectInput,+ addObjectInput_partitionValues,+ addObjectInput_uri,+ addObjectInput_eTag,+ addObjectInput_size,++ -- * AllRowsWildcard+ AllRowsWildcard (..),+ newAllRowsWildcard,++ -- * AuditContext+ AuditContext (..),+ newAuditContext,+ auditContext_additionalAuditContext,++ -- * BatchPermissionsFailureEntry+ BatchPermissionsFailureEntry (..),+ newBatchPermissionsFailureEntry,+ batchPermissionsFailureEntry_error,+ batchPermissionsFailureEntry_requestEntry,++ -- * BatchPermissionsRequestEntry+ BatchPermissionsRequestEntry (..),+ newBatchPermissionsRequestEntry,+ batchPermissionsRequestEntry_permissions,+ batchPermissionsRequestEntry_permissionsWithGrantOption,+ batchPermissionsRequestEntry_principal,+ batchPermissionsRequestEntry_resource,+ batchPermissionsRequestEntry_id,++ -- * CatalogResource+ CatalogResource (..),+ newCatalogResource,++ -- * ColumnLFTag+ ColumnLFTag (..),+ newColumnLFTag,+ columnLFTag_lFTags,+ columnLFTag_name,++ -- * ColumnWildcard+ ColumnWildcard (..),+ newColumnWildcard,+ columnWildcard_excludedColumnNames,++ -- * DataCellsFilter+ DataCellsFilter (..),+ newDataCellsFilter,+ dataCellsFilter_columnNames,+ dataCellsFilter_columnWildcard,+ dataCellsFilter_rowFilter,+ dataCellsFilter_tableCatalogId,+ dataCellsFilter_databaseName,+ dataCellsFilter_tableName,+ dataCellsFilter_name,++ -- * DataCellsFilterResource+ DataCellsFilterResource (..),+ newDataCellsFilterResource,+ dataCellsFilterResource_databaseName,+ dataCellsFilterResource_name,+ dataCellsFilterResource_tableCatalogId,+ dataCellsFilterResource_tableName,++ -- * DataLakePrincipal+ DataLakePrincipal (..),+ newDataLakePrincipal,+ dataLakePrincipal_dataLakePrincipalIdentifier,++ -- * DataLakeSettings+ DataLakeSettings (..),+ newDataLakeSettings,+ dataLakeSettings_allowExternalDataFiltering,+ dataLakeSettings_authorizedSessionTagValueList,+ dataLakeSettings_createDatabaseDefaultPermissions,+ dataLakeSettings_createTableDefaultPermissions,+ dataLakeSettings_dataLakeAdmins,+ dataLakeSettings_externalDataFilteringAllowList,+ dataLakeSettings_parameters,+ dataLakeSettings_trustedResourceOwners,++ -- * DataLocationResource+ DataLocationResource (..),+ newDataLocationResource,+ dataLocationResource_catalogId,+ dataLocationResource_resourceArn,++ -- * DatabaseResource+ DatabaseResource (..),+ newDatabaseResource,+ databaseResource_catalogId,+ databaseResource_name,++ -- * DeleteObjectInput+ DeleteObjectInput (..),+ newDeleteObjectInput,+ deleteObjectInput_eTag,+ deleteObjectInput_partitionValues,+ deleteObjectInput_uri,++ -- * DetailsMap+ DetailsMap (..),+ newDetailsMap,+ detailsMap_resourceShare,++ -- * ErrorDetail+ ErrorDetail (..),+ newErrorDetail,+ errorDetail_errorCode,+ errorDetail_errorMessage,++ -- * ExecutionStatistics+ ExecutionStatistics (..),+ newExecutionStatistics,+ executionStatistics_averageExecutionTimeMillis,+ executionStatistics_dataScannedBytes,+ executionStatistics_workUnitsExecutedCount,++ -- * FilterCondition+ FilterCondition (..),+ newFilterCondition,+ filterCondition_comparisonOperator,+ filterCondition_field,+ filterCondition_stringValueList,++ -- * LFTag+ LFTag (..),+ newLFTag,+ lFTag_tagKey,+ lFTag_tagValues,++ -- * LFTagError+ LFTagError (..),+ newLFTagError,+ lFTagError_error,+ lFTagError_lFTag,++ -- * LFTagKeyResource+ LFTagKeyResource (..),+ newLFTagKeyResource,+ lFTagKeyResource_catalogId,+ lFTagKeyResource_tagKey,+ lFTagKeyResource_tagValues,++ -- * LFTagPair+ LFTagPair (..),+ newLFTagPair,+ lFTagPair_catalogId,+ lFTagPair_tagKey,+ lFTagPair_tagValues,++ -- * LFTagPolicyResource+ LFTagPolicyResource (..),+ newLFTagPolicyResource,+ lFTagPolicyResource_catalogId,+ lFTagPolicyResource_resourceType,+ lFTagPolicyResource_expression,++ -- * PartitionObjects+ PartitionObjects (..),+ newPartitionObjects,+ partitionObjects_objects,+ partitionObjects_partitionValues,++ -- * PartitionValueList+ PartitionValueList (..),+ newPartitionValueList,+ partitionValueList_values,++ -- * PlanningStatistics+ PlanningStatistics (..),+ newPlanningStatistics,+ planningStatistics_estimatedDataToScanBytes,+ planningStatistics_planningTimeMillis,+ planningStatistics_queueTimeMillis,+ planningStatistics_workUnitsGeneratedCount,++ -- * PrincipalPermissions+ PrincipalPermissions (..),+ newPrincipalPermissions,+ principalPermissions_permissions,+ principalPermissions_principal,++ -- * PrincipalResourcePermissions+ PrincipalResourcePermissions (..),+ newPrincipalResourcePermissions,+ principalResourcePermissions_additionalDetails,+ principalResourcePermissions_permissions,+ principalResourcePermissions_permissionsWithGrantOption,+ principalResourcePermissions_principal,+ principalResourcePermissions_resource,++ -- * QueryPlanningContext+ QueryPlanningContext (..),+ newQueryPlanningContext,+ queryPlanningContext_catalogId,+ queryPlanningContext_queryAsOfTime,+ queryPlanningContext_queryParameters,+ queryPlanningContext_transactionId,+ queryPlanningContext_databaseName,++ -- * Resource+ Resource (..),+ newResource,+ resource_catalog,+ resource_dataCellsFilter,+ resource_dataLocation,+ resource_database,+ resource_lFTag,+ resource_lFTagPolicy,+ resource_table,+ resource_tableWithColumns,++ -- * ResourceInfo+ ResourceInfo (..),+ newResourceInfo,+ resourceInfo_lastModified,+ resourceInfo_resourceArn,+ resourceInfo_roleArn,++ -- * RowFilter+ RowFilter (..),+ newRowFilter,+ rowFilter_allRowsWildcard,+ rowFilter_filterExpression,++ -- * StorageOptimizer+ StorageOptimizer (..),+ newStorageOptimizer,+ storageOptimizer_config,+ storageOptimizer_errorMessage,+ storageOptimizer_lastRunDetails,+ storageOptimizer_storageOptimizerType,+ storageOptimizer_warnings,++ -- * TableObject+ TableObject (..),+ newTableObject,+ tableObject_eTag,+ tableObject_size,+ tableObject_uri,++ -- * TableResource+ TableResource (..),+ newTableResource,+ tableResource_catalogId,+ tableResource_name,+ tableResource_tableWildcard,+ tableResource_databaseName,++ -- * TableWildcard+ TableWildcard (..),+ newTableWildcard,++ -- * TableWithColumnsResource+ TableWithColumnsResource (..),+ newTableWithColumnsResource,+ tableWithColumnsResource_catalogId,+ tableWithColumnsResource_columnNames,+ tableWithColumnsResource_columnWildcard,+ tableWithColumnsResource_databaseName,+ tableWithColumnsResource_name,++ -- * TaggedDatabase+ TaggedDatabase (..),+ newTaggedDatabase,+ taggedDatabase_database,+ taggedDatabase_lFTags,++ -- * TaggedTable+ TaggedTable (..),+ newTaggedTable,+ taggedTable_lFTagOnDatabase,+ taggedTable_lFTagsOnColumns,+ taggedTable_lFTagsOnTable,+ taggedTable_table,++ -- * TransactionDescription+ TransactionDescription (..),+ newTransactionDescription,+ transactionDescription_transactionEndTime,+ transactionDescription_transactionId,+ transactionDescription_transactionStartTime,+ transactionDescription_transactionStatus,++ -- * VirtualObject+ VirtualObject (..),+ newVirtualObject,+ virtualObject_eTag,+ virtualObject_uri,++ -- * WorkUnitRange+ WorkUnitRange (..),+ newWorkUnitRange,+ workUnitRange_workUnitIdMax,+ workUnitRange_workUnitIdMin,+ workUnitRange_workUnitToken,++ -- * WriteOperation+ WriteOperation (..),+ newWriteOperation,+ writeOperation_addObject,+ writeOperation_deleteObject,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.LakeFormation.Types.AddObjectInput+import Amazonka.LakeFormation.Types.AllRowsWildcard+import Amazonka.LakeFormation.Types.AuditContext+import Amazonka.LakeFormation.Types.BatchPermissionsFailureEntry+import Amazonka.LakeFormation.Types.BatchPermissionsRequestEntry+import Amazonka.LakeFormation.Types.CatalogResource+import Amazonka.LakeFormation.Types.ColumnLFTag+import Amazonka.LakeFormation.Types.ColumnWildcard+import Amazonka.LakeFormation.Types.ComparisonOperator+import Amazonka.LakeFormation.Types.DataCellsFilter+import Amazonka.LakeFormation.Types.DataCellsFilterResource+import Amazonka.LakeFormation.Types.DataLakePrincipal+import Amazonka.LakeFormation.Types.DataLakeResourceType+import Amazonka.LakeFormation.Types.DataLakeSettings+import Amazonka.LakeFormation.Types.DataLocationResource+import Amazonka.LakeFormation.Types.DatabaseResource+import Amazonka.LakeFormation.Types.DeleteObjectInput+import Amazonka.LakeFormation.Types.DetailsMap+import Amazonka.LakeFormation.Types.ErrorDetail+import Amazonka.LakeFormation.Types.ExecutionStatistics+import Amazonka.LakeFormation.Types.FieldNameString+import Amazonka.LakeFormation.Types.FilterCondition+import Amazonka.LakeFormation.Types.LFTag+import Amazonka.LakeFormation.Types.LFTagError+import Amazonka.LakeFormation.Types.LFTagKeyResource+import Amazonka.LakeFormation.Types.LFTagPair+import Amazonka.LakeFormation.Types.LFTagPolicyResource+import Amazonka.LakeFormation.Types.OptimizerType+import Amazonka.LakeFormation.Types.PartitionObjects+import Amazonka.LakeFormation.Types.PartitionValueList+import Amazonka.LakeFormation.Types.Permission+import Amazonka.LakeFormation.Types.PermissionType+import Amazonka.LakeFormation.Types.PlanningStatistics+import Amazonka.LakeFormation.Types.PrincipalPermissions+import Amazonka.LakeFormation.Types.PrincipalResourcePermissions+import Amazonka.LakeFormation.Types.QueryPlanningContext+import Amazonka.LakeFormation.Types.QueryStateString+import Amazonka.LakeFormation.Types.Resource+import Amazonka.LakeFormation.Types.ResourceInfo+import Amazonka.LakeFormation.Types.ResourceShareType+import Amazonka.LakeFormation.Types.ResourceType+import Amazonka.LakeFormation.Types.RowFilter+import Amazonka.LakeFormation.Types.StorageOptimizer+import Amazonka.LakeFormation.Types.TableObject+import Amazonka.LakeFormation.Types.TableResource+import Amazonka.LakeFormation.Types.TableWildcard+import Amazonka.LakeFormation.Types.TableWithColumnsResource+import Amazonka.LakeFormation.Types.TaggedDatabase+import Amazonka.LakeFormation.Types.TaggedTable+import Amazonka.LakeFormation.Types.TransactionDescription+import Amazonka.LakeFormation.Types.TransactionStatus+import Amazonka.LakeFormation.Types.TransactionStatusFilter+import Amazonka.LakeFormation.Types.TransactionType+import Amazonka.LakeFormation.Types.VirtualObject+import Amazonka.LakeFormation.Types.WorkUnitRange+import Amazonka.LakeFormation.Types.WriteOperation+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2017-03-31@ of the Amazon Lake Formation SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "LakeFormation",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "lakeformation",+ Core.signingName = "lakeformation",+ Core.version = "2017-03-31",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "LakeFormation",+ Core.retry = retry+ }+ where+ retry =+ Core.Exponential+ { Core.base = 5.0e-2,+ Core.growth = 2,+ Core.attempts = 5,+ Core.check = check+ }+ check e+ | Lens.has (Core.hasStatus 502) e =+ Prelude.Just "bad_gateway"+ | Lens.has (Core.hasStatus 504) e =+ Prelude.Just "gateway_timeout"+ | Lens.has (Core.hasStatus 500) e =+ Prelude.Just "general_server_error"+ | Lens.has (Core.hasStatus 509) e =+ Prelude.Just "limit_exceeded"+ | Lens.has+ ( Core.hasCode "RequestThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "request_throttled_exception"+ | Lens.has (Core.hasStatus 503) e =+ Prelude.Just "service_unavailable"+ | Lens.has+ ( Core.hasCode "ThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttled_exception"+ | Lens.has+ ( Core.hasCode "Throttling"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling"+ | Lens.has+ ( Core.hasCode "ThrottlingException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling_exception"+ | Lens.has+ ( Core.hasCode+ "ProvisionedThroughputExceededException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throughput_exceeded"+ | Lens.has (Core.hasStatus 429) e =+ Prelude.Just "too_many_requests"+ | Prelude.otherwise = Prelude.Nothing++-- | Access to a resource was denied.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+ Core._MatchServiceError+ defaultService+ "AccessDeniedException"+ Prelude.. Core.hasStatus 403++-- | A resource to be created or added already exists.+_AlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AlreadyExistsException =+ Core._MatchServiceError+ defaultService+ "AlreadyExistsException"++-- | Two processes are trying to modify a resource simultaneously.+_ConcurrentModificationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConcurrentModificationException =+ Core._MatchServiceError+ defaultService+ "ConcurrentModificationException"++-- | A specified entity does not exist+_EntityNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_EntityNotFoundException =+ Core._MatchServiceError+ defaultService+ "EntityNotFoundException"++-- | Contains details about an error where the query request expired.+_ExpiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ExpiredException =+ Core._MatchServiceError+ defaultService+ "ExpiredException"+ Prelude.. Core.hasStatus 410++-- | An encryption operation failed.+_GlueEncryptionException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_GlueEncryptionException =+ Core._MatchServiceError+ defaultService+ "GlueEncryptionException"++-- | An internal service error occurred.+_InternalServiceException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServiceException =+ Core._MatchServiceError+ defaultService+ "InternalServiceException"+ Prelude.. Core.hasStatus 500++-- | The input provided was not valid.+_InvalidInputException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidInputException =+ Core._MatchServiceError+ defaultService+ "InvalidInputException"+ Prelude.. Core.hasStatus 400++-- | The operation timed out.+_OperationTimeoutException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_OperationTimeoutException =+ Core._MatchServiceError+ defaultService+ "OperationTimeoutException"++-- | The engine does not support filtering data based on the enforced+-- permissions. For example, if you call the+-- @GetTemporaryGlueTableCredentials@ operation with+-- @SupportedPermissionType@ equal to @ColumnPermission@, but cell-level+-- permissions exist on the table, this exception is thrown.+_PermissionTypeMismatchException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_PermissionTypeMismatchException =+ Core._MatchServiceError+ defaultService+ "PermissionTypeMismatchException"++-- | Contains details about an error related to a resource which is not ready+-- for a transaction.+_ResourceNotReadyException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotReadyException =+ Core._MatchServiceError+ defaultService+ "ResourceNotReadyException"+ Prelude.. Core.hasStatus 400++-- | A resource numerical limit was exceeded.+_ResourceNumberLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNumberLimitExceededException =+ Core._MatchServiceError+ defaultService+ "ResourceNumberLimitExceededException"++-- | Contains details about an error related to statistics not being ready.+_StatisticsNotReadyYetException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_StatisticsNotReadyYetException =+ Core._MatchServiceError+ defaultService+ "StatisticsNotReadyYetException"+ Prelude.. Core.hasStatus 420++-- | Contains details about an error where the query request was throttled.+_ThrottledException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottledException =+ Core._MatchServiceError+ defaultService+ "ThrottledException"+ Prelude.. Core.hasStatus 429++-- | Contains details about an error related to a transaction that was+-- cancelled.+_TransactionCanceledException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TransactionCanceledException =+ Core._MatchServiceError+ defaultService+ "TransactionCanceledException"+ Prelude.. Core.hasStatus 400++-- | Contains details about an error related to a transaction commit that was+-- in progress.+_TransactionCommitInProgressException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TransactionCommitInProgressException =+ Core._MatchServiceError+ defaultService+ "TransactionCommitInProgressException"+ Prelude.. Core.hasStatus 400++-- | Contains details about an error where the specified transaction has+-- already been committed and cannot be used for @UpdateTableObjects@.+_TransactionCommittedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TransactionCommittedException =+ Core._MatchServiceError+ defaultService+ "TransactionCommittedException"+ Prelude.. Core.hasStatus 400++-- | Contains details about an error related to work units not being ready.+_WorkUnitsNotReadyYetException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_WorkUnitsNotReadyYetException =+ Core._MatchServiceError+ defaultService+ "WorkUnitsNotReadyYetException"+ Prelude.. Core.hasStatus 420
+ gen/Amazonka/LakeFormation/Types/AddObjectInput.hs view
@@ -0,0 +1,132 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.AddObjectInput+-- Copyright : (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.LakeFormation.Types.AddObjectInput 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 new object to add to the governed table.+--+-- /See:/ 'newAddObjectInput' smart constructor.+data AddObjectInput = AddObjectInput'+ { -- | A list of partition values for the object. A value must be specified for+ -- each partition key associated with the table.+ --+ -- The supported data types are integer, long, date(yyyy-MM-dd),+ -- timestamp(yyyy-MM-dd HH:mm:ssXXX or yyyy-MM-dd HH:mm:ss\"), string and+ -- decimal.+ partitionValues :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | The Amazon S3 location of the object.+ uri :: Prelude.Text,+ -- | The Amazon S3 ETag of the object. Returned by @GetTableObjects@ for+ -- validation and used to identify changes to the underlying data.+ eTag :: Prelude.Text,+ -- | The size of the Amazon S3 object in bytes.+ size :: Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddObjectInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'partitionValues', 'addObjectInput_partitionValues' - A list of partition values for the object. A value must be specified for+-- each partition key associated with the table.+--+-- The supported data types are integer, long, date(yyyy-MM-dd),+-- timestamp(yyyy-MM-dd HH:mm:ssXXX or yyyy-MM-dd HH:mm:ss\"), string and+-- decimal.+--+-- 'uri', 'addObjectInput_uri' - The Amazon S3 location of the object.+--+-- 'eTag', 'addObjectInput_eTag' - The Amazon S3 ETag of the object. Returned by @GetTableObjects@ for+-- validation and used to identify changes to the underlying data.+--+-- 'size', 'addObjectInput_size' - The size of the Amazon S3 object in bytes.+newAddObjectInput ::+ -- | 'uri'+ Prelude.Text ->+ -- | 'eTag'+ Prelude.Text ->+ -- | 'size'+ Prelude.Integer ->+ AddObjectInput+newAddObjectInput pUri_ pETag_ pSize_ =+ AddObjectInput'+ { partitionValues = Prelude.Nothing,+ uri = pUri_,+ eTag = pETag_,+ size = pSize_+ }++-- | A list of partition values for the object. A value must be specified for+-- each partition key associated with the table.+--+-- The supported data types are integer, long, date(yyyy-MM-dd),+-- timestamp(yyyy-MM-dd HH:mm:ssXXX or yyyy-MM-dd HH:mm:ss\"), string and+-- decimal.+addObjectInput_partitionValues :: Lens.Lens' AddObjectInput (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+addObjectInput_partitionValues = Lens.lens (\AddObjectInput' {partitionValues} -> partitionValues) (\s@AddObjectInput' {} a -> s {partitionValues = a} :: AddObjectInput) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon S3 location of the object.+addObjectInput_uri :: Lens.Lens' AddObjectInput Prelude.Text+addObjectInput_uri = Lens.lens (\AddObjectInput' {uri} -> uri) (\s@AddObjectInput' {} a -> s {uri = a} :: AddObjectInput)++-- | The Amazon S3 ETag of the object. Returned by @GetTableObjects@ for+-- validation and used to identify changes to the underlying data.+addObjectInput_eTag :: Lens.Lens' AddObjectInput Prelude.Text+addObjectInput_eTag = Lens.lens (\AddObjectInput' {eTag} -> eTag) (\s@AddObjectInput' {} a -> s {eTag = a} :: AddObjectInput)++-- | The size of the Amazon S3 object in bytes.+addObjectInput_size :: Lens.Lens' AddObjectInput Prelude.Integer+addObjectInput_size = Lens.lens (\AddObjectInput' {size} -> size) (\s@AddObjectInput' {} a -> s {size = a} :: AddObjectInput)++instance Prelude.Hashable AddObjectInput where+ hashWithSalt _salt AddObjectInput' {..} =+ _salt+ `Prelude.hashWithSalt` partitionValues+ `Prelude.hashWithSalt` uri+ `Prelude.hashWithSalt` eTag+ `Prelude.hashWithSalt` size++instance Prelude.NFData AddObjectInput where+ rnf AddObjectInput' {..} =+ Prelude.rnf partitionValues+ `Prelude.seq` Prelude.rnf uri+ `Prelude.seq` Prelude.rnf eTag+ `Prelude.seq` Prelude.rnf size++instance Data.ToJSON AddObjectInput where+ toJSON AddObjectInput' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("PartitionValues" Data..=)+ Prelude.<$> partitionValues,+ Prelude.Just ("Uri" Data..= uri),+ Prelude.Just ("ETag" Data..= eTag),+ Prelude.Just ("Size" Data..= size)+ ]+ )
+ gen/Amazonka/LakeFormation/Types/AllRowsWildcard.hs view
@@ -0,0 +1,57 @@+{-# 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.LakeFormation.Types.AllRowsWildcard+-- Copyright : (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.LakeFormation.Types.AllRowsWildcard where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A structure that you pass to indicate you want all rows in a filter.+--+-- /See:/ 'newAllRowsWildcard' smart constructor.+data AllRowsWildcard = AllRowsWildcard'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AllRowsWildcard' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newAllRowsWildcard ::+ AllRowsWildcard+newAllRowsWildcard = AllRowsWildcard'++instance Data.FromJSON AllRowsWildcard where+ parseJSON =+ Data.withObject+ "AllRowsWildcard"+ (\x -> Prelude.pure AllRowsWildcard')++instance Prelude.Hashable AllRowsWildcard where+ hashWithSalt _salt _ =+ _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData AllRowsWildcard where+ rnf _ = ()++instance Data.ToJSON AllRowsWildcard where+ toJSON = Prelude.const (Data.Object Prelude.mempty)
+ gen/Amazonka/LakeFormation/Types/AuditContext.hs view
@@ -0,0 +1,78 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.AuditContext+-- Copyright : (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.LakeFormation.Types.AuditContext 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 used to include auditing information on the privileged API.+--+-- /See:/ 'newAuditContext' smart constructor.+data AuditContext = AuditContext'+ { -- | The filter engine can populate the \'AdditionalAuditContext\'+ -- information with the request ID for you to track. This information will+ -- be displayed in CloudTrail log in your account.+ additionalAuditContext :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AuditContext' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'additionalAuditContext', 'auditContext_additionalAuditContext' - The filter engine can populate the \'AdditionalAuditContext\'+-- information with the request ID for you to track. This information will+-- be displayed in CloudTrail log in your account.+newAuditContext ::+ AuditContext+newAuditContext =+ AuditContext'+ { additionalAuditContext =+ Prelude.Nothing+ }++-- | The filter engine can populate the \'AdditionalAuditContext\'+-- information with the request ID for you to track. This information will+-- be displayed in CloudTrail log in your account.+auditContext_additionalAuditContext :: Lens.Lens' AuditContext (Prelude.Maybe Prelude.Text)+auditContext_additionalAuditContext = Lens.lens (\AuditContext' {additionalAuditContext} -> additionalAuditContext) (\s@AuditContext' {} a -> s {additionalAuditContext = a} :: AuditContext)++instance Prelude.Hashable AuditContext where+ hashWithSalt _salt AuditContext' {..} =+ _salt `Prelude.hashWithSalt` additionalAuditContext++instance Prelude.NFData AuditContext where+ rnf AuditContext' {..} =+ Prelude.rnf additionalAuditContext++instance Data.ToJSON AuditContext where+ toJSON AuditContext' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AdditionalAuditContext" Data..=)+ Prelude.<$> additionalAuditContext+ ]+ )
+ gen/Amazonka/LakeFormation/Types/BatchPermissionsFailureEntry.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.LakeFormation.Types.BatchPermissionsFailureEntry+-- Copyright : (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.LakeFormation.Types.BatchPermissionsFailureEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.BatchPermissionsRequestEntry+import Amazonka.LakeFormation.Types.ErrorDetail+import qualified Amazonka.Prelude as Prelude++-- | A list of failures when performing a batch grant or batch revoke+-- operation.+--+-- /See:/ 'newBatchPermissionsFailureEntry' smart constructor.+data BatchPermissionsFailureEntry = BatchPermissionsFailureEntry'+ { -- | An error message that applies to the failure of the entry.+ error :: Prelude.Maybe ErrorDetail,+ -- | An identifier for an entry of the batch request.+ requestEntry :: Prelude.Maybe BatchPermissionsRequestEntry+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchPermissionsFailureEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'error', 'batchPermissionsFailureEntry_error' - An error message that applies to the failure of the entry.+--+-- 'requestEntry', 'batchPermissionsFailureEntry_requestEntry' - An identifier for an entry of the batch request.+newBatchPermissionsFailureEntry ::+ BatchPermissionsFailureEntry+newBatchPermissionsFailureEntry =+ BatchPermissionsFailureEntry'+ { error =+ Prelude.Nothing,+ requestEntry = Prelude.Nothing+ }++-- | An error message that applies to the failure of the entry.+batchPermissionsFailureEntry_error :: Lens.Lens' BatchPermissionsFailureEntry (Prelude.Maybe ErrorDetail)+batchPermissionsFailureEntry_error = Lens.lens (\BatchPermissionsFailureEntry' {error} -> error) (\s@BatchPermissionsFailureEntry' {} a -> s {error = a} :: BatchPermissionsFailureEntry)++-- | An identifier for an entry of the batch request.+batchPermissionsFailureEntry_requestEntry :: Lens.Lens' BatchPermissionsFailureEntry (Prelude.Maybe BatchPermissionsRequestEntry)+batchPermissionsFailureEntry_requestEntry = Lens.lens (\BatchPermissionsFailureEntry' {requestEntry} -> requestEntry) (\s@BatchPermissionsFailureEntry' {} a -> s {requestEntry = a} :: BatchPermissionsFailureEntry)++instance Data.FromJSON BatchPermissionsFailureEntry where+ parseJSON =+ Data.withObject+ "BatchPermissionsFailureEntry"+ ( \x ->+ BatchPermissionsFailureEntry'+ Prelude.<$> (x Data..:? "Error")+ Prelude.<*> (x Data..:? "RequestEntry")+ )++instance+ Prelude.Hashable+ BatchPermissionsFailureEntry+ where+ hashWithSalt _salt BatchPermissionsFailureEntry' {..} =+ _salt+ `Prelude.hashWithSalt` error+ `Prelude.hashWithSalt` requestEntry++instance Prelude.NFData BatchPermissionsFailureEntry where+ rnf BatchPermissionsFailureEntry' {..} =+ Prelude.rnf error+ `Prelude.seq` Prelude.rnf requestEntry
+ gen/Amazonka/LakeFormation/Types/BatchPermissionsRequestEntry.hs view
@@ -0,0 +1,145 @@+{-# 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.LakeFormation.Types.BatchPermissionsRequestEntry+-- Copyright : (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.LakeFormation.Types.BatchPermissionsRequestEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.DataLakePrincipal+import Amazonka.LakeFormation.Types.Permission+import Amazonka.LakeFormation.Types.Resource+import qualified Amazonka.Prelude as Prelude++-- | A permission to a resource granted by batch operation to the principal.+--+-- /See:/ 'newBatchPermissionsRequestEntry' smart constructor.+data BatchPermissionsRequestEntry = BatchPermissionsRequestEntry'+ { -- | The permissions to be granted.+ permissions :: Prelude.Maybe [Permission],+ -- | Indicates if the option to pass permissions is granted.+ permissionsWithGrantOption :: Prelude.Maybe [Permission],+ -- | The principal to be granted a permission.+ principal :: Prelude.Maybe DataLakePrincipal,+ -- | The resource to which the principal is to be granted a permission.+ resource :: Prelude.Maybe Resource,+ -- | A unique identifier for the batch permissions request entry.+ id :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchPermissionsRequestEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'permissions', 'batchPermissionsRequestEntry_permissions' - The permissions to be granted.+--+-- 'permissionsWithGrantOption', 'batchPermissionsRequestEntry_permissionsWithGrantOption' - Indicates if the option to pass permissions is granted.+--+-- 'principal', 'batchPermissionsRequestEntry_principal' - The principal to be granted a permission.+--+-- 'resource', 'batchPermissionsRequestEntry_resource' - The resource to which the principal is to be granted a permission.+--+-- 'id', 'batchPermissionsRequestEntry_id' - A unique identifier for the batch permissions request entry.+newBatchPermissionsRequestEntry ::+ -- | 'id'+ Prelude.Text ->+ BatchPermissionsRequestEntry+newBatchPermissionsRequestEntry pId_ =+ BatchPermissionsRequestEntry'+ { permissions =+ Prelude.Nothing,+ permissionsWithGrantOption = Prelude.Nothing,+ principal = Prelude.Nothing,+ resource = Prelude.Nothing,+ id = pId_+ }++-- | The permissions to be granted.+batchPermissionsRequestEntry_permissions :: Lens.Lens' BatchPermissionsRequestEntry (Prelude.Maybe [Permission])+batchPermissionsRequestEntry_permissions = Lens.lens (\BatchPermissionsRequestEntry' {permissions} -> permissions) (\s@BatchPermissionsRequestEntry' {} a -> s {permissions = a} :: BatchPermissionsRequestEntry) Prelude.. Lens.mapping Lens.coerced++-- | Indicates if the option to pass permissions is granted.+batchPermissionsRequestEntry_permissionsWithGrantOption :: Lens.Lens' BatchPermissionsRequestEntry (Prelude.Maybe [Permission])+batchPermissionsRequestEntry_permissionsWithGrantOption = Lens.lens (\BatchPermissionsRequestEntry' {permissionsWithGrantOption} -> permissionsWithGrantOption) (\s@BatchPermissionsRequestEntry' {} a -> s {permissionsWithGrantOption = a} :: BatchPermissionsRequestEntry) Prelude.. Lens.mapping Lens.coerced++-- | The principal to be granted a permission.+batchPermissionsRequestEntry_principal :: Lens.Lens' BatchPermissionsRequestEntry (Prelude.Maybe DataLakePrincipal)+batchPermissionsRequestEntry_principal = Lens.lens (\BatchPermissionsRequestEntry' {principal} -> principal) (\s@BatchPermissionsRequestEntry' {} a -> s {principal = a} :: BatchPermissionsRequestEntry)++-- | The resource to which the principal is to be granted a permission.+batchPermissionsRequestEntry_resource :: Lens.Lens' BatchPermissionsRequestEntry (Prelude.Maybe Resource)+batchPermissionsRequestEntry_resource = Lens.lens (\BatchPermissionsRequestEntry' {resource} -> resource) (\s@BatchPermissionsRequestEntry' {} a -> s {resource = a} :: BatchPermissionsRequestEntry)++-- | A unique identifier for the batch permissions request entry.+batchPermissionsRequestEntry_id :: Lens.Lens' BatchPermissionsRequestEntry Prelude.Text+batchPermissionsRequestEntry_id = Lens.lens (\BatchPermissionsRequestEntry' {id} -> id) (\s@BatchPermissionsRequestEntry' {} a -> s {id = a} :: BatchPermissionsRequestEntry)++instance Data.FromJSON BatchPermissionsRequestEntry where+ parseJSON =+ Data.withObject+ "BatchPermissionsRequestEntry"+ ( \x ->+ BatchPermissionsRequestEntry'+ Prelude.<$> (x Data..:? "Permissions" Data..!= Prelude.mempty)+ Prelude.<*> ( x+ Data..:? "PermissionsWithGrantOption"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "Principal")+ Prelude.<*> (x Data..:? "Resource")+ Prelude.<*> (x Data..: "Id")+ )++instance+ Prelude.Hashable+ BatchPermissionsRequestEntry+ where+ hashWithSalt _salt BatchPermissionsRequestEntry' {..} =+ _salt+ `Prelude.hashWithSalt` permissions+ `Prelude.hashWithSalt` permissionsWithGrantOption+ `Prelude.hashWithSalt` principal+ `Prelude.hashWithSalt` resource+ `Prelude.hashWithSalt` id++instance Prelude.NFData BatchPermissionsRequestEntry where+ rnf BatchPermissionsRequestEntry' {..} =+ Prelude.rnf permissions+ `Prelude.seq` Prelude.rnf permissionsWithGrantOption+ `Prelude.seq` Prelude.rnf principal+ `Prelude.seq` Prelude.rnf resource+ `Prelude.seq` Prelude.rnf id++instance Data.ToJSON BatchPermissionsRequestEntry where+ toJSON BatchPermissionsRequestEntry' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Permissions" Data..=) Prelude.<$> permissions,+ ("PermissionsWithGrantOption" Data..=)+ Prelude.<$> permissionsWithGrantOption,+ ("Principal" Data..=) Prelude.<$> principal,+ ("Resource" Data..=) Prelude.<$> resource,+ Prelude.Just ("Id" Data..= id)+ ]+ )
+ gen/Amazonka/LakeFormation/Types/CatalogResource.hs view
@@ -0,0 +1,57 @@+{-# 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.LakeFormation.Types.CatalogResource+-- Copyright : (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.LakeFormation.Types.CatalogResource 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 the catalog object.+--+-- /See:/ 'newCatalogResource' smart constructor.+data CatalogResource = CatalogResource'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CatalogResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newCatalogResource ::+ CatalogResource+newCatalogResource = CatalogResource'++instance Data.FromJSON CatalogResource where+ parseJSON =+ Data.withObject+ "CatalogResource"+ (\x -> Prelude.pure CatalogResource')++instance Prelude.Hashable CatalogResource where+ hashWithSalt _salt _ =+ _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData CatalogResource where+ rnf _ = ()++instance Data.ToJSON CatalogResource where+ toJSON = Prelude.const (Data.Object Prelude.mempty)
+ gen/Amazonka/LakeFormation/Types/ColumnLFTag.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.ColumnLFTag+-- Copyright : (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.LakeFormation.Types.ColumnLFTag where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.LFTagPair+import qualified Amazonka.Prelude as Prelude++-- | A structure containing the name of a column resource and the LF-tags+-- attached to it.+--+-- /See:/ 'newColumnLFTag' smart constructor.+data ColumnLFTag = ColumnLFTag'+ { -- | The LF-tags attached to a column resource.+ lFTags :: Prelude.Maybe (Prelude.NonEmpty LFTagPair),+ -- | The name of a column resource.+ name :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ColumnLFTag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lFTags', 'columnLFTag_lFTags' - The LF-tags attached to a column resource.+--+-- 'name', 'columnLFTag_name' - The name of a column resource.+newColumnLFTag ::+ ColumnLFTag+newColumnLFTag =+ ColumnLFTag'+ { lFTags = Prelude.Nothing,+ name = Prelude.Nothing+ }++-- | The LF-tags attached to a column resource.+columnLFTag_lFTags :: Lens.Lens' ColumnLFTag (Prelude.Maybe (Prelude.NonEmpty LFTagPair))+columnLFTag_lFTags = Lens.lens (\ColumnLFTag' {lFTags} -> lFTags) (\s@ColumnLFTag' {} a -> s {lFTags = a} :: ColumnLFTag) Prelude.. Lens.mapping Lens.coerced++-- | The name of a column resource.+columnLFTag_name :: Lens.Lens' ColumnLFTag (Prelude.Maybe Prelude.Text)+columnLFTag_name = Lens.lens (\ColumnLFTag' {name} -> name) (\s@ColumnLFTag' {} a -> s {name = a} :: ColumnLFTag)++instance Data.FromJSON ColumnLFTag where+ parseJSON =+ Data.withObject+ "ColumnLFTag"+ ( \x ->+ ColumnLFTag'+ Prelude.<$> (x Data..:? "LFTags")+ Prelude.<*> (x Data..:? "Name")+ )++instance Prelude.Hashable ColumnLFTag where+ hashWithSalt _salt ColumnLFTag' {..} =+ _salt+ `Prelude.hashWithSalt` lFTags+ `Prelude.hashWithSalt` name++instance Prelude.NFData ColumnLFTag where+ rnf ColumnLFTag' {..} =+ Prelude.rnf lFTags `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/LakeFormation/Types/ColumnWildcard.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.ColumnWildcard+-- Copyright : (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.LakeFormation.Types.ColumnWildcard 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 wildcard object, consisting of an optional list of excluded column+-- names or indexes.+--+-- /See:/ 'newColumnWildcard' smart constructor.+data ColumnWildcard = ColumnWildcard'+ { -- | Excludes column names. Any column with this name will be excluded.+ excludedColumnNames :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ColumnWildcard' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'excludedColumnNames', 'columnWildcard_excludedColumnNames' - Excludes column names. Any column with this name will be excluded.+newColumnWildcard ::+ ColumnWildcard+newColumnWildcard =+ ColumnWildcard'+ { excludedColumnNames =+ Prelude.Nothing+ }++-- | Excludes column names. Any column with this name will be excluded.+columnWildcard_excludedColumnNames :: Lens.Lens' ColumnWildcard (Prelude.Maybe [Prelude.Text])+columnWildcard_excludedColumnNames = Lens.lens (\ColumnWildcard' {excludedColumnNames} -> excludedColumnNames) (\s@ColumnWildcard' {} a -> s {excludedColumnNames = a} :: ColumnWildcard) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ColumnWildcard where+ parseJSON =+ Data.withObject+ "ColumnWildcard"+ ( \x ->+ ColumnWildcard'+ Prelude.<$> ( x+ Data..:? "ExcludedColumnNames"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable ColumnWildcard where+ hashWithSalt _salt ColumnWildcard' {..} =+ _salt `Prelude.hashWithSalt` excludedColumnNames++instance Prelude.NFData ColumnWildcard where+ rnf ColumnWildcard' {..} =+ Prelude.rnf excludedColumnNames++instance Data.ToJSON ColumnWildcard where+ toJSON ColumnWildcard' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ExcludedColumnNames" Data..=)+ Prelude.<$> excludedColumnNames+ ]+ )
+ gen/Amazonka/LakeFormation/Types/ComparisonOperator.hs view
@@ -0,0 +1,116 @@+{-# 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.LakeFormation.Types.ComparisonOperator+-- Copyright : (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.LakeFormation.Types.ComparisonOperator+ ( ComparisonOperator+ ( ..,+ ComparisonOperator_BEGINS_WITH,+ ComparisonOperator_BETWEEN,+ ComparisonOperator_CONTAINS,+ ComparisonOperator_EQ,+ ComparisonOperator_GE,+ ComparisonOperator_GT,+ ComparisonOperator_IN,+ ComparisonOperator_LE,+ ComparisonOperator_LT,+ ComparisonOperator_NE,+ ComparisonOperator_NOT_CONTAINS+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ComparisonOperator = ComparisonOperator'+ { fromComparisonOperator ::+ 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 ComparisonOperator_BEGINS_WITH :: ComparisonOperator+pattern ComparisonOperator_BEGINS_WITH = ComparisonOperator' "BEGINS_WITH"++pattern ComparisonOperator_BETWEEN :: ComparisonOperator+pattern ComparisonOperator_BETWEEN = ComparisonOperator' "BETWEEN"++pattern ComparisonOperator_CONTAINS :: ComparisonOperator+pattern ComparisonOperator_CONTAINS = ComparisonOperator' "CONTAINS"++pattern ComparisonOperator_EQ :: ComparisonOperator+pattern ComparisonOperator_EQ = ComparisonOperator' "EQ"++pattern ComparisonOperator_GE :: ComparisonOperator+pattern ComparisonOperator_GE = ComparisonOperator' "GE"++pattern ComparisonOperator_GT :: ComparisonOperator+pattern ComparisonOperator_GT = ComparisonOperator' "GT"++pattern ComparisonOperator_IN :: ComparisonOperator+pattern ComparisonOperator_IN = ComparisonOperator' "IN"++pattern ComparisonOperator_LE :: ComparisonOperator+pattern ComparisonOperator_LE = ComparisonOperator' "LE"++pattern ComparisonOperator_LT :: ComparisonOperator+pattern ComparisonOperator_LT = ComparisonOperator' "LT"++pattern ComparisonOperator_NE :: ComparisonOperator+pattern ComparisonOperator_NE = ComparisonOperator' "NE"++pattern ComparisonOperator_NOT_CONTAINS :: ComparisonOperator+pattern ComparisonOperator_NOT_CONTAINS = ComparisonOperator' "NOT_CONTAINS"++{-# COMPLETE+ ComparisonOperator_BEGINS_WITH,+ ComparisonOperator_BETWEEN,+ ComparisonOperator_CONTAINS,+ ComparisonOperator_EQ,+ ComparisonOperator_GE,+ ComparisonOperator_GT,+ ComparisonOperator_IN,+ ComparisonOperator_LE,+ ComparisonOperator_LT,+ ComparisonOperator_NE,+ ComparisonOperator_NOT_CONTAINS,+ ComparisonOperator'+ #-}
+ gen/Amazonka/LakeFormation/Types/DataCellsFilter.hs view
@@ -0,0 +1,180 @@+{-# 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.LakeFormation.Types.DataCellsFilter+-- Copyright : (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.LakeFormation.Types.DataCellsFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.ColumnWildcard+import Amazonka.LakeFormation.Types.RowFilter+import qualified Amazonka.Prelude as Prelude++-- | A structure that describes certain columns on certain rows.+--+-- /See:/ 'newDataCellsFilter' smart constructor.+data DataCellsFilter = DataCellsFilter'+ { -- | A list of column names.+ columnNames :: Prelude.Maybe [Prelude.Text],+ -- | A wildcard with exclusions.+ --+ -- You must specify either a @ColumnNames@ list or the @ColumnWildCard@.+ columnWildcard :: Prelude.Maybe ColumnWildcard,+ -- | A PartiQL predicate.+ rowFilter :: Prelude.Maybe RowFilter,+ -- | The ID of the catalog to which the table belongs.+ tableCatalogId :: Prelude.Text,+ -- | A database in the Glue Data Catalog.+ databaseName :: Prelude.Text,+ -- | A table in the database.+ tableName :: Prelude.Text,+ -- | The name given by the user to the data filter cell.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataCellsFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'columnNames', 'dataCellsFilter_columnNames' - A list of column names.+--+-- 'columnWildcard', 'dataCellsFilter_columnWildcard' - A wildcard with exclusions.+--+-- You must specify either a @ColumnNames@ list or the @ColumnWildCard@.+--+-- 'rowFilter', 'dataCellsFilter_rowFilter' - A PartiQL predicate.+--+-- 'tableCatalogId', 'dataCellsFilter_tableCatalogId' - The ID of the catalog to which the table belongs.+--+-- 'databaseName', 'dataCellsFilter_databaseName' - A database in the Glue Data Catalog.+--+-- 'tableName', 'dataCellsFilter_tableName' - A table in the database.+--+-- 'name', 'dataCellsFilter_name' - The name given by the user to the data filter cell.+newDataCellsFilter ::+ -- | 'tableCatalogId'+ Prelude.Text ->+ -- | 'databaseName'+ Prelude.Text ->+ -- | 'tableName'+ Prelude.Text ->+ -- | 'name'+ Prelude.Text ->+ DataCellsFilter+newDataCellsFilter+ pTableCatalogId_+ pDatabaseName_+ pTableName_+ pName_ =+ DataCellsFilter'+ { columnNames = Prelude.Nothing,+ columnWildcard = Prelude.Nothing,+ rowFilter = Prelude.Nothing,+ tableCatalogId = pTableCatalogId_,+ databaseName = pDatabaseName_,+ tableName = pTableName_,+ name = pName_+ }++-- | A list of column names.+dataCellsFilter_columnNames :: Lens.Lens' DataCellsFilter (Prelude.Maybe [Prelude.Text])+dataCellsFilter_columnNames = Lens.lens (\DataCellsFilter' {columnNames} -> columnNames) (\s@DataCellsFilter' {} a -> s {columnNames = a} :: DataCellsFilter) Prelude.. Lens.mapping Lens.coerced++-- | A wildcard with exclusions.+--+-- You must specify either a @ColumnNames@ list or the @ColumnWildCard@.+dataCellsFilter_columnWildcard :: Lens.Lens' DataCellsFilter (Prelude.Maybe ColumnWildcard)+dataCellsFilter_columnWildcard = Lens.lens (\DataCellsFilter' {columnWildcard} -> columnWildcard) (\s@DataCellsFilter' {} a -> s {columnWildcard = a} :: DataCellsFilter)++-- | A PartiQL predicate.+dataCellsFilter_rowFilter :: Lens.Lens' DataCellsFilter (Prelude.Maybe RowFilter)+dataCellsFilter_rowFilter = Lens.lens (\DataCellsFilter' {rowFilter} -> rowFilter) (\s@DataCellsFilter' {} a -> s {rowFilter = a} :: DataCellsFilter)++-- | The ID of the catalog to which the table belongs.+dataCellsFilter_tableCatalogId :: Lens.Lens' DataCellsFilter Prelude.Text+dataCellsFilter_tableCatalogId = Lens.lens (\DataCellsFilter' {tableCatalogId} -> tableCatalogId) (\s@DataCellsFilter' {} a -> s {tableCatalogId = a} :: DataCellsFilter)++-- | A database in the Glue Data Catalog.+dataCellsFilter_databaseName :: Lens.Lens' DataCellsFilter Prelude.Text+dataCellsFilter_databaseName = Lens.lens (\DataCellsFilter' {databaseName} -> databaseName) (\s@DataCellsFilter' {} a -> s {databaseName = a} :: DataCellsFilter)++-- | A table in the database.+dataCellsFilter_tableName :: Lens.Lens' DataCellsFilter Prelude.Text+dataCellsFilter_tableName = Lens.lens (\DataCellsFilter' {tableName} -> tableName) (\s@DataCellsFilter' {} a -> s {tableName = a} :: DataCellsFilter)++-- | The name given by the user to the data filter cell.+dataCellsFilter_name :: Lens.Lens' DataCellsFilter Prelude.Text+dataCellsFilter_name = Lens.lens (\DataCellsFilter' {name} -> name) (\s@DataCellsFilter' {} a -> s {name = a} :: DataCellsFilter)++instance Data.FromJSON DataCellsFilter where+ parseJSON =+ Data.withObject+ "DataCellsFilter"+ ( \x ->+ DataCellsFilter'+ Prelude.<$> (x Data..:? "ColumnNames" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "ColumnWildcard")+ Prelude.<*> (x Data..:? "RowFilter")+ Prelude.<*> (x Data..: "TableCatalogId")+ Prelude.<*> (x Data..: "DatabaseName")+ Prelude.<*> (x Data..: "TableName")+ Prelude.<*> (x Data..: "Name")+ )++instance Prelude.Hashable DataCellsFilter where+ hashWithSalt _salt DataCellsFilter' {..} =+ _salt+ `Prelude.hashWithSalt` columnNames+ `Prelude.hashWithSalt` columnWildcard+ `Prelude.hashWithSalt` rowFilter+ `Prelude.hashWithSalt` tableCatalogId+ `Prelude.hashWithSalt` databaseName+ `Prelude.hashWithSalt` tableName+ `Prelude.hashWithSalt` name++instance Prelude.NFData DataCellsFilter where+ rnf DataCellsFilter' {..} =+ Prelude.rnf columnNames+ `Prelude.seq` Prelude.rnf columnWildcard+ `Prelude.seq` Prelude.rnf rowFilter+ `Prelude.seq` Prelude.rnf tableCatalogId+ `Prelude.seq` Prelude.rnf databaseName+ `Prelude.seq` Prelude.rnf tableName+ `Prelude.seq` Prelude.rnf name++instance Data.ToJSON DataCellsFilter where+ toJSON DataCellsFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ColumnNames" Data..=) Prelude.<$> columnNames,+ ("ColumnWildcard" Data..=)+ Prelude.<$> columnWildcard,+ ("RowFilter" Data..=) Prelude.<$> rowFilter,+ Prelude.Just+ ("TableCatalogId" Data..= tableCatalogId),+ Prelude.Just ("DatabaseName" Data..= databaseName),+ Prelude.Just ("TableName" Data..= tableName),+ Prelude.Just ("Name" Data..= name)+ ]+ )
+ gen/Amazonka/LakeFormation/Types/DataCellsFilterResource.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.DataCellsFilterResource+-- Copyright : (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.LakeFormation.Types.DataCellsFilterResource 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 a data cells filter resource.+--+-- /See:/ 'newDataCellsFilterResource' smart constructor.+data DataCellsFilterResource = DataCellsFilterResource'+ { -- | A database in the Glue Data Catalog.+ databaseName :: Prelude.Maybe Prelude.Text,+ -- | The name of the data cells filter.+ name :: Prelude.Maybe Prelude.Text,+ -- | The ID of the catalog to which the table belongs.+ tableCatalogId :: Prelude.Maybe Prelude.Text,+ -- | The name of the table.+ tableName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataCellsFilterResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'databaseName', 'dataCellsFilterResource_databaseName' - A database in the Glue Data Catalog.+--+-- 'name', 'dataCellsFilterResource_name' - The name of the data cells filter.+--+-- 'tableCatalogId', 'dataCellsFilterResource_tableCatalogId' - The ID of the catalog to which the table belongs.+--+-- 'tableName', 'dataCellsFilterResource_tableName' - The name of the table.+newDataCellsFilterResource ::+ DataCellsFilterResource+newDataCellsFilterResource =+ DataCellsFilterResource'+ { databaseName =+ Prelude.Nothing,+ name = Prelude.Nothing,+ tableCatalogId = Prelude.Nothing,+ tableName = Prelude.Nothing+ }++-- | A database in the Glue Data Catalog.+dataCellsFilterResource_databaseName :: Lens.Lens' DataCellsFilterResource (Prelude.Maybe Prelude.Text)+dataCellsFilterResource_databaseName = Lens.lens (\DataCellsFilterResource' {databaseName} -> databaseName) (\s@DataCellsFilterResource' {} a -> s {databaseName = a} :: DataCellsFilterResource)++-- | The name of the data cells filter.+dataCellsFilterResource_name :: Lens.Lens' DataCellsFilterResource (Prelude.Maybe Prelude.Text)+dataCellsFilterResource_name = Lens.lens (\DataCellsFilterResource' {name} -> name) (\s@DataCellsFilterResource' {} a -> s {name = a} :: DataCellsFilterResource)++-- | The ID of the catalog to which the table belongs.+dataCellsFilterResource_tableCatalogId :: Lens.Lens' DataCellsFilterResource (Prelude.Maybe Prelude.Text)+dataCellsFilterResource_tableCatalogId = Lens.lens (\DataCellsFilterResource' {tableCatalogId} -> tableCatalogId) (\s@DataCellsFilterResource' {} a -> s {tableCatalogId = a} :: DataCellsFilterResource)++-- | The name of the table.+dataCellsFilterResource_tableName :: Lens.Lens' DataCellsFilterResource (Prelude.Maybe Prelude.Text)+dataCellsFilterResource_tableName = Lens.lens (\DataCellsFilterResource' {tableName} -> tableName) (\s@DataCellsFilterResource' {} a -> s {tableName = a} :: DataCellsFilterResource)++instance Data.FromJSON DataCellsFilterResource where+ parseJSON =+ Data.withObject+ "DataCellsFilterResource"+ ( \x ->+ DataCellsFilterResource'+ Prelude.<$> (x Data..:? "DatabaseName")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "TableCatalogId")+ Prelude.<*> (x Data..:? "TableName")+ )++instance Prelude.Hashable DataCellsFilterResource where+ hashWithSalt _salt DataCellsFilterResource' {..} =+ _salt+ `Prelude.hashWithSalt` databaseName+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` tableCatalogId+ `Prelude.hashWithSalt` tableName++instance Prelude.NFData DataCellsFilterResource where+ rnf DataCellsFilterResource' {..} =+ Prelude.rnf databaseName+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf tableCatalogId+ `Prelude.seq` Prelude.rnf tableName++instance Data.ToJSON DataCellsFilterResource where+ toJSON DataCellsFilterResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DatabaseName" Data..=) Prelude.<$> databaseName,+ ("Name" Data..=) Prelude.<$> name,+ ("TableCatalogId" Data..=)+ Prelude.<$> tableCatalogId,+ ("TableName" Data..=) Prelude.<$> tableName+ ]+ )
+ gen/Amazonka/LakeFormation/Types/DataLakePrincipal.hs view
@@ -0,0 +1,83 @@+{-# 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.LakeFormation.Types.DataLakePrincipal+-- Copyright : (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.LakeFormation.Types.DataLakePrincipal 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 Lake Formation principal. Supported principals are IAM users or IAM+-- roles.+--+-- /See:/ 'newDataLakePrincipal' smart constructor.+data DataLakePrincipal = DataLakePrincipal'+ { -- | An identifier for the Lake Formation principal.+ dataLakePrincipalIdentifier :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataLakePrincipal' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataLakePrincipalIdentifier', 'dataLakePrincipal_dataLakePrincipalIdentifier' - An identifier for the Lake Formation principal.+newDataLakePrincipal ::+ DataLakePrincipal+newDataLakePrincipal =+ DataLakePrincipal'+ { dataLakePrincipalIdentifier =+ Prelude.Nothing+ }++-- | An identifier for the Lake Formation principal.+dataLakePrincipal_dataLakePrincipalIdentifier :: Lens.Lens' DataLakePrincipal (Prelude.Maybe Prelude.Text)+dataLakePrincipal_dataLakePrincipalIdentifier = Lens.lens (\DataLakePrincipal' {dataLakePrincipalIdentifier} -> dataLakePrincipalIdentifier) (\s@DataLakePrincipal' {} a -> s {dataLakePrincipalIdentifier = a} :: DataLakePrincipal)++instance Data.FromJSON DataLakePrincipal where+ parseJSON =+ Data.withObject+ "DataLakePrincipal"+ ( \x ->+ DataLakePrincipal'+ Prelude.<$> (x Data..:? "DataLakePrincipalIdentifier")+ )++instance Prelude.Hashable DataLakePrincipal where+ hashWithSalt _salt DataLakePrincipal' {..} =+ _salt+ `Prelude.hashWithSalt` dataLakePrincipalIdentifier++instance Prelude.NFData DataLakePrincipal where+ rnf DataLakePrincipal' {..} =+ Prelude.rnf dataLakePrincipalIdentifier++instance Data.ToJSON DataLakePrincipal where+ toJSON DataLakePrincipal' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DataLakePrincipalIdentifier" Data..=)+ Prelude.<$> dataLakePrincipalIdentifier+ ]+ )
+ gen/Amazonka/LakeFormation/Types/DataLakeResourceType.hs view
@@ -0,0 +1,101 @@+{-# 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.LakeFormation.Types.DataLakeResourceType+-- Copyright : (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.LakeFormation.Types.DataLakeResourceType+ ( DataLakeResourceType+ ( ..,+ DataLakeResourceType_CATALOG,+ DataLakeResourceType_DATABASE,+ DataLakeResourceType_DATA_LOCATION,+ DataLakeResourceType_LF_TAG,+ DataLakeResourceType_LF_TAG_POLICY,+ DataLakeResourceType_LF_TAG_POLICY_DATABASE,+ DataLakeResourceType_LF_TAG_POLICY_TABLE,+ DataLakeResourceType_TABLE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataLakeResourceType = DataLakeResourceType'+ { fromDataLakeResourceType ::+ 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 DataLakeResourceType_CATALOG :: DataLakeResourceType+pattern DataLakeResourceType_CATALOG = DataLakeResourceType' "CATALOG"++pattern DataLakeResourceType_DATABASE :: DataLakeResourceType+pattern DataLakeResourceType_DATABASE = DataLakeResourceType' "DATABASE"++pattern DataLakeResourceType_DATA_LOCATION :: DataLakeResourceType+pattern DataLakeResourceType_DATA_LOCATION = DataLakeResourceType' "DATA_LOCATION"++pattern DataLakeResourceType_LF_TAG :: DataLakeResourceType+pattern DataLakeResourceType_LF_TAG = DataLakeResourceType' "LF_TAG"++pattern DataLakeResourceType_LF_TAG_POLICY :: DataLakeResourceType+pattern DataLakeResourceType_LF_TAG_POLICY = DataLakeResourceType' "LF_TAG_POLICY"++pattern DataLakeResourceType_LF_TAG_POLICY_DATABASE :: DataLakeResourceType+pattern DataLakeResourceType_LF_TAG_POLICY_DATABASE = DataLakeResourceType' "LF_TAG_POLICY_DATABASE"++pattern DataLakeResourceType_LF_TAG_POLICY_TABLE :: DataLakeResourceType+pattern DataLakeResourceType_LF_TAG_POLICY_TABLE = DataLakeResourceType' "LF_TAG_POLICY_TABLE"++pattern DataLakeResourceType_TABLE :: DataLakeResourceType+pattern DataLakeResourceType_TABLE = DataLakeResourceType' "TABLE"++{-# COMPLETE+ DataLakeResourceType_CATALOG,+ DataLakeResourceType_DATABASE,+ DataLakeResourceType_DATA_LOCATION,+ DataLakeResourceType_LF_TAG,+ DataLakeResourceType_LF_TAG_POLICY,+ DataLakeResourceType_LF_TAG_POLICY_DATABASE,+ DataLakeResourceType_LF_TAG_POLICY_TABLE,+ DataLakeResourceType_TABLE,+ DataLakeResourceType'+ #-}
+ gen/Amazonka/LakeFormation/Types/DataLakeSettings.hs view
@@ -0,0 +1,348 @@+{-# 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.LakeFormation.Types.DataLakeSettings+-- Copyright : (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.LakeFormation.Types.DataLakeSettings where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.DataLakePrincipal+import Amazonka.LakeFormation.Types.PrincipalPermissions+import qualified Amazonka.Prelude as Prelude++-- | A structure representing a list of Lake Formation principals designated+-- as data lake administrators and lists of principal permission entries+-- for default create database and default create table permissions.+--+-- /See:/ 'newDataLakeSettings' smart constructor.+data DataLakeSettings = DataLakeSettings'+ { -- | Whether to allow Amazon EMR clusters to access data managed by Lake+ -- Formation.+ --+ -- If true, you allow Amazon EMR clusters to access data in Amazon S3+ -- locations that are registered with Lake Formation.+ --+ -- If false or null, no Amazon EMR clusters will be able to access data in+ -- Amazon S3 locations that are registered with Lake Formation.+ --+ -- For more information, see+ -- <https://docs-aws.amazon.com/lake-formation/latest/dg/getting-started-setup.html#emr-switch (Optional) Allow Data Filtering on Amazon EMR>.+ allowExternalDataFiltering :: Prelude.Maybe Prelude.Bool,+ -- | Lake Formation relies on a privileged process secured by Amazon EMR or+ -- the third party integrator to tag the user\'s role while assuming it.+ -- Lake Formation will publish the acceptable key-value pair, for example+ -- key = \"LakeFormationTrustedCaller\" and value = \"TRUE\" and the third+ -- party integrator must properly tag the temporary security credentials+ -- that will be used to call Lake Formation\'s administrative APIs.+ authorizedSessionTagValueList :: Prelude.Maybe [Prelude.Text],+ -- | Specifies whether access control on newly created database is managed by+ -- Lake Formation permissions or exclusively by IAM permissions.+ --+ -- A null value indicates access control by Lake Formation permissions. A+ -- value that assigns ALL to IAM_ALLOWED_PRINCIPALS indicates access+ -- control by IAM permissions. This is referred to as the setting \"Use+ -- only IAM access control,\" and is for backward compatibility with the+ -- Glue permission model implemented by IAM permissions.+ --+ -- The only permitted values are an empty array or an array that contains a+ -- single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html Changing the Default Security Settings for Your Data Lake>.+ createDatabaseDefaultPermissions :: Prelude.Maybe [PrincipalPermissions],+ -- | Specifies whether access control on newly created table is managed by+ -- Lake Formation permissions or exclusively by IAM permissions.+ --+ -- A null value indicates access control by Lake Formation permissions. A+ -- value that assigns ALL to IAM_ALLOWED_PRINCIPALS indicates access+ -- control by IAM permissions. This is referred to as the setting \"Use+ -- only IAM access control,\" and is for backward compatibility with the+ -- Glue permission model implemented by IAM permissions.+ --+ -- The only permitted values are an empty array or an array that contains a+ -- single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html Changing the Default Security Settings for Your Data Lake>.+ createTableDefaultPermissions :: Prelude.Maybe [PrincipalPermissions],+ -- | A list of Lake Formation principals. Supported principals are IAM users+ -- or IAM roles.+ dataLakeAdmins :: Prelude.Maybe [DataLakePrincipal],+ -- | A list of the account IDs of Amazon Web Services accounts with Amazon+ -- EMR clusters that are to perform data filtering.>+ externalDataFilteringAllowList :: Prelude.Maybe [DataLakePrincipal],+ -- | A key-value map that provides an additional configuration on your data+ -- lake. CrossAccountVersion is the key you can configure in the Parameters+ -- field. Accepted values for the CrossAccountVersion key are 1, 2, and 3.+ parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | A list of the resource-owning account IDs that the caller\'s account can+ -- use to share their user access details (user ARNs). The user ARNs can be+ -- logged in the resource owner\'s CloudTrail log.+ --+ -- You may want to specify this property when you are in a high-trust+ -- boundary, such as the same team or company.+ trustedResourceOwners :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataLakeSettings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowExternalDataFiltering', 'dataLakeSettings_allowExternalDataFiltering' - Whether to allow Amazon EMR clusters to access data managed by Lake+-- Formation.+--+-- If true, you allow Amazon EMR clusters to access data in Amazon S3+-- locations that are registered with Lake Formation.+--+-- If false or null, no Amazon EMR clusters will be able to access data in+-- Amazon S3 locations that are registered with Lake Formation.+--+-- For more information, see+-- <https://docs-aws.amazon.com/lake-formation/latest/dg/getting-started-setup.html#emr-switch (Optional) Allow Data Filtering on Amazon EMR>.+--+-- 'authorizedSessionTagValueList', 'dataLakeSettings_authorizedSessionTagValueList' - Lake Formation relies on a privileged process secured by Amazon EMR or+-- the third party integrator to tag the user\'s role while assuming it.+-- Lake Formation will publish the acceptable key-value pair, for example+-- key = \"LakeFormationTrustedCaller\" and value = \"TRUE\" and the third+-- party integrator must properly tag the temporary security credentials+-- that will be used to call Lake Formation\'s administrative APIs.+--+-- 'createDatabaseDefaultPermissions', 'dataLakeSettings_createDatabaseDefaultPermissions' - Specifies whether access control on newly created database is managed by+-- Lake Formation permissions or exclusively by IAM permissions.+--+-- A null value indicates access control by Lake Formation permissions. A+-- value that assigns ALL to IAM_ALLOWED_PRINCIPALS indicates access+-- control by IAM permissions. This is referred to as the setting \"Use+-- only IAM access control,\" and is for backward compatibility with the+-- Glue permission model implemented by IAM permissions.+--+-- The only permitted values are an empty array or an array that contains a+-- single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.+--+-- For more information, see+-- <https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html Changing the Default Security Settings for Your Data Lake>.+--+-- 'createTableDefaultPermissions', 'dataLakeSettings_createTableDefaultPermissions' - Specifies whether access control on newly created table is managed by+-- Lake Formation permissions or exclusively by IAM permissions.+--+-- A null value indicates access control by Lake Formation permissions. A+-- value that assigns ALL to IAM_ALLOWED_PRINCIPALS indicates access+-- control by IAM permissions. This is referred to as the setting \"Use+-- only IAM access control,\" and is for backward compatibility with the+-- Glue permission model implemented by IAM permissions.+--+-- The only permitted values are an empty array or an array that contains a+-- single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.+--+-- For more information, see+-- <https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html Changing the Default Security Settings for Your Data Lake>.+--+-- 'dataLakeAdmins', 'dataLakeSettings_dataLakeAdmins' - A list of Lake Formation principals. Supported principals are IAM users+-- or IAM roles.+--+-- 'externalDataFilteringAllowList', 'dataLakeSettings_externalDataFilteringAllowList' - A list of the account IDs of Amazon Web Services accounts with Amazon+-- EMR clusters that are to perform data filtering.>+--+-- 'parameters', 'dataLakeSettings_parameters' - A key-value map that provides an additional configuration on your data+-- lake. CrossAccountVersion is the key you can configure in the Parameters+-- field. Accepted values for the CrossAccountVersion key are 1, 2, and 3.+--+-- 'trustedResourceOwners', 'dataLakeSettings_trustedResourceOwners' - A list of the resource-owning account IDs that the caller\'s account can+-- use to share their user access details (user ARNs). The user ARNs can be+-- logged in the resource owner\'s CloudTrail log.+--+-- You may want to specify this property when you are in a high-trust+-- boundary, such as the same team or company.+newDataLakeSettings ::+ DataLakeSettings+newDataLakeSettings =+ DataLakeSettings'+ { allowExternalDataFiltering =+ Prelude.Nothing,+ authorizedSessionTagValueList = Prelude.Nothing,+ createDatabaseDefaultPermissions = Prelude.Nothing,+ createTableDefaultPermissions = Prelude.Nothing,+ dataLakeAdmins = Prelude.Nothing,+ externalDataFilteringAllowList = Prelude.Nothing,+ parameters = Prelude.Nothing,+ trustedResourceOwners = Prelude.Nothing+ }++-- | Whether to allow Amazon EMR clusters to access data managed by Lake+-- Formation.+--+-- If true, you allow Amazon EMR clusters to access data in Amazon S3+-- locations that are registered with Lake Formation.+--+-- If false or null, no Amazon EMR clusters will be able to access data in+-- Amazon S3 locations that are registered with Lake Formation.+--+-- For more information, see+-- <https://docs-aws.amazon.com/lake-formation/latest/dg/getting-started-setup.html#emr-switch (Optional) Allow Data Filtering on Amazon EMR>.+dataLakeSettings_allowExternalDataFiltering :: Lens.Lens' DataLakeSettings (Prelude.Maybe Prelude.Bool)+dataLakeSettings_allowExternalDataFiltering = Lens.lens (\DataLakeSettings' {allowExternalDataFiltering} -> allowExternalDataFiltering) (\s@DataLakeSettings' {} a -> s {allowExternalDataFiltering = a} :: DataLakeSettings)++-- | Lake Formation relies on a privileged process secured by Amazon EMR or+-- the third party integrator to tag the user\'s role while assuming it.+-- Lake Formation will publish the acceptable key-value pair, for example+-- key = \"LakeFormationTrustedCaller\" and value = \"TRUE\" and the third+-- party integrator must properly tag the temporary security credentials+-- that will be used to call Lake Formation\'s administrative APIs.+dataLakeSettings_authorizedSessionTagValueList :: Lens.Lens' DataLakeSettings (Prelude.Maybe [Prelude.Text])+dataLakeSettings_authorizedSessionTagValueList = Lens.lens (\DataLakeSettings' {authorizedSessionTagValueList} -> authorizedSessionTagValueList) (\s@DataLakeSettings' {} a -> s {authorizedSessionTagValueList = a} :: DataLakeSettings) Prelude.. Lens.mapping Lens.coerced++-- | Specifies whether access control on newly created database is managed by+-- Lake Formation permissions or exclusively by IAM permissions.+--+-- A null value indicates access control by Lake Formation permissions. A+-- value that assigns ALL to IAM_ALLOWED_PRINCIPALS indicates access+-- control by IAM permissions. This is referred to as the setting \"Use+-- only IAM access control,\" and is for backward compatibility with the+-- Glue permission model implemented by IAM permissions.+--+-- The only permitted values are an empty array or an array that contains a+-- single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.+--+-- For more information, see+-- <https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html Changing the Default Security Settings for Your Data Lake>.+dataLakeSettings_createDatabaseDefaultPermissions :: Lens.Lens' DataLakeSettings (Prelude.Maybe [PrincipalPermissions])+dataLakeSettings_createDatabaseDefaultPermissions = Lens.lens (\DataLakeSettings' {createDatabaseDefaultPermissions} -> createDatabaseDefaultPermissions) (\s@DataLakeSettings' {} a -> s {createDatabaseDefaultPermissions = a} :: DataLakeSettings) Prelude.. Lens.mapping Lens.coerced++-- | Specifies whether access control on newly created table is managed by+-- Lake Formation permissions or exclusively by IAM permissions.+--+-- A null value indicates access control by Lake Formation permissions. A+-- value that assigns ALL to IAM_ALLOWED_PRINCIPALS indicates access+-- control by IAM permissions. This is referred to as the setting \"Use+-- only IAM access control,\" and is for backward compatibility with the+-- Glue permission model implemented by IAM permissions.+--+-- The only permitted values are an empty array or an array that contains a+-- single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.+--+-- For more information, see+-- <https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html Changing the Default Security Settings for Your Data Lake>.+dataLakeSettings_createTableDefaultPermissions :: Lens.Lens' DataLakeSettings (Prelude.Maybe [PrincipalPermissions])+dataLakeSettings_createTableDefaultPermissions = Lens.lens (\DataLakeSettings' {createTableDefaultPermissions} -> createTableDefaultPermissions) (\s@DataLakeSettings' {} a -> s {createTableDefaultPermissions = a} :: DataLakeSettings) Prelude.. Lens.mapping Lens.coerced++-- | A list of Lake Formation principals. Supported principals are IAM users+-- or IAM roles.+dataLakeSettings_dataLakeAdmins :: Lens.Lens' DataLakeSettings (Prelude.Maybe [DataLakePrincipal])+dataLakeSettings_dataLakeAdmins = Lens.lens (\DataLakeSettings' {dataLakeAdmins} -> dataLakeAdmins) (\s@DataLakeSettings' {} a -> s {dataLakeAdmins = a} :: DataLakeSettings) Prelude.. Lens.mapping Lens.coerced++-- | A list of the account IDs of Amazon Web Services accounts with Amazon+-- EMR clusters that are to perform data filtering.>+dataLakeSettings_externalDataFilteringAllowList :: Lens.Lens' DataLakeSettings (Prelude.Maybe [DataLakePrincipal])+dataLakeSettings_externalDataFilteringAllowList = Lens.lens (\DataLakeSettings' {externalDataFilteringAllowList} -> externalDataFilteringAllowList) (\s@DataLakeSettings' {} a -> s {externalDataFilteringAllowList = a} :: DataLakeSettings) Prelude.. Lens.mapping Lens.coerced++-- | A key-value map that provides an additional configuration on your data+-- lake. CrossAccountVersion is the key you can configure in the Parameters+-- field. Accepted values for the CrossAccountVersion key are 1, 2, and 3.+dataLakeSettings_parameters :: Lens.Lens' DataLakeSettings (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+dataLakeSettings_parameters = Lens.lens (\DataLakeSettings' {parameters} -> parameters) (\s@DataLakeSettings' {} a -> s {parameters = a} :: DataLakeSettings) Prelude.. Lens.mapping Lens.coerced++-- | A list of the resource-owning account IDs that the caller\'s account can+-- use to share their user access details (user ARNs). The user ARNs can be+-- logged in the resource owner\'s CloudTrail log.+--+-- You may want to specify this property when you are in a high-trust+-- boundary, such as the same team or company.+dataLakeSettings_trustedResourceOwners :: Lens.Lens' DataLakeSettings (Prelude.Maybe [Prelude.Text])+dataLakeSettings_trustedResourceOwners = Lens.lens (\DataLakeSettings' {trustedResourceOwners} -> trustedResourceOwners) (\s@DataLakeSettings' {} a -> s {trustedResourceOwners = a} :: DataLakeSettings) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DataLakeSettings where+ parseJSON =+ Data.withObject+ "DataLakeSettings"+ ( \x ->+ DataLakeSettings'+ Prelude.<$> (x Data..:? "AllowExternalDataFiltering")+ Prelude.<*> ( x+ Data..:? "AuthorizedSessionTagValueList"+ Data..!= Prelude.mempty+ )+ Prelude.<*> ( x+ Data..:? "CreateDatabaseDefaultPermissions"+ Data..!= Prelude.mempty+ )+ Prelude.<*> ( x+ Data..:? "CreateTableDefaultPermissions"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "DataLakeAdmins" Data..!= Prelude.mempty)+ Prelude.<*> ( x+ Data..:? "ExternalDataFilteringAllowList"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "Parameters" Data..!= Prelude.mempty)+ Prelude.<*> ( x+ Data..:? "TrustedResourceOwners"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable DataLakeSettings where+ hashWithSalt _salt DataLakeSettings' {..} =+ _salt+ `Prelude.hashWithSalt` allowExternalDataFiltering+ `Prelude.hashWithSalt` authorizedSessionTagValueList+ `Prelude.hashWithSalt` createDatabaseDefaultPermissions+ `Prelude.hashWithSalt` createTableDefaultPermissions+ `Prelude.hashWithSalt` dataLakeAdmins+ `Prelude.hashWithSalt` externalDataFilteringAllowList+ `Prelude.hashWithSalt` parameters+ `Prelude.hashWithSalt` trustedResourceOwners++instance Prelude.NFData DataLakeSettings where+ rnf DataLakeSettings' {..} =+ Prelude.rnf allowExternalDataFiltering+ `Prelude.seq` Prelude.rnf authorizedSessionTagValueList+ `Prelude.seq` Prelude.rnf createDatabaseDefaultPermissions+ `Prelude.seq` Prelude.rnf createTableDefaultPermissions+ `Prelude.seq` Prelude.rnf dataLakeAdmins+ `Prelude.seq` Prelude.rnf externalDataFilteringAllowList+ `Prelude.seq` Prelude.rnf parameters+ `Prelude.seq` Prelude.rnf trustedResourceOwners++instance Data.ToJSON DataLakeSettings where+ toJSON DataLakeSettings' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AllowExternalDataFiltering" Data..=)+ Prelude.<$> allowExternalDataFiltering,+ ("AuthorizedSessionTagValueList" Data..=)+ Prelude.<$> authorizedSessionTagValueList,+ ("CreateDatabaseDefaultPermissions" Data..=)+ Prelude.<$> createDatabaseDefaultPermissions,+ ("CreateTableDefaultPermissions" Data..=)+ Prelude.<$> createTableDefaultPermissions,+ ("DataLakeAdmins" Data..=)+ Prelude.<$> dataLakeAdmins,+ ("ExternalDataFilteringAllowList" Data..=)+ Prelude.<$> externalDataFilteringAllowList,+ ("Parameters" Data..=) Prelude.<$> parameters,+ ("TrustedResourceOwners" Data..=)+ Prelude.<$> trustedResourceOwners+ ]+ )
+ gen/Amazonka/LakeFormation/Types/DataLocationResource.hs view
@@ -0,0 +1,102 @@+{-# 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.LakeFormation.Types.DataLocationResource+-- Copyright : (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.LakeFormation.Types.DataLocationResource 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 a data location object where permissions are granted or+-- revoked.+--+-- /See:/ 'newDataLocationResource' smart constructor.+data DataLocationResource = DataLocationResource'+ { -- | The identifier for the Data Catalog where the location is registered+ -- with Lake Formation. By default, it is the account ID of the caller.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) that uniquely identifies the data+ -- location resource.+ resourceArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataLocationResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'dataLocationResource_catalogId' - The identifier for the Data Catalog where the location is registered+-- with Lake Formation. By default, it is the account ID of the caller.+--+-- 'resourceArn', 'dataLocationResource_resourceArn' - The Amazon Resource Name (ARN) that uniquely identifies the data+-- location resource.+newDataLocationResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ DataLocationResource+newDataLocationResource pResourceArn_ =+ DataLocationResource'+ { catalogId = Prelude.Nothing,+ resourceArn = pResourceArn_+ }++-- | The identifier for the Data Catalog where the location is registered+-- with Lake Formation. By default, it is the account ID of the caller.+dataLocationResource_catalogId :: Lens.Lens' DataLocationResource (Prelude.Maybe Prelude.Text)+dataLocationResource_catalogId = Lens.lens (\DataLocationResource' {catalogId} -> catalogId) (\s@DataLocationResource' {} a -> s {catalogId = a} :: DataLocationResource)++-- | The Amazon Resource Name (ARN) that uniquely identifies the data+-- location resource.+dataLocationResource_resourceArn :: Lens.Lens' DataLocationResource Prelude.Text+dataLocationResource_resourceArn = Lens.lens (\DataLocationResource' {resourceArn} -> resourceArn) (\s@DataLocationResource' {} a -> s {resourceArn = a} :: DataLocationResource)++instance Data.FromJSON DataLocationResource where+ parseJSON =+ Data.withObject+ "DataLocationResource"+ ( \x ->+ DataLocationResource'+ Prelude.<$> (x Data..:? "CatalogId")+ Prelude.<*> (x Data..: "ResourceArn")+ )++instance Prelude.Hashable DataLocationResource where+ hashWithSalt _salt DataLocationResource' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData DataLocationResource where+ rnf DataLocationResource' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf resourceArn++instance Data.ToJSON DataLocationResource where+ toJSON DataLocationResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ Prelude.Just ("ResourceArn" Data..= resourceArn)+ ]+ )
+ gen/Amazonka/LakeFormation/Types/DatabaseResource.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.LakeFormation.Types.DatabaseResource+-- Copyright : (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.LakeFormation.Types.DatabaseResource 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 the database object.+--+-- /See:/ 'newDatabaseResource' smart constructor.+data DatabaseResource = DatabaseResource'+ { -- | The identifier for the Data Catalog. By default, it is the account ID of+ -- the caller.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The name of the database resource. Unique to the Data Catalog.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatabaseResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'databaseResource_catalogId' - The identifier for the Data Catalog. By default, it is the account ID of+-- the caller.+--+-- 'name', 'databaseResource_name' - The name of the database resource. Unique to the Data Catalog.+newDatabaseResource ::+ -- | 'name'+ Prelude.Text ->+ DatabaseResource+newDatabaseResource pName_ =+ DatabaseResource'+ { catalogId = Prelude.Nothing,+ name = pName_+ }++-- | The identifier for the Data Catalog. By default, it is the account ID of+-- the caller.+databaseResource_catalogId :: Lens.Lens' DatabaseResource (Prelude.Maybe Prelude.Text)+databaseResource_catalogId = Lens.lens (\DatabaseResource' {catalogId} -> catalogId) (\s@DatabaseResource' {} a -> s {catalogId = a} :: DatabaseResource)++-- | The name of the database resource. Unique to the Data Catalog.+databaseResource_name :: Lens.Lens' DatabaseResource Prelude.Text+databaseResource_name = Lens.lens (\DatabaseResource' {name} -> name) (\s@DatabaseResource' {} a -> s {name = a} :: DatabaseResource)++instance Data.FromJSON DatabaseResource where+ parseJSON =+ Data.withObject+ "DatabaseResource"+ ( \x ->+ DatabaseResource'+ Prelude.<$> (x Data..:? "CatalogId")+ Prelude.<*> (x Data..: "Name")+ )++instance Prelude.Hashable DatabaseResource where+ hashWithSalt _salt DatabaseResource' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` name++instance Prelude.NFData DatabaseResource where+ rnf DatabaseResource' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf name++instance Data.ToJSON DatabaseResource where+ toJSON DatabaseResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ Prelude.Just ("Name" Data..= name)+ ]+ )
+ gen/Amazonka/LakeFormation/Types/DeleteObjectInput.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.DeleteObjectInput+-- Copyright : (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.LakeFormation.Types.DeleteObjectInput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An object to delete from the governed table.+--+-- /See:/ 'newDeleteObjectInput' smart constructor.+data DeleteObjectInput = DeleteObjectInput'+ { -- | The Amazon S3 ETag of the object. Returned by @GetTableObjects@ for+ -- validation and used to identify changes to the underlying data.+ eTag :: Prelude.Maybe Prelude.Text,+ -- | A list of partition values for the object. A value must be specified for+ -- each partition key associated with the governed table.+ partitionValues :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | The Amazon S3 location of the object to delete.+ uri :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteObjectInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eTag', 'deleteObjectInput_eTag' - The Amazon S3 ETag of the object. Returned by @GetTableObjects@ for+-- validation and used to identify changes to the underlying data.+--+-- 'partitionValues', 'deleteObjectInput_partitionValues' - A list of partition values for the object. A value must be specified for+-- each partition key associated with the governed table.+--+-- 'uri', 'deleteObjectInput_uri' - The Amazon S3 location of the object to delete.+newDeleteObjectInput ::+ -- | 'uri'+ Prelude.Text ->+ DeleteObjectInput+newDeleteObjectInput pUri_ =+ DeleteObjectInput'+ { eTag = Prelude.Nothing,+ partitionValues = Prelude.Nothing,+ uri = pUri_+ }++-- | The Amazon S3 ETag of the object. Returned by @GetTableObjects@ for+-- validation and used to identify changes to the underlying data.+deleteObjectInput_eTag :: Lens.Lens' DeleteObjectInput (Prelude.Maybe Prelude.Text)+deleteObjectInput_eTag = Lens.lens (\DeleteObjectInput' {eTag} -> eTag) (\s@DeleteObjectInput' {} a -> s {eTag = a} :: DeleteObjectInput)++-- | A list of partition values for the object. A value must be specified for+-- each partition key associated with the governed table.+deleteObjectInput_partitionValues :: Lens.Lens' DeleteObjectInput (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+deleteObjectInput_partitionValues = Lens.lens (\DeleteObjectInput' {partitionValues} -> partitionValues) (\s@DeleteObjectInput' {} a -> s {partitionValues = a} :: DeleteObjectInput) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon S3 location of the object to delete.+deleteObjectInput_uri :: Lens.Lens' DeleteObjectInput Prelude.Text+deleteObjectInput_uri = Lens.lens (\DeleteObjectInput' {uri} -> uri) (\s@DeleteObjectInput' {} a -> s {uri = a} :: DeleteObjectInput)++instance Prelude.Hashable DeleteObjectInput where+ hashWithSalt _salt DeleteObjectInput' {..} =+ _salt+ `Prelude.hashWithSalt` eTag+ `Prelude.hashWithSalt` partitionValues+ `Prelude.hashWithSalt` uri++instance Prelude.NFData DeleteObjectInput where+ rnf DeleteObjectInput' {..} =+ Prelude.rnf eTag+ `Prelude.seq` Prelude.rnf partitionValues+ `Prelude.seq` Prelude.rnf uri++instance Data.ToJSON DeleteObjectInput where+ toJSON DeleteObjectInput' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ETag" Data..=) Prelude.<$> eTag,+ ("PartitionValues" Data..=)+ Prelude.<$> partitionValues,+ Prelude.Just ("Uri" Data..= uri)+ ]+ )
+ gen/Amazonka/LakeFormation/Types/DetailsMap.hs view
@@ -0,0 +1,72 @@+{-# 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.LakeFormation.Types.DetailsMap+-- Copyright : (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.LakeFormation.Types.DetailsMap 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 containing the additional details to be returned in the+-- @AdditionalDetails@ attribute of @PrincipalResourcePermissions@.+--+-- If a catalog resource is shared through Resource Access Manager (RAM),+-- then there will exist a corresponding RAM resource share ARN.+--+-- /See:/ 'newDetailsMap' smart constructor.+data DetailsMap = DetailsMap'+ { -- | A resource share ARN for a catalog resource shared through RAM.+ resourceShare :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetailsMap' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceShare', 'detailsMap_resourceShare' - A resource share ARN for a catalog resource shared through RAM.+newDetailsMap ::+ DetailsMap+newDetailsMap =+ DetailsMap' {resourceShare = Prelude.Nothing}++-- | A resource share ARN for a catalog resource shared through RAM.+detailsMap_resourceShare :: Lens.Lens' DetailsMap (Prelude.Maybe [Prelude.Text])+detailsMap_resourceShare = Lens.lens (\DetailsMap' {resourceShare} -> resourceShare) (\s@DetailsMap' {} a -> s {resourceShare = a} :: DetailsMap) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DetailsMap where+ parseJSON =+ Data.withObject+ "DetailsMap"+ ( \x ->+ DetailsMap'+ Prelude.<$> (x Data..:? "ResourceShare" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable DetailsMap where+ hashWithSalt _salt DetailsMap' {..} =+ _salt `Prelude.hashWithSalt` resourceShare++instance Prelude.NFData DetailsMap where+ rnf DetailsMap' {..} = Prelude.rnf resourceShare
+ gen/Amazonka/LakeFormation/Types/ErrorDetail.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.LakeFormation.Types.ErrorDetail+-- Copyright : (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.LakeFormation.Types.ErrorDetail 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++-- | Contains details about an error.+--+-- /See:/ 'newErrorDetail' smart constructor.+data ErrorDetail = ErrorDetail'+ { -- | The code associated with this error.+ errorCode :: Prelude.Maybe Prelude.Text,+ -- | A message describing the error.+ errorMessage :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ErrorDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errorCode', 'errorDetail_errorCode' - The code associated with this error.+--+-- 'errorMessage', 'errorDetail_errorMessage' - A message describing the error.+newErrorDetail ::+ ErrorDetail+newErrorDetail =+ ErrorDetail'+ { errorCode = Prelude.Nothing,+ errorMessage = Prelude.Nothing+ }++-- | The code associated with this error.+errorDetail_errorCode :: Lens.Lens' ErrorDetail (Prelude.Maybe Prelude.Text)+errorDetail_errorCode = Lens.lens (\ErrorDetail' {errorCode} -> errorCode) (\s@ErrorDetail' {} a -> s {errorCode = a} :: ErrorDetail)++-- | A message describing the error.+errorDetail_errorMessage :: Lens.Lens' ErrorDetail (Prelude.Maybe Prelude.Text)+errorDetail_errorMessage = Lens.lens (\ErrorDetail' {errorMessage} -> errorMessage) (\s@ErrorDetail' {} a -> s {errorMessage = a} :: ErrorDetail)++instance Data.FromJSON ErrorDetail where+ parseJSON =+ Data.withObject+ "ErrorDetail"+ ( \x ->+ ErrorDetail'+ Prelude.<$> (x Data..:? "ErrorCode")+ Prelude.<*> (x Data..:? "ErrorMessage")+ )++instance Prelude.Hashable ErrorDetail where+ hashWithSalt _salt ErrorDetail' {..} =+ _salt+ `Prelude.hashWithSalt` errorCode+ `Prelude.hashWithSalt` errorMessage++instance Prelude.NFData ErrorDetail where+ rnf ErrorDetail' {..} =+ Prelude.rnf errorCode+ `Prelude.seq` Prelude.rnf errorMessage
+ gen/Amazonka/LakeFormation/Types/ExecutionStatistics.hs view
@@ -0,0 +1,97 @@+{-# 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.LakeFormation.Types.ExecutionStatistics+-- Copyright : (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.LakeFormation.Types.ExecutionStatistics 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++-- | Statistics related to the processing of a query statement.+--+-- /See:/ 'newExecutionStatistics' smart constructor.+data ExecutionStatistics = ExecutionStatistics'+ { -- | The average time the request took to be executed.+ averageExecutionTimeMillis :: Prelude.Maybe Prelude.Integer,+ -- | The amount of data that was scanned in bytes.+ dataScannedBytes :: Prelude.Maybe Prelude.Integer,+ -- | The number of work units executed.+ workUnitsExecutedCount :: Prelude.Maybe Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExecutionStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'averageExecutionTimeMillis', 'executionStatistics_averageExecutionTimeMillis' - The average time the request took to be executed.+--+-- 'dataScannedBytes', 'executionStatistics_dataScannedBytes' - The amount of data that was scanned in bytes.+--+-- 'workUnitsExecutedCount', 'executionStatistics_workUnitsExecutedCount' - The number of work units executed.+newExecutionStatistics ::+ ExecutionStatistics+newExecutionStatistics =+ ExecutionStatistics'+ { averageExecutionTimeMillis =+ Prelude.Nothing,+ dataScannedBytes = Prelude.Nothing,+ workUnitsExecutedCount = Prelude.Nothing+ }++-- | The average time the request took to be executed.+executionStatistics_averageExecutionTimeMillis :: Lens.Lens' ExecutionStatistics (Prelude.Maybe Prelude.Integer)+executionStatistics_averageExecutionTimeMillis = Lens.lens (\ExecutionStatistics' {averageExecutionTimeMillis} -> averageExecutionTimeMillis) (\s@ExecutionStatistics' {} a -> s {averageExecutionTimeMillis = a} :: ExecutionStatistics)++-- | The amount of data that was scanned in bytes.+executionStatistics_dataScannedBytes :: Lens.Lens' ExecutionStatistics (Prelude.Maybe Prelude.Integer)+executionStatistics_dataScannedBytes = Lens.lens (\ExecutionStatistics' {dataScannedBytes} -> dataScannedBytes) (\s@ExecutionStatistics' {} a -> s {dataScannedBytes = a} :: ExecutionStatistics)++-- | The number of work units executed.+executionStatistics_workUnitsExecutedCount :: Lens.Lens' ExecutionStatistics (Prelude.Maybe Prelude.Integer)+executionStatistics_workUnitsExecutedCount = Lens.lens (\ExecutionStatistics' {workUnitsExecutedCount} -> workUnitsExecutedCount) (\s@ExecutionStatistics' {} a -> s {workUnitsExecutedCount = a} :: ExecutionStatistics)++instance Data.FromJSON ExecutionStatistics where+ parseJSON =+ Data.withObject+ "ExecutionStatistics"+ ( \x ->+ ExecutionStatistics'+ Prelude.<$> (x Data..:? "AverageExecutionTimeMillis")+ Prelude.<*> (x Data..:? "DataScannedBytes")+ Prelude.<*> (x Data..:? "WorkUnitsExecutedCount")+ )++instance Prelude.Hashable ExecutionStatistics where+ hashWithSalt _salt ExecutionStatistics' {..} =+ _salt+ `Prelude.hashWithSalt` averageExecutionTimeMillis+ `Prelude.hashWithSalt` dataScannedBytes+ `Prelude.hashWithSalt` workUnitsExecutedCount++instance Prelude.NFData ExecutionStatistics where+ rnf ExecutionStatistics' {..} =+ Prelude.rnf averageExecutionTimeMillis+ `Prelude.seq` Prelude.rnf dataScannedBytes+ `Prelude.seq` Prelude.rnf workUnitsExecutedCount
+ gen/Amazonka/LakeFormation/Types/FieldNameString.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.LakeFormation.Types.FieldNameString+-- Copyright : (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.LakeFormation.Types.FieldNameString+ ( FieldNameString+ ( ..,+ FieldNameString_LAST_MODIFIED,+ FieldNameString_RESOURCE_ARN,+ FieldNameString_ROLE_ARN+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FieldNameString = FieldNameString'+ { fromFieldNameString ::+ 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 FieldNameString_LAST_MODIFIED :: FieldNameString+pattern FieldNameString_LAST_MODIFIED = FieldNameString' "LAST_MODIFIED"++pattern FieldNameString_RESOURCE_ARN :: FieldNameString+pattern FieldNameString_RESOURCE_ARN = FieldNameString' "RESOURCE_ARN"++pattern FieldNameString_ROLE_ARN :: FieldNameString+pattern FieldNameString_ROLE_ARN = FieldNameString' "ROLE_ARN"++{-# COMPLETE+ FieldNameString_LAST_MODIFIED,+ FieldNameString_RESOURCE_ARN,+ FieldNameString_ROLE_ARN,+ FieldNameString'+ #-}
+ gen/Amazonka/LakeFormation/Types/FilterCondition.hs view
@@ -0,0 +1,101 @@+{-# 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.LakeFormation.Types.FilterCondition+-- Copyright : (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.LakeFormation.Types.FilterCondition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.ComparisonOperator+import Amazonka.LakeFormation.Types.FieldNameString+import qualified Amazonka.Prelude as Prelude++-- | This structure describes the filtering of columns in a table based on a+-- filter condition.+--+-- /See:/ 'newFilterCondition' smart constructor.+data FilterCondition = FilterCondition'+ { -- | The comparison operator used in the filter condition.+ comparisonOperator :: Prelude.Maybe ComparisonOperator,+ -- | The field to filter in the filter condition.+ field :: Prelude.Maybe FieldNameString,+ -- | A string with values used in evaluating the filter condition.+ stringValueList :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FilterCondition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'comparisonOperator', 'filterCondition_comparisonOperator' - The comparison operator used in the filter condition.+--+-- 'field', 'filterCondition_field' - The field to filter in the filter condition.+--+-- 'stringValueList', 'filterCondition_stringValueList' - A string with values used in evaluating the filter condition.+newFilterCondition ::+ FilterCondition+newFilterCondition =+ FilterCondition'+ { comparisonOperator =+ Prelude.Nothing,+ field = Prelude.Nothing,+ stringValueList = Prelude.Nothing+ }++-- | The comparison operator used in the filter condition.+filterCondition_comparisonOperator :: Lens.Lens' FilterCondition (Prelude.Maybe ComparisonOperator)+filterCondition_comparisonOperator = Lens.lens (\FilterCondition' {comparisonOperator} -> comparisonOperator) (\s@FilterCondition' {} a -> s {comparisonOperator = a} :: FilterCondition)++-- | The field to filter in the filter condition.+filterCondition_field :: Lens.Lens' FilterCondition (Prelude.Maybe FieldNameString)+filterCondition_field = Lens.lens (\FilterCondition' {field} -> field) (\s@FilterCondition' {} a -> s {field = a} :: FilterCondition)++-- | A string with values used in evaluating the filter condition.+filterCondition_stringValueList :: Lens.Lens' FilterCondition (Prelude.Maybe [Prelude.Text])+filterCondition_stringValueList = Lens.lens (\FilterCondition' {stringValueList} -> stringValueList) (\s@FilterCondition' {} a -> s {stringValueList = a} :: FilterCondition) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable FilterCondition where+ hashWithSalt _salt FilterCondition' {..} =+ _salt+ `Prelude.hashWithSalt` comparisonOperator+ `Prelude.hashWithSalt` field+ `Prelude.hashWithSalt` stringValueList++instance Prelude.NFData FilterCondition where+ rnf FilterCondition' {..} =+ Prelude.rnf comparisonOperator+ `Prelude.seq` Prelude.rnf field+ `Prelude.seq` Prelude.rnf stringValueList++instance Data.ToJSON FilterCondition where+ toJSON FilterCondition' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ComparisonOperator" Data..=)+ Prelude.<$> comparisonOperator,+ ("Field" Data..=) Prelude.<$> field,+ ("StringValueList" Data..=)+ Prelude.<$> stringValueList+ ]+ )
+ gen/Amazonka/LakeFormation/Types/LFTag.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.LFTag+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LakeFormation.Types.LFTag where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A structure that allows an admin to grant user permissions on certain+-- conditions. For example, granting a role access to all columns that do+-- not have the LF-tag \'PII\' in tables that have the LF-tag \'Prod\'.+--+-- /See:/ 'newLFTag' smart constructor.+data LFTag = LFTag'+ { -- | The key-name for the LF-tag.+ tagKey :: Prelude.Text,+ -- | A list of possible values an attribute can take.+ tagValues :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LFTag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tagKey', 'lFTag_tagKey' - The key-name for the LF-tag.+--+-- 'tagValues', 'lFTag_tagValues' - A list of possible values an attribute can take.+newLFTag ::+ -- | 'tagKey'+ Prelude.Text ->+ -- | 'tagValues'+ Prelude.NonEmpty Prelude.Text ->+ LFTag+newLFTag pTagKey_ pTagValues_ =+ LFTag'+ { tagKey = pTagKey_,+ tagValues = Lens.coerced Lens.# pTagValues_+ }++-- | The key-name for the LF-tag.+lFTag_tagKey :: Lens.Lens' LFTag Prelude.Text+lFTag_tagKey = Lens.lens (\LFTag' {tagKey} -> tagKey) (\s@LFTag' {} a -> s {tagKey = a} :: LFTag)++-- | A list of possible values an attribute can take.+lFTag_tagValues :: Lens.Lens' LFTag (Prelude.NonEmpty Prelude.Text)+lFTag_tagValues = Lens.lens (\LFTag' {tagValues} -> tagValues) (\s@LFTag' {} a -> s {tagValues = a} :: LFTag) Prelude.. Lens.coerced++instance Data.FromJSON LFTag where+ parseJSON =+ Data.withObject+ "LFTag"+ ( \x ->+ LFTag'+ Prelude.<$> (x Data..: "TagKey")+ Prelude.<*> (x Data..: "TagValues")+ )++instance Prelude.Hashable LFTag where+ hashWithSalt _salt LFTag' {..} =+ _salt+ `Prelude.hashWithSalt` tagKey+ `Prelude.hashWithSalt` tagValues++instance Prelude.NFData LFTag where+ rnf LFTag' {..} =+ Prelude.rnf tagKey+ `Prelude.seq` Prelude.rnf tagValues++instance Data.ToJSON LFTag where+ toJSON LFTag' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("TagKey" Data..= tagKey),+ Prelude.Just ("TagValues" Data..= tagValues)+ ]+ )
+ gen/Amazonka/LakeFormation/Types/LFTagError.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.LFTagError+-- Copyright : (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.LakeFormation.Types.LFTagError where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.ErrorDetail+import Amazonka.LakeFormation.Types.LFTagPair+import qualified Amazonka.Prelude as Prelude++-- | A structure containing an error related to a @TagResource@ or+-- @UnTagResource@ operation.+--+-- /See:/ 'newLFTagError' smart constructor.+data LFTagError = LFTagError'+ { -- | An error that occurred with the attachment or detachment of the LF-tag.+ error :: Prelude.Maybe ErrorDetail,+ -- | The key-name of the LF-tag.+ lFTag :: Prelude.Maybe LFTagPair+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LFTagError' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'error', 'lFTagError_error' - An error that occurred with the attachment or detachment of the LF-tag.+--+-- 'lFTag', 'lFTagError_lFTag' - The key-name of the LF-tag.+newLFTagError ::+ LFTagError+newLFTagError =+ LFTagError'+ { error = Prelude.Nothing,+ lFTag = Prelude.Nothing+ }++-- | An error that occurred with the attachment or detachment of the LF-tag.+lFTagError_error :: Lens.Lens' LFTagError (Prelude.Maybe ErrorDetail)+lFTagError_error = Lens.lens (\LFTagError' {error} -> error) (\s@LFTagError' {} a -> s {error = a} :: LFTagError)++-- | The key-name of the LF-tag.+lFTagError_lFTag :: Lens.Lens' LFTagError (Prelude.Maybe LFTagPair)+lFTagError_lFTag = Lens.lens (\LFTagError' {lFTag} -> lFTag) (\s@LFTagError' {} a -> s {lFTag = a} :: LFTagError)++instance Data.FromJSON LFTagError where+ parseJSON =+ Data.withObject+ "LFTagError"+ ( \x ->+ LFTagError'+ Prelude.<$> (x Data..:? "Error")+ Prelude.<*> (x Data..:? "LFTag")+ )++instance Prelude.Hashable LFTagError where+ hashWithSalt _salt LFTagError' {..} =+ _salt+ `Prelude.hashWithSalt` error+ `Prelude.hashWithSalt` lFTag++instance Prelude.NFData LFTagError where+ rnf LFTagError' {..} =+ Prelude.rnf error `Prelude.seq` Prelude.rnf lFTag
+ gen/Amazonka/LakeFormation/Types/LFTagKeyResource.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.LFTagKeyResource+-- Copyright : (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.LakeFormation.Types.LFTagKeyResource 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 containing an LF-tag key and values for a resource.+--+-- /See:/ 'newLFTagKeyResource' smart constructor.+data LFTagKeyResource = LFTagKeyResource'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The key-name for the LF-tag.+ tagKey :: Prelude.Text,+ -- | A list of possible values an attribute can take.+ tagValues :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LFTagKeyResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'lFTagKeyResource_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'tagKey', 'lFTagKeyResource_tagKey' - The key-name for the LF-tag.+--+-- 'tagValues', 'lFTagKeyResource_tagValues' - A list of possible values an attribute can take.+newLFTagKeyResource ::+ -- | 'tagKey'+ Prelude.Text ->+ -- | 'tagValues'+ Prelude.NonEmpty Prelude.Text ->+ LFTagKeyResource+newLFTagKeyResource pTagKey_ pTagValues_ =+ LFTagKeyResource'+ { catalogId = Prelude.Nothing,+ tagKey = pTagKey_,+ tagValues = Lens.coerced Lens.# pTagValues_+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+lFTagKeyResource_catalogId :: Lens.Lens' LFTagKeyResource (Prelude.Maybe Prelude.Text)+lFTagKeyResource_catalogId = Lens.lens (\LFTagKeyResource' {catalogId} -> catalogId) (\s@LFTagKeyResource' {} a -> s {catalogId = a} :: LFTagKeyResource)++-- | The key-name for the LF-tag.+lFTagKeyResource_tagKey :: Lens.Lens' LFTagKeyResource Prelude.Text+lFTagKeyResource_tagKey = Lens.lens (\LFTagKeyResource' {tagKey} -> tagKey) (\s@LFTagKeyResource' {} a -> s {tagKey = a} :: LFTagKeyResource)++-- | A list of possible values an attribute can take.+lFTagKeyResource_tagValues :: Lens.Lens' LFTagKeyResource (Prelude.NonEmpty Prelude.Text)+lFTagKeyResource_tagValues = Lens.lens (\LFTagKeyResource' {tagValues} -> tagValues) (\s@LFTagKeyResource' {} a -> s {tagValues = a} :: LFTagKeyResource) Prelude.. Lens.coerced++instance Data.FromJSON LFTagKeyResource where+ parseJSON =+ Data.withObject+ "LFTagKeyResource"+ ( \x ->+ LFTagKeyResource'+ Prelude.<$> (x Data..:? "CatalogId")+ Prelude.<*> (x Data..: "TagKey")+ Prelude.<*> (x Data..: "TagValues")+ )++instance Prelude.Hashable LFTagKeyResource where+ hashWithSalt _salt LFTagKeyResource' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` tagKey+ `Prelude.hashWithSalt` tagValues++instance Prelude.NFData LFTagKeyResource where+ rnf LFTagKeyResource' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf tagKey+ `Prelude.seq` Prelude.rnf tagValues++instance Data.ToJSON LFTagKeyResource where+ toJSON LFTagKeyResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ Prelude.Just ("TagKey" Data..= tagKey),+ Prelude.Just ("TagValues" Data..= tagValues)+ ]+ )
+ gen/Amazonka/LakeFormation/Types/LFTagPair.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.LFTagPair+-- Copyright : (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.LakeFormation.Types.LFTagPair 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 containing an LF-tag key-value pair.+--+-- /See:/ 'newLFTagPair' smart constructor.+data LFTagPair = LFTagPair'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The key-name for the LF-tag.+ tagKey :: Prelude.Text,+ -- | A list of possible values an attribute can take.+ tagValues :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LFTagPair' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'lFTagPair_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'tagKey', 'lFTagPair_tagKey' - The key-name for the LF-tag.+--+-- 'tagValues', 'lFTagPair_tagValues' - A list of possible values an attribute can take.+newLFTagPair ::+ -- | 'tagKey'+ Prelude.Text ->+ -- | 'tagValues'+ Prelude.NonEmpty Prelude.Text ->+ LFTagPair+newLFTagPair pTagKey_ pTagValues_ =+ LFTagPair'+ { catalogId = Prelude.Nothing,+ tagKey = pTagKey_,+ tagValues = Lens.coerced Lens.# pTagValues_+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+lFTagPair_catalogId :: Lens.Lens' LFTagPair (Prelude.Maybe Prelude.Text)+lFTagPair_catalogId = Lens.lens (\LFTagPair' {catalogId} -> catalogId) (\s@LFTagPair' {} a -> s {catalogId = a} :: LFTagPair)++-- | The key-name for the LF-tag.+lFTagPair_tagKey :: Lens.Lens' LFTagPair Prelude.Text+lFTagPair_tagKey = Lens.lens (\LFTagPair' {tagKey} -> tagKey) (\s@LFTagPair' {} a -> s {tagKey = a} :: LFTagPair)++-- | A list of possible values an attribute can take.+lFTagPair_tagValues :: Lens.Lens' LFTagPair (Prelude.NonEmpty Prelude.Text)+lFTagPair_tagValues = Lens.lens (\LFTagPair' {tagValues} -> tagValues) (\s@LFTagPair' {} a -> s {tagValues = a} :: LFTagPair) Prelude.. Lens.coerced++instance Data.FromJSON LFTagPair where+ parseJSON =+ Data.withObject+ "LFTagPair"+ ( \x ->+ LFTagPair'+ Prelude.<$> (x Data..:? "CatalogId")+ Prelude.<*> (x Data..: "TagKey")+ Prelude.<*> (x Data..: "TagValues")+ )++instance Prelude.Hashable LFTagPair where+ hashWithSalt _salt LFTagPair' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` tagKey+ `Prelude.hashWithSalt` tagValues++instance Prelude.NFData LFTagPair where+ rnf LFTagPair' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf tagKey+ `Prelude.seq` Prelude.rnf tagValues++instance Data.ToJSON LFTagPair where+ toJSON LFTagPair' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ Prelude.Just ("TagKey" Data..= tagKey),+ Prelude.Just ("TagValues" Data..= tagValues)+ ]+ )
+ gen/Amazonka/LakeFormation/Types/LFTagPolicyResource.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.LFTagPolicyResource+-- Copyright : (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.LakeFormation.Types.LFTagPolicyResource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.LFTag+import Amazonka.LakeFormation.Types.ResourceType+import qualified Amazonka.Prelude as Prelude++-- | A structure containing a list of LF-tag conditions that apply to a+-- resource\'s LF-tag policy.+--+-- /See:/ 'newLFTagPolicyResource' smart constructor.+data LFTagPolicyResource = LFTagPolicyResource'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The resource type for which the LF-tag policy applies.+ resourceType :: ResourceType,+ -- | A list of LF-tag conditions that apply to the resource\'s LF-tag policy.+ expression :: Prelude.NonEmpty LFTag+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LFTagPolicyResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'lFTagPolicyResource_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'resourceType', 'lFTagPolicyResource_resourceType' - The resource type for which the LF-tag policy applies.+--+-- 'expression', 'lFTagPolicyResource_expression' - A list of LF-tag conditions that apply to the resource\'s LF-tag policy.+newLFTagPolicyResource ::+ -- | 'resourceType'+ ResourceType ->+ -- | 'expression'+ Prelude.NonEmpty LFTag ->+ LFTagPolicyResource+newLFTagPolicyResource pResourceType_ pExpression_ =+ LFTagPolicyResource'+ { catalogId = Prelude.Nothing,+ resourceType = pResourceType_,+ expression = Lens.coerced Lens.# pExpression_+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+lFTagPolicyResource_catalogId :: Lens.Lens' LFTagPolicyResource (Prelude.Maybe Prelude.Text)+lFTagPolicyResource_catalogId = Lens.lens (\LFTagPolicyResource' {catalogId} -> catalogId) (\s@LFTagPolicyResource' {} a -> s {catalogId = a} :: LFTagPolicyResource)++-- | The resource type for which the LF-tag policy applies.+lFTagPolicyResource_resourceType :: Lens.Lens' LFTagPolicyResource ResourceType+lFTagPolicyResource_resourceType = Lens.lens (\LFTagPolicyResource' {resourceType} -> resourceType) (\s@LFTagPolicyResource' {} a -> s {resourceType = a} :: LFTagPolicyResource)++-- | A list of LF-tag conditions that apply to the resource\'s LF-tag policy.+lFTagPolicyResource_expression :: Lens.Lens' LFTagPolicyResource (Prelude.NonEmpty LFTag)+lFTagPolicyResource_expression = Lens.lens (\LFTagPolicyResource' {expression} -> expression) (\s@LFTagPolicyResource' {} a -> s {expression = a} :: LFTagPolicyResource) Prelude.. Lens.coerced++instance Data.FromJSON LFTagPolicyResource where+ parseJSON =+ Data.withObject+ "LFTagPolicyResource"+ ( \x ->+ LFTagPolicyResource'+ Prelude.<$> (x Data..:? "CatalogId")+ Prelude.<*> (x Data..: "ResourceType")+ Prelude.<*> (x Data..: "Expression")+ )++instance Prelude.Hashable LFTagPolicyResource where+ hashWithSalt _salt LFTagPolicyResource' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` resourceType+ `Prelude.hashWithSalt` expression++instance Prelude.NFData LFTagPolicyResource where+ rnf LFTagPolicyResource' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf resourceType+ `Prelude.seq` Prelude.rnf expression++instance Data.ToJSON LFTagPolicyResource where+ toJSON LFTagPolicyResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ Prelude.Just ("ResourceType" Data..= resourceType),+ Prelude.Just ("Expression" Data..= expression)+ ]+ )
+ gen/Amazonka/LakeFormation/Types/OptimizerType.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.LakeFormation.Types.OptimizerType+-- Copyright : (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.LakeFormation.Types.OptimizerType+ ( OptimizerType+ ( ..,+ OptimizerType_ALL,+ OptimizerType_COMPACTION,+ OptimizerType_GARBAGE_COLLECTION+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OptimizerType = OptimizerType'+ { fromOptimizerType ::+ 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 OptimizerType_ALL :: OptimizerType+pattern OptimizerType_ALL = OptimizerType' "ALL"++pattern OptimizerType_COMPACTION :: OptimizerType+pattern OptimizerType_COMPACTION = OptimizerType' "COMPACTION"++pattern OptimizerType_GARBAGE_COLLECTION :: OptimizerType+pattern OptimizerType_GARBAGE_COLLECTION = OptimizerType' "GARBAGE_COLLECTION"++{-# COMPLETE+ OptimizerType_ALL,+ OptimizerType_COMPACTION,+ OptimizerType_GARBAGE_COLLECTION,+ OptimizerType'+ #-}
+ gen/Amazonka/LakeFormation/Types/PartitionObjects.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.PartitionObjects+-- Copyright : (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.LakeFormation.Types.PartitionObjects where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.TableObject+import qualified Amazonka.Prelude as Prelude++-- | A structure containing a list of partition values and table objects.+--+-- /See:/ 'newPartitionObjects' smart constructor.+data PartitionObjects = PartitionObjects'+ { -- | A list of table objects+ objects :: Prelude.Maybe [TableObject],+ -- | A list of partition values.+ partitionValues :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PartitionObjects' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'objects', 'partitionObjects_objects' - A list of table objects+--+-- 'partitionValues', 'partitionObjects_partitionValues' - A list of partition values.+newPartitionObjects ::+ PartitionObjects+newPartitionObjects =+ PartitionObjects'+ { objects = Prelude.Nothing,+ partitionValues = Prelude.Nothing+ }++-- | A list of table objects+partitionObjects_objects :: Lens.Lens' PartitionObjects (Prelude.Maybe [TableObject])+partitionObjects_objects = Lens.lens (\PartitionObjects' {objects} -> objects) (\s@PartitionObjects' {} a -> s {objects = a} :: PartitionObjects) Prelude.. Lens.mapping Lens.coerced++-- | A list of partition values.+partitionObjects_partitionValues :: Lens.Lens' PartitionObjects (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+partitionObjects_partitionValues = Lens.lens (\PartitionObjects' {partitionValues} -> partitionValues) (\s@PartitionObjects' {} a -> s {partitionValues = a} :: PartitionObjects) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON PartitionObjects where+ parseJSON =+ Data.withObject+ "PartitionObjects"+ ( \x ->+ PartitionObjects'+ Prelude.<$> (x Data..:? "Objects" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "PartitionValues")+ )++instance Prelude.Hashable PartitionObjects where+ hashWithSalt _salt PartitionObjects' {..} =+ _salt+ `Prelude.hashWithSalt` objects+ `Prelude.hashWithSalt` partitionValues++instance Prelude.NFData PartitionObjects where+ rnf PartitionObjects' {..} =+ Prelude.rnf objects+ `Prelude.seq` Prelude.rnf partitionValues
+ gen/Amazonka/LakeFormation/Types/PartitionValueList.hs view
@@ -0,0 +1,71 @@+{-# 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.LakeFormation.Types.PartitionValueList+-- Copyright : (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.LakeFormation.Types.PartitionValueList 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++-- | Contains a list of values defining partitions.+--+-- /See:/ 'newPartitionValueList' smart constructor.+data PartitionValueList = PartitionValueList'+ { -- | The list of partition values.+ values :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PartitionValueList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'values', 'partitionValueList_values' - The list of partition values.+newPartitionValueList ::+ -- | 'values'+ Prelude.NonEmpty Prelude.Text ->+ PartitionValueList+newPartitionValueList pValues_ =+ PartitionValueList'+ { values =+ Lens.coerced Lens.# pValues_+ }++-- | The list of partition values.+partitionValueList_values :: Lens.Lens' PartitionValueList (Prelude.NonEmpty Prelude.Text)+partitionValueList_values = Lens.lens (\PartitionValueList' {values} -> values) (\s@PartitionValueList' {} a -> s {values = a} :: PartitionValueList) Prelude.. Lens.coerced++instance Prelude.Hashable PartitionValueList where+ hashWithSalt _salt PartitionValueList' {..} =+ _salt `Prelude.hashWithSalt` values++instance Prelude.NFData PartitionValueList where+ rnf PartitionValueList' {..} = Prelude.rnf values++instance Data.ToJSON PartitionValueList where+ toJSON PartitionValueList' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Values" Data..= values)]+ )
+ gen/Amazonka/LakeFormation/Types/Permission.hs view
@@ -0,0 +1,121 @@+{-# 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.LakeFormation.Types.Permission+-- Copyright : (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.LakeFormation.Types.Permission+ ( Permission+ ( ..,+ Permission_ALL,+ Permission_ALTER,+ Permission_ASSOCIATE,+ Permission_CREATE_DATABASE,+ Permission_CREATE_TABLE,+ Permission_CREATE_TAG,+ Permission_DATA_LOCATION_ACCESS,+ Permission_DELETE,+ Permission_DESCRIBE,+ Permission_DROP,+ Permission_INSERT,+ Permission_SELECT+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Permission = Permission'+ { fromPermission ::+ 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 Permission_ALL :: Permission+pattern Permission_ALL = Permission' "ALL"++pattern Permission_ALTER :: Permission+pattern Permission_ALTER = Permission' "ALTER"++pattern Permission_ASSOCIATE :: Permission+pattern Permission_ASSOCIATE = Permission' "ASSOCIATE"++pattern Permission_CREATE_DATABASE :: Permission+pattern Permission_CREATE_DATABASE = Permission' "CREATE_DATABASE"++pattern Permission_CREATE_TABLE :: Permission+pattern Permission_CREATE_TABLE = Permission' "CREATE_TABLE"++pattern Permission_CREATE_TAG :: Permission+pattern Permission_CREATE_TAG = Permission' "CREATE_TAG"++pattern Permission_DATA_LOCATION_ACCESS :: Permission+pattern Permission_DATA_LOCATION_ACCESS = Permission' "DATA_LOCATION_ACCESS"++pattern Permission_DELETE :: Permission+pattern Permission_DELETE = Permission' "DELETE"++pattern Permission_DESCRIBE :: Permission+pattern Permission_DESCRIBE = Permission' "DESCRIBE"++pattern Permission_DROP :: Permission+pattern Permission_DROP = Permission' "DROP"++pattern Permission_INSERT :: Permission+pattern Permission_INSERT = Permission' "INSERT"++pattern Permission_SELECT :: Permission+pattern Permission_SELECT = Permission' "SELECT"++{-# COMPLETE+ Permission_ALL,+ Permission_ALTER,+ Permission_ASSOCIATE,+ Permission_CREATE_DATABASE,+ Permission_CREATE_TABLE,+ Permission_CREATE_TAG,+ Permission_DATA_LOCATION_ACCESS,+ Permission_DELETE,+ Permission_DESCRIBE,+ Permission_DROP,+ Permission_INSERT,+ Permission_SELECT,+ Permission'+ #-}
+ gen/Amazonka/LakeFormation/Types/PermissionType.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.LakeFormation.Types.PermissionType+-- Copyright : (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.LakeFormation.Types.PermissionType+ ( PermissionType+ ( ..,+ PermissionType_CELL_FILTER_PERMISSION,+ PermissionType_COLUMN_PERMISSION+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PermissionType = PermissionType'+ { fromPermissionType ::+ 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 PermissionType_CELL_FILTER_PERMISSION :: PermissionType+pattern PermissionType_CELL_FILTER_PERMISSION = PermissionType' "CELL_FILTER_PERMISSION"++pattern PermissionType_COLUMN_PERMISSION :: PermissionType+pattern PermissionType_COLUMN_PERMISSION = PermissionType' "COLUMN_PERMISSION"++{-# COMPLETE+ PermissionType_CELL_FILTER_PERMISSION,+ PermissionType_COLUMN_PERMISSION,+ PermissionType'+ #-}
+ gen/Amazonka/LakeFormation/Types/PlanningStatistics.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.LakeFormation.Types.PlanningStatistics+-- Copyright : (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.LakeFormation.Types.PlanningStatistics 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++-- | Statistics related to the processing of a query statement.+--+-- /See:/ 'newPlanningStatistics' smart constructor.+data PlanningStatistics = PlanningStatistics'+ { -- | An estimate of the data that was scanned in bytes.+ estimatedDataToScanBytes :: Prelude.Maybe Prelude.Integer,+ -- | The time that it took to process the request.+ planningTimeMillis :: Prelude.Maybe Prelude.Integer,+ -- | The time the request was in queue to be processed.+ queueTimeMillis :: Prelude.Maybe Prelude.Integer,+ -- | The number of work units generated.+ workUnitsGeneratedCount :: Prelude.Maybe Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PlanningStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'estimatedDataToScanBytes', 'planningStatistics_estimatedDataToScanBytes' - An estimate of the data that was scanned in bytes.+--+-- 'planningTimeMillis', 'planningStatistics_planningTimeMillis' - The time that it took to process the request.+--+-- 'queueTimeMillis', 'planningStatistics_queueTimeMillis' - The time the request was in queue to be processed.+--+-- 'workUnitsGeneratedCount', 'planningStatistics_workUnitsGeneratedCount' - The number of work units generated.+newPlanningStatistics ::+ PlanningStatistics+newPlanningStatistics =+ PlanningStatistics'+ { estimatedDataToScanBytes =+ Prelude.Nothing,+ planningTimeMillis = Prelude.Nothing,+ queueTimeMillis = Prelude.Nothing,+ workUnitsGeneratedCount = Prelude.Nothing+ }++-- | An estimate of the data that was scanned in bytes.+planningStatistics_estimatedDataToScanBytes :: Lens.Lens' PlanningStatistics (Prelude.Maybe Prelude.Integer)+planningStatistics_estimatedDataToScanBytes = Lens.lens (\PlanningStatistics' {estimatedDataToScanBytes} -> estimatedDataToScanBytes) (\s@PlanningStatistics' {} a -> s {estimatedDataToScanBytes = a} :: PlanningStatistics)++-- | The time that it took to process the request.+planningStatistics_planningTimeMillis :: Lens.Lens' PlanningStatistics (Prelude.Maybe Prelude.Integer)+planningStatistics_planningTimeMillis = Lens.lens (\PlanningStatistics' {planningTimeMillis} -> planningTimeMillis) (\s@PlanningStatistics' {} a -> s {planningTimeMillis = a} :: PlanningStatistics)++-- | The time the request was in queue to be processed.+planningStatistics_queueTimeMillis :: Lens.Lens' PlanningStatistics (Prelude.Maybe Prelude.Integer)+planningStatistics_queueTimeMillis = Lens.lens (\PlanningStatistics' {queueTimeMillis} -> queueTimeMillis) (\s@PlanningStatistics' {} a -> s {queueTimeMillis = a} :: PlanningStatistics)++-- | The number of work units generated.+planningStatistics_workUnitsGeneratedCount :: Lens.Lens' PlanningStatistics (Prelude.Maybe Prelude.Integer)+planningStatistics_workUnitsGeneratedCount = Lens.lens (\PlanningStatistics' {workUnitsGeneratedCount} -> workUnitsGeneratedCount) (\s@PlanningStatistics' {} a -> s {workUnitsGeneratedCount = a} :: PlanningStatistics)++instance Data.FromJSON PlanningStatistics where+ parseJSON =+ Data.withObject+ "PlanningStatistics"+ ( \x ->+ PlanningStatistics'+ Prelude.<$> (x Data..:? "EstimatedDataToScanBytes")+ Prelude.<*> (x Data..:? "PlanningTimeMillis")+ Prelude.<*> (x Data..:? "QueueTimeMillis")+ Prelude.<*> (x Data..:? "WorkUnitsGeneratedCount")+ )++instance Prelude.Hashable PlanningStatistics where+ hashWithSalt _salt PlanningStatistics' {..} =+ _salt+ `Prelude.hashWithSalt` estimatedDataToScanBytes+ `Prelude.hashWithSalt` planningTimeMillis+ `Prelude.hashWithSalt` queueTimeMillis+ `Prelude.hashWithSalt` workUnitsGeneratedCount++instance Prelude.NFData PlanningStatistics where+ rnf PlanningStatistics' {..} =+ Prelude.rnf estimatedDataToScanBytes+ `Prelude.seq` Prelude.rnf planningTimeMillis+ `Prelude.seq` Prelude.rnf queueTimeMillis+ `Prelude.seq` Prelude.rnf workUnitsGeneratedCount
+ gen/Amazonka/LakeFormation/Types/PrincipalPermissions.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.LakeFormation.Types.PrincipalPermissions+-- Copyright : (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.LakeFormation.Types.PrincipalPermissions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.DataLakePrincipal+import Amazonka.LakeFormation.Types.Permission+import qualified Amazonka.Prelude as Prelude++-- | Permissions granted to a principal.+--+-- /See:/ 'newPrincipalPermissions' smart constructor.+data PrincipalPermissions = PrincipalPermissions'+ { -- | The permissions that are granted to the principal.+ permissions :: Prelude.Maybe [Permission],+ -- | The principal who is granted permissions.+ principal :: Prelude.Maybe DataLakePrincipal+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PrincipalPermissions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'permissions', 'principalPermissions_permissions' - The permissions that are granted to the principal.+--+-- 'principal', 'principalPermissions_principal' - The principal who is granted permissions.+newPrincipalPermissions ::+ PrincipalPermissions+newPrincipalPermissions =+ PrincipalPermissions'+ { permissions =+ Prelude.Nothing,+ principal = Prelude.Nothing+ }++-- | The permissions that are granted to the principal.+principalPermissions_permissions :: Lens.Lens' PrincipalPermissions (Prelude.Maybe [Permission])+principalPermissions_permissions = Lens.lens (\PrincipalPermissions' {permissions} -> permissions) (\s@PrincipalPermissions' {} a -> s {permissions = a} :: PrincipalPermissions) Prelude.. Lens.mapping Lens.coerced++-- | The principal who is granted permissions.+principalPermissions_principal :: Lens.Lens' PrincipalPermissions (Prelude.Maybe DataLakePrincipal)+principalPermissions_principal = Lens.lens (\PrincipalPermissions' {principal} -> principal) (\s@PrincipalPermissions' {} a -> s {principal = a} :: PrincipalPermissions)++instance Data.FromJSON PrincipalPermissions where+ parseJSON =+ Data.withObject+ "PrincipalPermissions"+ ( \x ->+ PrincipalPermissions'+ Prelude.<$> (x Data..:? "Permissions" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "Principal")+ )++instance Prelude.Hashable PrincipalPermissions where+ hashWithSalt _salt PrincipalPermissions' {..} =+ _salt+ `Prelude.hashWithSalt` permissions+ `Prelude.hashWithSalt` principal++instance Prelude.NFData PrincipalPermissions where+ rnf PrincipalPermissions' {..} =+ Prelude.rnf permissions+ `Prelude.seq` Prelude.rnf principal++instance Data.ToJSON PrincipalPermissions where+ toJSON PrincipalPermissions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Permissions" Data..=) Prelude.<$> permissions,+ ("Principal" Data..=) Prelude.<$> principal+ ]+ )
+ gen/Amazonka/LakeFormation/Types/PrincipalResourcePermissions.hs view
@@ -0,0 +1,140 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.PrincipalResourcePermissions+-- Copyright : (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.LakeFormation.Types.PrincipalResourcePermissions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.DataLakePrincipal+import Amazonka.LakeFormation.Types.DetailsMap+import Amazonka.LakeFormation.Types.Permission+import Amazonka.LakeFormation.Types.Resource+import qualified Amazonka.Prelude as Prelude++-- | The permissions granted or revoked on a resource.+--+-- /See:/ 'newPrincipalResourcePermissions' smart constructor.+data PrincipalResourcePermissions = PrincipalResourcePermissions'+ { -- | This attribute can be used to return any additional details of+ -- @PrincipalResourcePermissions@. Currently returns only as a RAM resource+ -- share ARN.+ additionalDetails :: Prelude.Maybe DetailsMap,+ -- | The permissions to be granted or revoked on the resource.+ permissions :: Prelude.Maybe [Permission],+ -- | Indicates whether to grant the ability to grant permissions (as a subset+ -- of permissions granted).+ permissionsWithGrantOption :: Prelude.Maybe [Permission],+ -- | The Data Lake principal to be granted or revoked permissions.+ principal :: Prelude.Maybe DataLakePrincipal,+ -- | The resource where permissions are to be granted or revoked.+ resource :: Prelude.Maybe Resource+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PrincipalResourcePermissions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'additionalDetails', 'principalResourcePermissions_additionalDetails' - This attribute can be used to return any additional details of+-- @PrincipalResourcePermissions@. Currently returns only as a RAM resource+-- share ARN.+--+-- 'permissions', 'principalResourcePermissions_permissions' - The permissions to be granted or revoked on the resource.+--+-- 'permissionsWithGrantOption', 'principalResourcePermissions_permissionsWithGrantOption' - Indicates whether to grant the ability to grant permissions (as a subset+-- of permissions granted).+--+-- 'principal', 'principalResourcePermissions_principal' - The Data Lake principal to be granted or revoked permissions.+--+-- 'resource', 'principalResourcePermissions_resource' - The resource where permissions are to be granted or revoked.+newPrincipalResourcePermissions ::+ PrincipalResourcePermissions+newPrincipalResourcePermissions =+ PrincipalResourcePermissions'+ { additionalDetails =+ Prelude.Nothing,+ permissions = Prelude.Nothing,+ permissionsWithGrantOption = Prelude.Nothing,+ principal = Prelude.Nothing,+ resource = Prelude.Nothing+ }++-- | This attribute can be used to return any additional details of+-- @PrincipalResourcePermissions@. Currently returns only as a RAM resource+-- share ARN.+principalResourcePermissions_additionalDetails :: Lens.Lens' PrincipalResourcePermissions (Prelude.Maybe DetailsMap)+principalResourcePermissions_additionalDetails = Lens.lens (\PrincipalResourcePermissions' {additionalDetails} -> additionalDetails) (\s@PrincipalResourcePermissions' {} a -> s {additionalDetails = a} :: PrincipalResourcePermissions)++-- | The permissions to be granted or revoked on the resource.+principalResourcePermissions_permissions :: Lens.Lens' PrincipalResourcePermissions (Prelude.Maybe [Permission])+principalResourcePermissions_permissions = Lens.lens (\PrincipalResourcePermissions' {permissions} -> permissions) (\s@PrincipalResourcePermissions' {} a -> s {permissions = a} :: PrincipalResourcePermissions) Prelude.. Lens.mapping Lens.coerced++-- | Indicates whether to grant the ability to grant permissions (as a subset+-- of permissions granted).+principalResourcePermissions_permissionsWithGrantOption :: Lens.Lens' PrincipalResourcePermissions (Prelude.Maybe [Permission])+principalResourcePermissions_permissionsWithGrantOption = Lens.lens (\PrincipalResourcePermissions' {permissionsWithGrantOption} -> permissionsWithGrantOption) (\s@PrincipalResourcePermissions' {} a -> s {permissionsWithGrantOption = a} :: PrincipalResourcePermissions) Prelude.. Lens.mapping Lens.coerced++-- | The Data Lake principal to be granted or revoked permissions.+principalResourcePermissions_principal :: Lens.Lens' PrincipalResourcePermissions (Prelude.Maybe DataLakePrincipal)+principalResourcePermissions_principal = Lens.lens (\PrincipalResourcePermissions' {principal} -> principal) (\s@PrincipalResourcePermissions' {} a -> s {principal = a} :: PrincipalResourcePermissions)++-- | The resource where permissions are to be granted or revoked.+principalResourcePermissions_resource :: Lens.Lens' PrincipalResourcePermissions (Prelude.Maybe Resource)+principalResourcePermissions_resource = Lens.lens (\PrincipalResourcePermissions' {resource} -> resource) (\s@PrincipalResourcePermissions' {} a -> s {resource = a} :: PrincipalResourcePermissions)++instance Data.FromJSON PrincipalResourcePermissions where+ parseJSON =+ Data.withObject+ "PrincipalResourcePermissions"+ ( \x ->+ PrincipalResourcePermissions'+ Prelude.<$> (x Data..:? "AdditionalDetails")+ Prelude.<*> (x Data..:? "Permissions" Data..!= Prelude.mempty)+ Prelude.<*> ( x+ Data..:? "PermissionsWithGrantOption"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "Principal")+ Prelude.<*> (x Data..:? "Resource")+ )++instance+ Prelude.Hashable+ PrincipalResourcePermissions+ where+ hashWithSalt _salt PrincipalResourcePermissions' {..} =+ _salt+ `Prelude.hashWithSalt` additionalDetails+ `Prelude.hashWithSalt` permissions+ `Prelude.hashWithSalt` permissionsWithGrantOption+ `Prelude.hashWithSalt` principal+ `Prelude.hashWithSalt` resource++instance Prelude.NFData PrincipalResourcePermissions where+ rnf PrincipalResourcePermissions' {..} =+ Prelude.rnf additionalDetails+ `Prelude.seq` Prelude.rnf permissions+ `Prelude.seq` Prelude.rnf permissionsWithGrantOption+ `Prelude.seq` Prelude.rnf principal+ `Prelude.seq` Prelude.rnf resource
+ gen/Amazonka/LakeFormation/Types/QueryPlanningContext.hs view
@@ -0,0 +1,143 @@+{-# 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.LakeFormation.Types.QueryPlanningContext+-- Copyright : (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.LakeFormation.Types.QueryPlanningContext 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 containing information about the query plan.+--+-- /See:/ 'newQueryPlanningContext' smart constructor.+data QueryPlanningContext = QueryPlanningContext'+ { -- | The ID of the Data Catalog where the partition in question resides. If+ -- none is provided, the Amazon Web Services account ID is used by default.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The time as of when to read the table contents. If not set, the most+ -- recent transaction commit time will be used. Cannot be specified along+ -- with @TransactionId@.+ queryAsOfTime :: Prelude.Maybe Data.POSIX,+ -- | A map consisting of key-value pairs.+ queryParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The transaction ID at which to read the table contents. If this+ -- transaction is not committed, the read will be treated as part of that+ -- transaction and will see its writes. If this transaction has aborted, an+ -- error will be returned. If not set, defaults to the most recent+ -- committed transaction. Cannot be specified along with @QueryAsOfTime@.+ transactionId :: Prelude.Maybe Prelude.Text,+ -- | The database containing the table.+ databaseName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'QueryPlanningContext' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'queryPlanningContext_catalogId' - The ID of the Data Catalog where the partition in question resides. If+-- none is provided, the Amazon Web Services account ID is used by default.+--+-- 'queryAsOfTime', 'queryPlanningContext_queryAsOfTime' - The time as of when to read the table contents. If not set, the most+-- recent transaction commit time will be used. Cannot be specified along+-- with @TransactionId@.+--+-- 'queryParameters', 'queryPlanningContext_queryParameters' - A map consisting of key-value pairs.+--+-- 'transactionId', 'queryPlanningContext_transactionId' - The transaction ID at which to read the table contents. If this+-- transaction is not committed, the read will be treated as part of that+-- transaction and will see its writes. If this transaction has aborted, an+-- error will be returned. If not set, defaults to the most recent+-- committed transaction. Cannot be specified along with @QueryAsOfTime@.+--+-- 'databaseName', 'queryPlanningContext_databaseName' - The database containing the table.+newQueryPlanningContext ::+ -- | 'databaseName'+ Prelude.Text ->+ QueryPlanningContext+newQueryPlanningContext pDatabaseName_ =+ QueryPlanningContext'+ { catalogId = Prelude.Nothing,+ queryAsOfTime = Prelude.Nothing,+ queryParameters = Prelude.Nothing,+ transactionId = Prelude.Nothing,+ databaseName = pDatabaseName_+ }++-- | The ID of the Data Catalog where the partition in question resides. If+-- none is provided, the Amazon Web Services account ID is used by default.+queryPlanningContext_catalogId :: Lens.Lens' QueryPlanningContext (Prelude.Maybe Prelude.Text)+queryPlanningContext_catalogId = Lens.lens (\QueryPlanningContext' {catalogId} -> catalogId) (\s@QueryPlanningContext' {} a -> s {catalogId = a} :: QueryPlanningContext)++-- | The time as of when to read the table contents. If not set, the most+-- recent transaction commit time will be used. Cannot be specified along+-- with @TransactionId@.+queryPlanningContext_queryAsOfTime :: Lens.Lens' QueryPlanningContext (Prelude.Maybe Prelude.UTCTime)+queryPlanningContext_queryAsOfTime = Lens.lens (\QueryPlanningContext' {queryAsOfTime} -> queryAsOfTime) (\s@QueryPlanningContext' {} a -> s {queryAsOfTime = a} :: QueryPlanningContext) Prelude.. Lens.mapping Data._Time++-- | A map consisting of key-value pairs.+queryPlanningContext_queryParameters :: Lens.Lens' QueryPlanningContext (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+queryPlanningContext_queryParameters = Lens.lens (\QueryPlanningContext' {queryParameters} -> queryParameters) (\s@QueryPlanningContext' {} a -> s {queryParameters = a} :: QueryPlanningContext) Prelude.. Lens.mapping Lens.coerced++-- | The transaction ID at which to read the table contents. If this+-- transaction is not committed, the read will be treated as part of that+-- transaction and will see its writes. If this transaction has aborted, an+-- error will be returned. If not set, defaults to the most recent+-- committed transaction. Cannot be specified along with @QueryAsOfTime@.+queryPlanningContext_transactionId :: Lens.Lens' QueryPlanningContext (Prelude.Maybe Prelude.Text)+queryPlanningContext_transactionId = Lens.lens (\QueryPlanningContext' {transactionId} -> transactionId) (\s@QueryPlanningContext' {} a -> s {transactionId = a} :: QueryPlanningContext)++-- | The database containing the table.+queryPlanningContext_databaseName :: Lens.Lens' QueryPlanningContext Prelude.Text+queryPlanningContext_databaseName = Lens.lens (\QueryPlanningContext' {databaseName} -> databaseName) (\s@QueryPlanningContext' {} a -> s {databaseName = a} :: QueryPlanningContext)++instance Prelude.Hashable QueryPlanningContext where+ hashWithSalt _salt QueryPlanningContext' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` queryAsOfTime+ `Prelude.hashWithSalt` queryParameters+ `Prelude.hashWithSalt` transactionId+ `Prelude.hashWithSalt` databaseName++instance Prelude.NFData QueryPlanningContext where+ rnf QueryPlanningContext' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf queryAsOfTime+ `Prelude.seq` Prelude.rnf queryParameters+ `Prelude.seq` Prelude.rnf transactionId+ `Prelude.seq` Prelude.rnf databaseName++instance Data.ToJSON QueryPlanningContext where+ toJSON QueryPlanningContext' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("QueryAsOfTime" Data..=) Prelude.<$> queryAsOfTime,+ ("QueryParameters" Data..=)+ Prelude.<$> queryParameters,+ ("TransactionId" Data..=) Prelude.<$> transactionId,+ Prelude.Just ("DatabaseName" Data..= databaseName)+ ]+ )
+ gen/Amazonka/LakeFormation/Types/QueryStateString.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.QueryStateString+-- Copyright : (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.LakeFormation.Types.QueryStateString+ ( QueryStateString+ ( ..,+ QueryStateString_ERROR,+ QueryStateString_EXPIRED,+ QueryStateString_FINISHED,+ QueryStateString_PENDING,+ QueryStateString_WORKUNITS_AVAILABLE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype QueryStateString = QueryStateString'+ { fromQueryStateString ::+ 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 QueryStateString_ERROR :: QueryStateString+pattern QueryStateString_ERROR = QueryStateString' "ERROR"++pattern QueryStateString_EXPIRED :: QueryStateString+pattern QueryStateString_EXPIRED = QueryStateString' "EXPIRED"++pattern QueryStateString_FINISHED :: QueryStateString+pattern QueryStateString_FINISHED = QueryStateString' "FINISHED"++pattern QueryStateString_PENDING :: QueryStateString+pattern QueryStateString_PENDING = QueryStateString' "PENDING"++pattern QueryStateString_WORKUNITS_AVAILABLE :: QueryStateString+pattern QueryStateString_WORKUNITS_AVAILABLE = QueryStateString' "WORKUNITS_AVAILABLE"++{-# COMPLETE+ QueryStateString_ERROR,+ QueryStateString_EXPIRED,+ QueryStateString_FINISHED,+ QueryStateString_PENDING,+ QueryStateString_WORKUNITS_AVAILABLE,+ QueryStateString'+ #-}
+ gen/Amazonka/LakeFormation/Types/Resource.hs view
@@ -0,0 +1,211 @@+{-# 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.LakeFormation.Types.Resource+-- Copyright : (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.LakeFormation.Types.Resource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.CatalogResource+import Amazonka.LakeFormation.Types.DataCellsFilterResource+import Amazonka.LakeFormation.Types.DataLocationResource+import Amazonka.LakeFormation.Types.DatabaseResource+import Amazonka.LakeFormation.Types.LFTagKeyResource+import Amazonka.LakeFormation.Types.LFTagPolicyResource+import Amazonka.LakeFormation.Types.TableResource+import Amazonka.LakeFormation.Types.TableWithColumnsResource+import qualified Amazonka.Prelude as Prelude++-- | A structure for the resource.+--+-- /See:/ 'newResource' smart constructor.+data Resource = Resource'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalog :: Prelude.Maybe CatalogResource,+ -- | A data cell filter.+ dataCellsFilter :: Prelude.Maybe DataCellsFilterResource,+ -- | The location of an Amazon S3 path where permissions are granted or+ -- revoked.+ dataLocation :: Prelude.Maybe DataLocationResource,+ -- | The database for the resource. Unique to the Data Catalog. A database is+ -- a set of associated table definitions organized into a logical group.+ -- You can Grant and Revoke database permissions to a principal.+ database :: Prelude.Maybe DatabaseResource,+ -- | The LF-tag key and values attached to a resource.+ lFTag :: Prelude.Maybe LFTagKeyResource,+ -- | A list of LF-tag conditions that define a resource\'s LF-tag policy.+ lFTagPolicy :: Prelude.Maybe LFTagPolicyResource,+ -- | The table for the resource. A table is a metadata definition that+ -- represents your data. You can Grant and Revoke table privileges to a+ -- principal.+ table :: Prelude.Maybe TableResource,+ -- | The table with columns for the resource. A principal with permissions to+ -- this resource can select metadata from the columns of a table in the+ -- Data Catalog and the underlying data in Amazon S3.+ tableWithColumns :: Prelude.Maybe TableWithColumnsResource+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Resource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalog', 'resource_catalog' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'dataCellsFilter', 'resource_dataCellsFilter' - A data cell filter.+--+-- 'dataLocation', 'resource_dataLocation' - The location of an Amazon S3 path where permissions are granted or+-- revoked.+--+-- 'database', 'resource_database' - The database for the resource. Unique to the Data Catalog. A database is+-- a set of associated table definitions organized into a logical group.+-- You can Grant and Revoke database permissions to a principal.+--+-- 'lFTag', 'resource_lFTag' - The LF-tag key and values attached to a resource.+--+-- 'lFTagPolicy', 'resource_lFTagPolicy' - A list of LF-tag conditions that define a resource\'s LF-tag policy.+--+-- 'table', 'resource_table' - The table for the resource. A table is a metadata definition that+-- represents your data. You can Grant and Revoke table privileges to a+-- principal.+--+-- 'tableWithColumns', 'resource_tableWithColumns' - The table with columns for the resource. A principal with permissions to+-- this resource can select metadata from the columns of a table in the+-- Data Catalog and the underlying data in Amazon S3.+newResource ::+ Resource+newResource =+ Resource'+ { catalog = Prelude.Nothing,+ dataCellsFilter = Prelude.Nothing,+ dataLocation = Prelude.Nothing,+ database = Prelude.Nothing,+ lFTag = Prelude.Nothing,+ lFTagPolicy = Prelude.Nothing,+ table = Prelude.Nothing,+ tableWithColumns = Prelude.Nothing+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+resource_catalog :: Lens.Lens' Resource (Prelude.Maybe CatalogResource)+resource_catalog = Lens.lens (\Resource' {catalog} -> catalog) (\s@Resource' {} a -> s {catalog = a} :: Resource)++-- | A data cell filter.+resource_dataCellsFilter :: Lens.Lens' Resource (Prelude.Maybe DataCellsFilterResource)+resource_dataCellsFilter = Lens.lens (\Resource' {dataCellsFilter} -> dataCellsFilter) (\s@Resource' {} a -> s {dataCellsFilter = a} :: Resource)++-- | The location of an Amazon S3 path where permissions are granted or+-- revoked.+resource_dataLocation :: Lens.Lens' Resource (Prelude.Maybe DataLocationResource)+resource_dataLocation = Lens.lens (\Resource' {dataLocation} -> dataLocation) (\s@Resource' {} a -> s {dataLocation = a} :: Resource)++-- | The database for the resource. Unique to the Data Catalog. A database is+-- a set of associated table definitions organized into a logical group.+-- You can Grant and Revoke database permissions to a principal.+resource_database :: Lens.Lens' Resource (Prelude.Maybe DatabaseResource)+resource_database = Lens.lens (\Resource' {database} -> database) (\s@Resource' {} a -> s {database = a} :: Resource)++-- | The LF-tag key and values attached to a resource.+resource_lFTag :: Lens.Lens' Resource (Prelude.Maybe LFTagKeyResource)+resource_lFTag = Lens.lens (\Resource' {lFTag} -> lFTag) (\s@Resource' {} a -> s {lFTag = a} :: Resource)++-- | A list of LF-tag conditions that define a resource\'s LF-tag policy.+resource_lFTagPolicy :: Lens.Lens' Resource (Prelude.Maybe LFTagPolicyResource)+resource_lFTagPolicy = Lens.lens (\Resource' {lFTagPolicy} -> lFTagPolicy) (\s@Resource' {} a -> s {lFTagPolicy = a} :: Resource)++-- | The table for the resource. A table is a metadata definition that+-- represents your data. You can Grant and Revoke table privileges to a+-- principal.+resource_table :: Lens.Lens' Resource (Prelude.Maybe TableResource)+resource_table = Lens.lens (\Resource' {table} -> table) (\s@Resource' {} a -> s {table = a} :: Resource)++-- | The table with columns for the resource. A principal with permissions to+-- this resource can select metadata from the columns of a table in the+-- Data Catalog and the underlying data in Amazon S3.+resource_tableWithColumns :: Lens.Lens' Resource (Prelude.Maybe TableWithColumnsResource)+resource_tableWithColumns = Lens.lens (\Resource' {tableWithColumns} -> tableWithColumns) (\s@Resource' {} a -> s {tableWithColumns = a} :: Resource)++instance Data.FromJSON Resource where+ parseJSON =+ Data.withObject+ "Resource"+ ( \x ->+ Resource'+ Prelude.<$> (x Data..:? "Catalog")+ Prelude.<*> (x Data..:? "DataCellsFilter")+ Prelude.<*> (x Data..:? "DataLocation")+ Prelude.<*> (x Data..:? "Database")+ Prelude.<*> (x Data..:? "LFTag")+ Prelude.<*> (x Data..:? "LFTagPolicy")+ Prelude.<*> (x Data..:? "Table")+ Prelude.<*> (x Data..:? "TableWithColumns")+ )++instance Prelude.Hashable Resource where+ hashWithSalt _salt Resource' {..} =+ _salt+ `Prelude.hashWithSalt` catalog+ `Prelude.hashWithSalt` dataCellsFilter+ `Prelude.hashWithSalt` dataLocation+ `Prelude.hashWithSalt` database+ `Prelude.hashWithSalt` lFTag+ `Prelude.hashWithSalt` lFTagPolicy+ `Prelude.hashWithSalt` table+ `Prelude.hashWithSalt` tableWithColumns++instance Prelude.NFData Resource where+ rnf Resource' {..} =+ Prelude.rnf catalog+ `Prelude.seq` Prelude.rnf dataCellsFilter+ `Prelude.seq` Prelude.rnf dataLocation+ `Prelude.seq` Prelude.rnf database+ `Prelude.seq` Prelude.rnf lFTag+ `Prelude.seq` Prelude.rnf lFTagPolicy+ `Prelude.seq` Prelude.rnf table+ `Prelude.seq` Prelude.rnf tableWithColumns++instance Data.ToJSON Resource where+ toJSON Resource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Catalog" Data..=) Prelude.<$> catalog,+ ("DataCellsFilter" Data..=)+ Prelude.<$> dataCellsFilter,+ ("DataLocation" Data..=) Prelude.<$> dataLocation,+ ("Database" Data..=) Prelude.<$> database,+ ("LFTag" Data..=) Prelude.<$> lFTag,+ ("LFTagPolicy" Data..=) Prelude.<$> lFTagPolicy,+ ("Table" Data..=) Prelude.<$> table,+ ("TableWithColumns" Data..=)+ Prelude.<$> tableWithColumns+ ]+ )
+ gen/Amazonka/LakeFormation/Types/ResourceInfo.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.LakeFormation.Types.ResourceInfo+-- Copyright : (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.LakeFormation.Types.ResourceInfo 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 containing information about an Lake Formation resource.+--+-- /See:/ 'newResourceInfo' smart constructor.+data ResourceInfo = ResourceInfo'+ { -- | The date and time the resource was last modified.+ lastModified :: Prelude.Maybe Data.POSIX,+ -- | The Amazon Resource Name (ARN) of the resource.+ resourceArn :: Prelude.Maybe Prelude.Text,+ -- | The IAM role that registered a resource.+ roleArn :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourceInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lastModified', 'resourceInfo_lastModified' - The date and time the resource was last modified.+--+-- 'resourceArn', 'resourceInfo_resourceArn' - The Amazon Resource Name (ARN) of the resource.+--+-- 'roleArn', 'resourceInfo_roleArn' - The IAM role that registered a resource.+newResourceInfo ::+ ResourceInfo+newResourceInfo =+ ResourceInfo'+ { lastModified = Prelude.Nothing,+ resourceArn = Prelude.Nothing,+ roleArn = Prelude.Nothing+ }++-- | The date and time the resource was last modified.+resourceInfo_lastModified :: Lens.Lens' ResourceInfo (Prelude.Maybe Prelude.UTCTime)+resourceInfo_lastModified = Lens.lens (\ResourceInfo' {lastModified} -> lastModified) (\s@ResourceInfo' {} a -> s {lastModified = a} :: ResourceInfo) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the resource.+resourceInfo_resourceArn :: Lens.Lens' ResourceInfo (Prelude.Maybe Prelude.Text)+resourceInfo_resourceArn = Lens.lens (\ResourceInfo' {resourceArn} -> resourceArn) (\s@ResourceInfo' {} a -> s {resourceArn = a} :: ResourceInfo)++-- | The IAM role that registered a resource.+resourceInfo_roleArn :: Lens.Lens' ResourceInfo (Prelude.Maybe Prelude.Text)+resourceInfo_roleArn = Lens.lens (\ResourceInfo' {roleArn} -> roleArn) (\s@ResourceInfo' {} a -> s {roleArn = a} :: ResourceInfo)++instance Data.FromJSON ResourceInfo where+ parseJSON =+ Data.withObject+ "ResourceInfo"+ ( \x ->+ ResourceInfo'+ Prelude.<$> (x Data..:? "LastModified")+ Prelude.<*> (x Data..:? "ResourceArn")+ Prelude.<*> (x Data..:? "RoleArn")+ )++instance Prelude.Hashable ResourceInfo where+ hashWithSalt _salt ResourceInfo' {..} =+ _salt+ `Prelude.hashWithSalt` lastModified+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` roleArn++instance Prelude.NFData ResourceInfo where+ rnf ResourceInfo' {..} =+ Prelude.rnf lastModified+ `Prelude.seq` Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf roleArn
@@ -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.LakeFormation.Types.ResourceShareType+-- Copyright : (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.LakeFormation.Types.ResourceShareType+ ( ResourceShareType+ ( ..,+ ResourceShareType_ALL,+ ResourceShareType_FOREIGN+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ResourceShareType = ResourceShareType'+ { fromResourceShareType ::+ 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 ResourceShareType_ALL :: ResourceShareType+pattern ResourceShareType_ALL = ResourceShareType' "ALL"++pattern ResourceShareType_FOREIGN :: ResourceShareType+pattern ResourceShareType_FOREIGN = ResourceShareType' "FOREIGN"++{-# COMPLETE+ ResourceShareType_ALL,+ ResourceShareType_FOREIGN,+ ResourceShareType'+ #-}
+ gen/Amazonka/LakeFormation/Types/ResourceType.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.LakeFormation.Types.ResourceType+-- Copyright : (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.LakeFormation.Types.ResourceType+ ( ResourceType+ ( ..,+ ResourceType_DATABASE,+ ResourceType_TABLE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ResourceType = ResourceType'+ { fromResourceType ::+ 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 ResourceType_DATABASE :: ResourceType+pattern ResourceType_DATABASE = ResourceType' "DATABASE"++pattern ResourceType_TABLE :: ResourceType+pattern ResourceType_TABLE = ResourceType' "TABLE"++{-# COMPLETE+ ResourceType_DATABASE,+ ResourceType_TABLE,+ ResourceType'+ #-}
+ gen/Amazonka/LakeFormation/Types/RowFilter.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.LakeFormation.Types.RowFilter+-- Copyright : (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.LakeFormation.Types.RowFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.AllRowsWildcard+import qualified Amazonka.Prelude as Prelude++-- | A PartiQL predicate.+--+-- /See:/ 'newRowFilter' smart constructor.+data RowFilter = RowFilter'+ { -- | A wildcard for all rows.+ allRowsWildcard :: Prelude.Maybe AllRowsWildcard,+ -- | A filter expression.+ filterExpression :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RowFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allRowsWildcard', 'rowFilter_allRowsWildcard' - A wildcard for all rows.+--+-- 'filterExpression', 'rowFilter_filterExpression' - A filter expression.+newRowFilter ::+ RowFilter+newRowFilter =+ RowFilter'+ { allRowsWildcard = Prelude.Nothing,+ filterExpression = Prelude.Nothing+ }++-- | A wildcard for all rows.+rowFilter_allRowsWildcard :: Lens.Lens' RowFilter (Prelude.Maybe AllRowsWildcard)+rowFilter_allRowsWildcard = Lens.lens (\RowFilter' {allRowsWildcard} -> allRowsWildcard) (\s@RowFilter' {} a -> s {allRowsWildcard = a} :: RowFilter)++-- | A filter expression.+rowFilter_filterExpression :: Lens.Lens' RowFilter (Prelude.Maybe Prelude.Text)+rowFilter_filterExpression = Lens.lens (\RowFilter' {filterExpression} -> filterExpression) (\s@RowFilter' {} a -> s {filterExpression = a} :: RowFilter)++instance Data.FromJSON RowFilter where+ parseJSON =+ Data.withObject+ "RowFilter"+ ( \x ->+ RowFilter'+ Prelude.<$> (x Data..:? "AllRowsWildcard")+ Prelude.<*> (x Data..:? "FilterExpression")+ )++instance Prelude.Hashable RowFilter where+ hashWithSalt _salt RowFilter' {..} =+ _salt+ `Prelude.hashWithSalt` allRowsWildcard+ `Prelude.hashWithSalt` filterExpression++instance Prelude.NFData RowFilter where+ rnf RowFilter' {..} =+ Prelude.rnf allRowsWildcard+ `Prelude.seq` Prelude.rnf filterExpression++instance Data.ToJSON RowFilter where+ toJSON RowFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AllRowsWildcard" Data..=)+ Prelude.<$> allRowsWildcard,+ ("FilterExpression" Data..=)+ Prelude.<$> filterExpression+ ]+ )
+ gen/Amazonka/LakeFormation/Types/StorageOptimizer.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.StorageOptimizer+-- Copyright : (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.LakeFormation.Types.StorageOptimizer where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.OptimizerType+import qualified Amazonka.Prelude as Prelude++-- | A structure describing the configuration and details of a storage+-- optimizer.+--+-- /See:/ 'newStorageOptimizer' smart constructor.+data StorageOptimizer = StorageOptimizer'+ { -- | A map of the storage optimizer configuration. Currently contains only+ -- one key-value pair: @is_enabled@ indicates true or false for+ -- acceleration.+ config :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | A message that contains information about any error (if present).+ --+ -- When an acceleration result has an enabled status, the error message is+ -- empty.+ --+ -- When an acceleration result has a disabled status, the message describes+ -- an error or simply indicates \"disabled by the user\".+ errorMessage :: Prelude.Maybe Prelude.Text,+ -- | When an acceleration result has an enabled status, contains the details+ -- of the last job run.+ lastRunDetails :: Prelude.Maybe Prelude.Text,+ -- | The specific type of storage optimizer. The supported value is+ -- @compaction@.+ storageOptimizerType :: Prelude.Maybe OptimizerType,+ -- | A message that contains information about any warnings (if present).+ warnings :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StorageOptimizer' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'config', 'storageOptimizer_config' - A map of the storage optimizer configuration. Currently contains only+-- one key-value pair: @is_enabled@ indicates true or false for+-- acceleration.+--+-- 'errorMessage', 'storageOptimizer_errorMessage' - A message that contains information about any error (if present).+--+-- When an acceleration result has an enabled status, the error message is+-- empty.+--+-- When an acceleration result has a disabled status, the message describes+-- an error or simply indicates \"disabled by the user\".+--+-- 'lastRunDetails', 'storageOptimizer_lastRunDetails' - When an acceleration result has an enabled status, contains the details+-- of the last job run.+--+-- 'storageOptimizerType', 'storageOptimizer_storageOptimizerType' - The specific type of storage optimizer. The supported value is+-- @compaction@.+--+-- 'warnings', 'storageOptimizer_warnings' - A message that contains information about any warnings (if present).+newStorageOptimizer ::+ StorageOptimizer+newStorageOptimizer =+ StorageOptimizer'+ { config = Prelude.Nothing,+ errorMessage = Prelude.Nothing,+ lastRunDetails = Prelude.Nothing,+ storageOptimizerType = Prelude.Nothing,+ warnings = Prelude.Nothing+ }++-- | A map of the storage optimizer configuration. Currently contains only+-- one key-value pair: @is_enabled@ indicates true or false for+-- acceleration.+storageOptimizer_config :: Lens.Lens' StorageOptimizer (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+storageOptimizer_config = Lens.lens (\StorageOptimizer' {config} -> config) (\s@StorageOptimizer' {} a -> s {config = a} :: StorageOptimizer) Prelude.. Lens.mapping Lens.coerced++-- | A message that contains information about any error (if present).+--+-- When an acceleration result has an enabled status, the error message is+-- empty.+--+-- When an acceleration result has a disabled status, the message describes+-- an error or simply indicates \"disabled by the user\".+storageOptimizer_errorMessage :: Lens.Lens' StorageOptimizer (Prelude.Maybe Prelude.Text)+storageOptimizer_errorMessage = Lens.lens (\StorageOptimizer' {errorMessage} -> errorMessage) (\s@StorageOptimizer' {} a -> s {errorMessage = a} :: StorageOptimizer)++-- | When an acceleration result has an enabled status, contains the details+-- of the last job run.+storageOptimizer_lastRunDetails :: Lens.Lens' StorageOptimizer (Prelude.Maybe Prelude.Text)+storageOptimizer_lastRunDetails = Lens.lens (\StorageOptimizer' {lastRunDetails} -> lastRunDetails) (\s@StorageOptimizer' {} a -> s {lastRunDetails = a} :: StorageOptimizer)++-- | The specific type of storage optimizer. The supported value is+-- @compaction@.+storageOptimizer_storageOptimizerType :: Lens.Lens' StorageOptimizer (Prelude.Maybe OptimizerType)+storageOptimizer_storageOptimizerType = Lens.lens (\StorageOptimizer' {storageOptimizerType} -> storageOptimizerType) (\s@StorageOptimizer' {} a -> s {storageOptimizerType = a} :: StorageOptimizer)++-- | A message that contains information about any warnings (if present).+storageOptimizer_warnings :: Lens.Lens' StorageOptimizer (Prelude.Maybe Prelude.Text)+storageOptimizer_warnings = Lens.lens (\StorageOptimizer' {warnings} -> warnings) (\s@StorageOptimizer' {} a -> s {warnings = a} :: StorageOptimizer)++instance Data.FromJSON StorageOptimizer where+ parseJSON =+ Data.withObject+ "StorageOptimizer"+ ( \x ->+ StorageOptimizer'+ Prelude.<$> (x Data..:? "Config" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "ErrorMessage")+ Prelude.<*> (x Data..:? "LastRunDetails")+ Prelude.<*> (x Data..:? "StorageOptimizerType")+ Prelude.<*> (x Data..:? "Warnings")+ )++instance Prelude.Hashable StorageOptimizer where+ hashWithSalt _salt StorageOptimizer' {..} =+ _salt+ `Prelude.hashWithSalt` config+ `Prelude.hashWithSalt` errorMessage+ `Prelude.hashWithSalt` lastRunDetails+ `Prelude.hashWithSalt` storageOptimizerType+ `Prelude.hashWithSalt` warnings++instance Prelude.NFData StorageOptimizer where+ rnf StorageOptimizer' {..} =+ Prelude.rnf config+ `Prelude.seq` Prelude.rnf errorMessage+ `Prelude.seq` Prelude.rnf lastRunDetails+ `Prelude.seq` Prelude.rnf storageOptimizerType+ `Prelude.seq` Prelude.rnf warnings
+ gen/Amazonka/LakeFormation/Types/TableObject.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.TableObject+-- Copyright : (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.LakeFormation.Types.TableObject 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++-- | Specifies the details of a governed table.+--+-- /See:/ 'newTableObject' smart constructor.+data TableObject = TableObject'+ { -- | The Amazon S3 ETag of the object. Returned by @GetTableObjects@ for+ -- validation and used to identify changes to the underlying data.+ eTag :: Prelude.Maybe Prelude.Text,+ -- | The size of the Amazon S3 object in bytes.+ size :: Prelude.Maybe Prelude.Integer,+ -- | The Amazon S3 location of the object.+ uri :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TableObject' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eTag', 'tableObject_eTag' - The Amazon S3 ETag of the object. Returned by @GetTableObjects@ for+-- validation and used to identify changes to the underlying data.+--+-- 'size', 'tableObject_size' - The size of the Amazon S3 object in bytes.+--+-- 'uri', 'tableObject_uri' - The Amazon S3 location of the object.+newTableObject ::+ TableObject+newTableObject =+ TableObject'+ { eTag = Prelude.Nothing,+ size = Prelude.Nothing,+ uri = Prelude.Nothing+ }++-- | The Amazon S3 ETag of the object. Returned by @GetTableObjects@ for+-- validation and used to identify changes to the underlying data.+tableObject_eTag :: Lens.Lens' TableObject (Prelude.Maybe Prelude.Text)+tableObject_eTag = Lens.lens (\TableObject' {eTag} -> eTag) (\s@TableObject' {} a -> s {eTag = a} :: TableObject)++-- | The size of the Amazon S3 object in bytes.+tableObject_size :: Lens.Lens' TableObject (Prelude.Maybe Prelude.Integer)+tableObject_size = Lens.lens (\TableObject' {size} -> size) (\s@TableObject' {} a -> s {size = a} :: TableObject)++-- | The Amazon S3 location of the object.+tableObject_uri :: Lens.Lens' TableObject (Prelude.Maybe Prelude.Text)+tableObject_uri = Lens.lens (\TableObject' {uri} -> uri) (\s@TableObject' {} a -> s {uri = a} :: TableObject)++instance Data.FromJSON TableObject where+ parseJSON =+ Data.withObject+ "TableObject"+ ( \x ->+ TableObject'+ Prelude.<$> (x Data..:? "ETag")+ Prelude.<*> (x Data..:? "Size")+ Prelude.<*> (x Data..:? "Uri")+ )++instance Prelude.Hashable TableObject where+ hashWithSalt _salt TableObject' {..} =+ _salt+ `Prelude.hashWithSalt` eTag+ `Prelude.hashWithSalt` size+ `Prelude.hashWithSalt` uri++instance Prelude.NFData TableObject where+ rnf TableObject' {..} =+ Prelude.rnf eTag+ `Prelude.seq` Prelude.rnf size+ `Prelude.seq` Prelude.rnf uri
+ gen/Amazonka/LakeFormation/Types/TableResource.hs view
@@ -0,0 +1,145 @@+{-# 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.LakeFormation.Types.TableResource+-- Copyright : (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.LakeFormation.Types.TableResource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.TableWildcard+import qualified Amazonka.Prelude as Prelude++-- | A structure for the table object. A table is a metadata definition that+-- represents your data. You can Grant and Revoke table privileges to a+-- principal.+--+-- /See:/ 'newTableResource' smart constructor.+data TableResource = TableResource'+ { -- | The identifier for the Data Catalog. By default, it is the account ID of+ -- the caller.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The name of the table.+ name :: Prelude.Maybe Prelude.Text,+ -- | A wildcard object representing every table under a database.+ --+ -- At least one of @TableResource$Name@ or @TableResource$TableWildcard@ is+ -- required.+ tableWildcard :: Prelude.Maybe TableWildcard,+ -- | The name of the database for the table. Unique to a Data Catalog. A+ -- database is a set of associated table definitions organized into a+ -- logical group. You can Grant and Revoke database privileges to a+ -- principal.+ databaseName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TableResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'tableResource_catalogId' - The identifier for the Data Catalog. By default, it is the account ID of+-- the caller.+--+-- 'name', 'tableResource_name' - The name of the table.+--+-- 'tableWildcard', 'tableResource_tableWildcard' - A wildcard object representing every table under a database.+--+-- At least one of @TableResource$Name@ or @TableResource$TableWildcard@ is+-- required.+--+-- 'databaseName', 'tableResource_databaseName' - The name of the database for the table. Unique to a Data Catalog. A+-- database is a set of associated table definitions organized into a+-- logical group. You can Grant and Revoke database privileges to a+-- principal.+newTableResource ::+ -- | 'databaseName'+ Prelude.Text ->+ TableResource+newTableResource pDatabaseName_ =+ TableResource'+ { catalogId = Prelude.Nothing,+ name = Prelude.Nothing,+ tableWildcard = Prelude.Nothing,+ databaseName = pDatabaseName_+ }++-- | The identifier for the Data Catalog. By default, it is the account ID of+-- the caller.+tableResource_catalogId :: Lens.Lens' TableResource (Prelude.Maybe Prelude.Text)+tableResource_catalogId = Lens.lens (\TableResource' {catalogId} -> catalogId) (\s@TableResource' {} a -> s {catalogId = a} :: TableResource)++-- | The name of the table.+tableResource_name :: Lens.Lens' TableResource (Prelude.Maybe Prelude.Text)+tableResource_name = Lens.lens (\TableResource' {name} -> name) (\s@TableResource' {} a -> s {name = a} :: TableResource)++-- | A wildcard object representing every table under a database.+--+-- At least one of @TableResource$Name@ or @TableResource$TableWildcard@ is+-- required.+tableResource_tableWildcard :: Lens.Lens' TableResource (Prelude.Maybe TableWildcard)+tableResource_tableWildcard = Lens.lens (\TableResource' {tableWildcard} -> tableWildcard) (\s@TableResource' {} a -> s {tableWildcard = a} :: TableResource)++-- | The name of the database for the table. Unique to a Data Catalog. A+-- database is a set of associated table definitions organized into a+-- logical group. You can Grant and Revoke database privileges to a+-- principal.+tableResource_databaseName :: Lens.Lens' TableResource Prelude.Text+tableResource_databaseName = Lens.lens (\TableResource' {databaseName} -> databaseName) (\s@TableResource' {} a -> s {databaseName = a} :: TableResource)++instance Data.FromJSON TableResource where+ parseJSON =+ Data.withObject+ "TableResource"+ ( \x ->+ TableResource'+ Prelude.<$> (x Data..:? "CatalogId")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "TableWildcard")+ Prelude.<*> (x Data..: "DatabaseName")+ )++instance Prelude.Hashable TableResource where+ hashWithSalt _salt TableResource' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` tableWildcard+ `Prelude.hashWithSalt` databaseName++instance Prelude.NFData TableResource where+ rnf TableResource' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf tableWildcard+ `Prelude.seq` Prelude.rnf databaseName++instance Data.ToJSON TableResource where+ toJSON TableResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("Name" Data..=) Prelude.<$> name,+ ("TableWildcard" Data..=) Prelude.<$> tableWildcard,+ Prelude.Just ("DatabaseName" Data..= databaseName)+ ]+ )
+ gen/Amazonka/LakeFormation/Types/TableWildcard.hs view
@@ -0,0 +1,57 @@+{-# 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.LakeFormation.Types.TableWildcard+-- Copyright : (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.LakeFormation.Types.TableWildcard 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 wildcard object representing every table under a database.+--+-- /See:/ 'newTableWildcard' smart constructor.+data TableWildcard = TableWildcard'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TableWildcard' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newTableWildcard ::+ TableWildcard+newTableWildcard = TableWildcard'++instance Data.FromJSON TableWildcard where+ parseJSON =+ Data.withObject+ "TableWildcard"+ (\x -> Prelude.pure TableWildcard')++instance Prelude.Hashable TableWildcard where+ hashWithSalt _salt _ =+ _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData TableWildcard where+ rnf _ = ()++instance Data.ToJSON TableWildcard where+ toJSON = Prelude.const (Data.Object Prelude.mempty)
+ gen/Amazonka/LakeFormation/Types/TableWithColumnsResource.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.TableWithColumnsResource+-- Copyright : (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.LakeFormation.Types.TableWithColumnsResource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.ColumnWildcard+import qualified Amazonka.Prelude as Prelude++-- | A structure for a table with columns object. This object is only used+-- when granting a SELECT permission.+--+-- This object must take a value for at least one of @ColumnsNames@,+-- @ColumnsIndexes@, or @ColumnsWildcard@.+--+-- /See:/ 'newTableWithColumnsResource' smart constructor.+data TableWithColumnsResource = TableWithColumnsResource'+ { -- | The identifier for the Data Catalog. By default, it is the account ID of+ -- the caller.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The list of column names for the table. At least one of @ColumnNames@ or+ -- @ColumnWildcard@ is required.+ columnNames :: Prelude.Maybe [Prelude.Text],+ -- | A wildcard specified by a @ColumnWildcard@ object. At least one of+ -- @ColumnNames@ or @ColumnWildcard@ is required.+ columnWildcard :: Prelude.Maybe ColumnWildcard,+ -- | The name of the database for the table with columns resource. Unique to+ -- the Data Catalog. A database is a set of associated table definitions+ -- organized into a logical group. You can Grant and Revoke database+ -- privileges to a principal.+ databaseName :: Prelude.Text,+ -- | The name of the table resource. A table is a metadata definition that+ -- represents your data. You can Grant and Revoke table privileges to a+ -- principal.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TableWithColumnsResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'tableWithColumnsResource_catalogId' - The identifier for the Data Catalog. By default, it is the account ID of+-- the caller.+--+-- 'columnNames', 'tableWithColumnsResource_columnNames' - The list of column names for the table. At least one of @ColumnNames@ or+-- @ColumnWildcard@ is required.+--+-- 'columnWildcard', 'tableWithColumnsResource_columnWildcard' - A wildcard specified by a @ColumnWildcard@ object. At least one of+-- @ColumnNames@ or @ColumnWildcard@ is required.+--+-- 'databaseName', 'tableWithColumnsResource_databaseName' - The name of the database for the table with columns resource. Unique to+-- the Data Catalog. A database is a set of associated table definitions+-- organized into a logical group. You can Grant and Revoke database+-- privileges to a principal.+--+-- 'name', 'tableWithColumnsResource_name' - The name of the table resource. A table is a metadata definition that+-- represents your data. You can Grant and Revoke table privileges to a+-- principal.+newTableWithColumnsResource ::+ -- | 'databaseName'+ Prelude.Text ->+ -- | 'name'+ Prelude.Text ->+ TableWithColumnsResource+newTableWithColumnsResource pDatabaseName_ pName_ =+ TableWithColumnsResource'+ { catalogId =+ Prelude.Nothing,+ columnNames = Prelude.Nothing,+ columnWildcard = Prelude.Nothing,+ databaseName = pDatabaseName_,+ name = pName_+ }++-- | The identifier for the Data Catalog. By default, it is the account ID of+-- the caller.+tableWithColumnsResource_catalogId :: Lens.Lens' TableWithColumnsResource (Prelude.Maybe Prelude.Text)+tableWithColumnsResource_catalogId = Lens.lens (\TableWithColumnsResource' {catalogId} -> catalogId) (\s@TableWithColumnsResource' {} a -> s {catalogId = a} :: TableWithColumnsResource)++-- | The list of column names for the table. At least one of @ColumnNames@ or+-- @ColumnWildcard@ is required.+tableWithColumnsResource_columnNames :: Lens.Lens' TableWithColumnsResource (Prelude.Maybe [Prelude.Text])+tableWithColumnsResource_columnNames = Lens.lens (\TableWithColumnsResource' {columnNames} -> columnNames) (\s@TableWithColumnsResource' {} a -> s {columnNames = a} :: TableWithColumnsResource) Prelude.. Lens.mapping Lens.coerced++-- | A wildcard specified by a @ColumnWildcard@ object. At least one of+-- @ColumnNames@ or @ColumnWildcard@ is required.+tableWithColumnsResource_columnWildcard :: Lens.Lens' TableWithColumnsResource (Prelude.Maybe ColumnWildcard)+tableWithColumnsResource_columnWildcard = Lens.lens (\TableWithColumnsResource' {columnWildcard} -> columnWildcard) (\s@TableWithColumnsResource' {} a -> s {columnWildcard = a} :: TableWithColumnsResource)++-- | The name of the database for the table with columns resource. Unique to+-- the Data Catalog. A database is a set of associated table definitions+-- organized into a logical group. You can Grant and Revoke database+-- privileges to a principal.+tableWithColumnsResource_databaseName :: Lens.Lens' TableWithColumnsResource Prelude.Text+tableWithColumnsResource_databaseName = Lens.lens (\TableWithColumnsResource' {databaseName} -> databaseName) (\s@TableWithColumnsResource' {} a -> s {databaseName = a} :: TableWithColumnsResource)++-- | The name of the table resource. A table is a metadata definition that+-- represents your data. You can Grant and Revoke table privileges to a+-- principal.+tableWithColumnsResource_name :: Lens.Lens' TableWithColumnsResource Prelude.Text+tableWithColumnsResource_name = Lens.lens (\TableWithColumnsResource' {name} -> name) (\s@TableWithColumnsResource' {} a -> s {name = a} :: TableWithColumnsResource)++instance Data.FromJSON TableWithColumnsResource where+ parseJSON =+ Data.withObject+ "TableWithColumnsResource"+ ( \x ->+ TableWithColumnsResource'+ Prelude.<$> (x Data..:? "CatalogId")+ Prelude.<*> (x Data..:? "ColumnNames" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "ColumnWildcard")+ Prelude.<*> (x Data..: "DatabaseName")+ Prelude.<*> (x Data..: "Name")+ )++instance Prelude.Hashable TableWithColumnsResource where+ hashWithSalt _salt TableWithColumnsResource' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` columnNames+ `Prelude.hashWithSalt` columnWildcard+ `Prelude.hashWithSalt` databaseName+ `Prelude.hashWithSalt` name++instance Prelude.NFData TableWithColumnsResource where+ rnf TableWithColumnsResource' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf columnNames+ `Prelude.seq` Prelude.rnf columnWildcard+ `Prelude.seq` Prelude.rnf databaseName+ `Prelude.seq` Prelude.rnf name++instance Data.ToJSON TableWithColumnsResource where+ toJSON TableWithColumnsResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("ColumnNames" Data..=) Prelude.<$> columnNames,+ ("ColumnWildcard" Data..=)+ Prelude.<$> columnWildcard,+ Prelude.Just ("DatabaseName" Data..= databaseName),+ Prelude.Just ("Name" Data..= name)+ ]+ )
+ gen/Amazonka/LakeFormation/Types/TaggedDatabase.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.TaggedDatabase+-- Copyright : (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.LakeFormation.Types.TaggedDatabase where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.DatabaseResource+import Amazonka.LakeFormation.Types.LFTagPair+import qualified Amazonka.Prelude as Prelude++-- | A structure describing a database resource with LF-tags.+--+-- /See:/ 'newTaggedDatabase' smart constructor.+data TaggedDatabase = TaggedDatabase'+ { -- | A database that has LF-tags attached to it.+ database :: Prelude.Maybe DatabaseResource,+ -- | A list of LF-tags attached to the database.+ lFTags :: Prelude.Maybe (Prelude.NonEmpty LFTagPair)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TaggedDatabase' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'database', 'taggedDatabase_database' - A database that has LF-tags attached to it.+--+-- 'lFTags', 'taggedDatabase_lFTags' - A list of LF-tags attached to the database.+newTaggedDatabase ::+ TaggedDatabase+newTaggedDatabase =+ TaggedDatabase'+ { database = Prelude.Nothing,+ lFTags = Prelude.Nothing+ }++-- | A database that has LF-tags attached to it.+taggedDatabase_database :: Lens.Lens' TaggedDatabase (Prelude.Maybe DatabaseResource)+taggedDatabase_database = Lens.lens (\TaggedDatabase' {database} -> database) (\s@TaggedDatabase' {} a -> s {database = a} :: TaggedDatabase)++-- | A list of LF-tags attached to the database.+taggedDatabase_lFTags :: Lens.Lens' TaggedDatabase (Prelude.Maybe (Prelude.NonEmpty LFTagPair))+taggedDatabase_lFTags = Lens.lens (\TaggedDatabase' {lFTags} -> lFTags) (\s@TaggedDatabase' {} a -> s {lFTags = a} :: TaggedDatabase) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON TaggedDatabase where+ parseJSON =+ Data.withObject+ "TaggedDatabase"+ ( \x ->+ TaggedDatabase'+ Prelude.<$> (x Data..:? "Database")+ Prelude.<*> (x Data..:? "LFTags")+ )++instance Prelude.Hashable TaggedDatabase where+ hashWithSalt _salt TaggedDatabase' {..} =+ _salt+ `Prelude.hashWithSalt` database+ `Prelude.hashWithSalt` lFTags++instance Prelude.NFData TaggedDatabase where+ rnf TaggedDatabase' {..} =+ Prelude.rnf database+ `Prelude.seq` Prelude.rnf lFTags
+ gen/Amazonka/LakeFormation/Types/TaggedTable.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.TaggedTable+-- Copyright : (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.LakeFormation.Types.TaggedTable where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.ColumnLFTag+import Amazonka.LakeFormation.Types.LFTagPair+import Amazonka.LakeFormation.Types.TableResource+import qualified Amazonka.Prelude as Prelude++-- | A structure describing a table resource with LF-tags.+--+-- /See:/ 'newTaggedTable' smart constructor.+data TaggedTable = TaggedTable'+ { -- | A list of LF-tags attached to the database where the table resides.+ lFTagOnDatabase :: Prelude.Maybe (Prelude.NonEmpty LFTagPair),+ -- | A list of LF-tags attached to columns in the table.+ lFTagsOnColumns :: Prelude.Maybe [ColumnLFTag],+ -- | A list of LF-tags attached to the table.+ lFTagsOnTable :: Prelude.Maybe (Prelude.NonEmpty LFTagPair),+ -- | A table that has LF-tags attached to it.+ table :: Prelude.Maybe TableResource+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TaggedTable' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lFTagOnDatabase', 'taggedTable_lFTagOnDatabase' - A list of LF-tags attached to the database where the table resides.+--+-- 'lFTagsOnColumns', 'taggedTable_lFTagsOnColumns' - A list of LF-tags attached to columns in the table.+--+-- 'lFTagsOnTable', 'taggedTable_lFTagsOnTable' - A list of LF-tags attached to the table.+--+-- 'table', 'taggedTable_table' - A table that has LF-tags attached to it.+newTaggedTable ::+ TaggedTable+newTaggedTable =+ TaggedTable'+ { lFTagOnDatabase = Prelude.Nothing,+ lFTagsOnColumns = Prelude.Nothing,+ lFTagsOnTable = Prelude.Nothing,+ table = Prelude.Nothing+ }++-- | A list of LF-tags attached to the database where the table resides.+taggedTable_lFTagOnDatabase :: Lens.Lens' TaggedTable (Prelude.Maybe (Prelude.NonEmpty LFTagPair))+taggedTable_lFTagOnDatabase = Lens.lens (\TaggedTable' {lFTagOnDatabase} -> lFTagOnDatabase) (\s@TaggedTable' {} a -> s {lFTagOnDatabase = a} :: TaggedTable) Prelude.. Lens.mapping Lens.coerced++-- | A list of LF-tags attached to columns in the table.+taggedTable_lFTagsOnColumns :: Lens.Lens' TaggedTable (Prelude.Maybe [ColumnLFTag])+taggedTable_lFTagsOnColumns = Lens.lens (\TaggedTable' {lFTagsOnColumns} -> lFTagsOnColumns) (\s@TaggedTable' {} a -> s {lFTagsOnColumns = a} :: TaggedTable) Prelude.. Lens.mapping Lens.coerced++-- | A list of LF-tags attached to the table.+taggedTable_lFTagsOnTable :: Lens.Lens' TaggedTable (Prelude.Maybe (Prelude.NonEmpty LFTagPair))+taggedTable_lFTagsOnTable = Lens.lens (\TaggedTable' {lFTagsOnTable} -> lFTagsOnTable) (\s@TaggedTable' {} a -> s {lFTagsOnTable = a} :: TaggedTable) Prelude.. Lens.mapping Lens.coerced++-- | A table that has LF-tags attached to it.+taggedTable_table :: Lens.Lens' TaggedTable (Prelude.Maybe TableResource)+taggedTable_table = Lens.lens (\TaggedTable' {table} -> table) (\s@TaggedTable' {} a -> s {table = a} :: TaggedTable)++instance Data.FromJSON TaggedTable where+ parseJSON =+ Data.withObject+ "TaggedTable"+ ( \x ->+ TaggedTable'+ Prelude.<$> (x Data..:? "LFTagOnDatabase")+ Prelude.<*> ( x+ Data..:? "LFTagsOnColumns"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "LFTagsOnTable")+ Prelude.<*> (x Data..:? "Table")+ )++instance Prelude.Hashable TaggedTable where+ hashWithSalt _salt TaggedTable' {..} =+ _salt+ `Prelude.hashWithSalt` lFTagOnDatabase+ `Prelude.hashWithSalt` lFTagsOnColumns+ `Prelude.hashWithSalt` lFTagsOnTable+ `Prelude.hashWithSalt` table++instance Prelude.NFData TaggedTable where+ rnf TaggedTable' {..} =+ Prelude.rnf lFTagOnDatabase+ `Prelude.seq` Prelude.rnf lFTagsOnColumns+ `Prelude.seq` Prelude.rnf lFTagsOnTable+ `Prelude.seq` Prelude.rnf table
+ gen/Amazonka/LakeFormation/Types/TransactionDescription.hs view
@@ -0,0 +1,113 @@+{-# 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.LakeFormation.Types.TransactionDescription+-- Copyright : (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.LakeFormation.Types.TransactionDescription where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.TransactionStatus+import qualified Amazonka.Prelude as Prelude++-- | A structure that contains information about a transaction.+--+-- /See:/ 'newTransactionDescription' smart constructor.+data TransactionDescription = TransactionDescription'+ { -- | The time when the transaction committed or aborted, if it is not+ -- currently active.+ transactionEndTime :: Prelude.Maybe Data.POSIX,+ -- | The ID of the transaction.+ transactionId :: Prelude.Maybe Prelude.Text,+ -- | The time when the transaction started.+ transactionStartTime :: Prelude.Maybe Data.POSIX,+ -- | A status of ACTIVE, COMMITTED, or ABORTED.+ transactionStatus :: Prelude.Maybe TransactionStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TransactionDescription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'transactionEndTime', 'transactionDescription_transactionEndTime' - The time when the transaction committed or aborted, if it is not+-- currently active.+--+-- 'transactionId', 'transactionDescription_transactionId' - The ID of the transaction.+--+-- 'transactionStartTime', 'transactionDescription_transactionStartTime' - The time when the transaction started.+--+-- 'transactionStatus', 'transactionDescription_transactionStatus' - A status of ACTIVE, COMMITTED, or ABORTED.+newTransactionDescription ::+ TransactionDescription+newTransactionDescription =+ TransactionDescription'+ { transactionEndTime =+ Prelude.Nothing,+ transactionId = Prelude.Nothing,+ transactionStartTime = Prelude.Nothing,+ transactionStatus = Prelude.Nothing+ }++-- | The time when the transaction committed or aborted, if it is not+-- currently active.+transactionDescription_transactionEndTime :: Lens.Lens' TransactionDescription (Prelude.Maybe Prelude.UTCTime)+transactionDescription_transactionEndTime = Lens.lens (\TransactionDescription' {transactionEndTime} -> transactionEndTime) (\s@TransactionDescription' {} a -> s {transactionEndTime = a} :: TransactionDescription) Prelude.. Lens.mapping Data._Time++-- | The ID of the transaction.+transactionDescription_transactionId :: Lens.Lens' TransactionDescription (Prelude.Maybe Prelude.Text)+transactionDescription_transactionId = Lens.lens (\TransactionDescription' {transactionId} -> transactionId) (\s@TransactionDescription' {} a -> s {transactionId = a} :: TransactionDescription)++-- | The time when the transaction started.+transactionDescription_transactionStartTime :: Lens.Lens' TransactionDescription (Prelude.Maybe Prelude.UTCTime)+transactionDescription_transactionStartTime = Lens.lens (\TransactionDescription' {transactionStartTime} -> transactionStartTime) (\s@TransactionDescription' {} a -> s {transactionStartTime = a} :: TransactionDescription) Prelude.. Lens.mapping Data._Time++-- | A status of ACTIVE, COMMITTED, or ABORTED.+transactionDescription_transactionStatus :: Lens.Lens' TransactionDescription (Prelude.Maybe TransactionStatus)+transactionDescription_transactionStatus = Lens.lens (\TransactionDescription' {transactionStatus} -> transactionStatus) (\s@TransactionDescription' {} a -> s {transactionStatus = a} :: TransactionDescription)++instance Data.FromJSON TransactionDescription where+ parseJSON =+ Data.withObject+ "TransactionDescription"+ ( \x ->+ TransactionDescription'+ Prelude.<$> (x Data..:? "TransactionEndTime")+ Prelude.<*> (x Data..:? "TransactionId")+ Prelude.<*> (x Data..:? "TransactionStartTime")+ Prelude.<*> (x Data..:? "TransactionStatus")+ )++instance Prelude.Hashable TransactionDescription where+ hashWithSalt _salt TransactionDescription' {..} =+ _salt+ `Prelude.hashWithSalt` transactionEndTime+ `Prelude.hashWithSalt` transactionId+ `Prelude.hashWithSalt` transactionStartTime+ `Prelude.hashWithSalt` transactionStatus++instance Prelude.NFData TransactionDescription where+ rnf TransactionDescription' {..} =+ Prelude.rnf transactionEndTime+ `Prelude.seq` Prelude.rnf transactionId+ `Prelude.seq` Prelude.rnf transactionStartTime+ `Prelude.seq` Prelude.rnf transactionStatus
+ gen/Amazonka/LakeFormation/Types/TransactionStatus.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.TransactionStatus+-- Copyright : (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.LakeFormation.Types.TransactionStatus+ ( TransactionStatus+ ( ..,+ TransactionStatus_ABORTED,+ TransactionStatus_ACTIVE,+ TransactionStatus_COMMITTED,+ TransactionStatus_COMMIT_IN_PROGRESS+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TransactionStatus = TransactionStatus'+ { fromTransactionStatus ::+ 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 TransactionStatus_ABORTED :: TransactionStatus+pattern TransactionStatus_ABORTED = TransactionStatus' "ABORTED"++pattern TransactionStatus_ACTIVE :: TransactionStatus+pattern TransactionStatus_ACTIVE = TransactionStatus' "ACTIVE"++pattern TransactionStatus_COMMITTED :: TransactionStatus+pattern TransactionStatus_COMMITTED = TransactionStatus' "COMMITTED"++pattern TransactionStatus_COMMIT_IN_PROGRESS :: TransactionStatus+pattern TransactionStatus_COMMIT_IN_PROGRESS = TransactionStatus' "COMMIT_IN_PROGRESS"++{-# COMPLETE+ TransactionStatus_ABORTED,+ TransactionStatus_ACTIVE,+ TransactionStatus_COMMITTED,+ TransactionStatus_COMMIT_IN_PROGRESS,+ TransactionStatus'+ #-}
+ gen/Amazonka/LakeFormation/Types/TransactionStatusFilter.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.TransactionStatusFilter+-- Copyright : (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.LakeFormation.Types.TransactionStatusFilter+ ( TransactionStatusFilter+ ( ..,+ TransactionStatusFilter_ABORTED,+ TransactionStatusFilter_ACTIVE,+ TransactionStatusFilter_ALL,+ TransactionStatusFilter_COMMITTED,+ TransactionStatusFilter_COMPLETED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TransactionStatusFilter = TransactionStatusFilter'+ { fromTransactionStatusFilter ::+ 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 TransactionStatusFilter_ABORTED :: TransactionStatusFilter+pattern TransactionStatusFilter_ABORTED = TransactionStatusFilter' "ABORTED"++pattern TransactionStatusFilter_ACTIVE :: TransactionStatusFilter+pattern TransactionStatusFilter_ACTIVE = TransactionStatusFilter' "ACTIVE"++pattern TransactionStatusFilter_ALL :: TransactionStatusFilter+pattern TransactionStatusFilter_ALL = TransactionStatusFilter' "ALL"++pattern TransactionStatusFilter_COMMITTED :: TransactionStatusFilter+pattern TransactionStatusFilter_COMMITTED = TransactionStatusFilter' "COMMITTED"++pattern TransactionStatusFilter_COMPLETED :: TransactionStatusFilter+pattern TransactionStatusFilter_COMPLETED = TransactionStatusFilter' "COMPLETED"++{-# COMPLETE+ TransactionStatusFilter_ABORTED,+ TransactionStatusFilter_ACTIVE,+ TransactionStatusFilter_ALL,+ TransactionStatusFilter_COMMITTED,+ TransactionStatusFilter_COMPLETED,+ TransactionStatusFilter'+ #-}
+ gen/Amazonka/LakeFormation/Types/TransactionType.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.LakeFormation.Types.TransactionType+-- Copyright : (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.LakeFormation.Types.TransactionType+ ( TransactionType+ ( ..,+ TransactionType_READ_AND_WRITE,+ TransactionType_READ_ONLY+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TransactionType = TransactionType'+ { fromTransactionType ::+ 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 TransactionType_READ_AND_WRITE :: TransactionType+pattern TransactionType_READ_AND_WRITE = TransactionType' "READ_AND_WRITE"++pattern TransactionType_READ_ONLY :: TransactionType+pattern TransactionType_READ_ONLY = TransactionType' "READ_ONLY"++{-# COMPLETE+ TransactionType_READ_AND_WRITE,+ TransactionType_READ_ONLY,+ TransactionType'+ #-}
+ gen/Amazonka/LakeFormation/Types/VirtualObject.hs view
@@ -0,0 +1,83 @@+{-# 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.LakeFormation.Types.VirtualObject+-- Copyright : (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.LakeFormation.Types.VirtualObject where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An object that defines an Amazon S3 object to be deleted if a+-- transaction cancels, provided that @VirtualPut@ was called before+-- writing the object.+--+-- /See:/ 'newVirtualObject' smart constructor.+data VirtualObject = VirtualObject'+ { -- | The ETag of the Amazon S3 object.+ eTag :: Prelude.Maybe Prelude.Text,+ -- | The path to the Amazon S3 object. Must start with s3:\/\/+ uri :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualObject' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eTag', 'virtualObject_eTag' - The ETag of the Amazon S3 object.+--+-- 'uri', 'virtualObject_uri' - The path to the Amazon S3 object. Must start with s3:\/\/+newVirtualObject ::+ -- | 'uri'+ Prelude.Text ->+ VirtualObject+newVirtualObject pUri_ =+ VirtualObject' {eTag = Prelude.Nothing, uri = pUri_}++-- | The ETag of the Amazon S3 object.+virtualObject_eTag :: Lens.Lens' VirtualObject (Prelude.Maybe Prelude.Text)+virtualObject_eTag = Lens.lens (\VirtualObject' {eTag} -> eTag) (\s@VirtualObject' {} a -> s {eTag = a} :: VirtualObject)++-- | The path to the Amazon S3 object. Must start with s3:\/\/+virtualObject_uri :: Lens.Lens' VirtualObject Prelude.Text+virtualObject_uri = Lens.lens (\VirtualObject' {uri} -> uri) (\s@VirtualObject' {} a -> s {uri = a} :: VirtualObject)++instance Prelude.Hashable VirtualObject where+ hashWithSalt _salt VirtualObject' {..} =+ _salt+ `Prelude.hashWithSalt` eTag+ `Prelude.hashWithSalt` uri++instance Prelude.NFData VirtualObject where+ rnf VirtualObject' {..} =+ Prelude.rnf eTag `Prelude.seq` Prelude.rnf uri++instance Data.ToJSON VirtualObject where+ toJSON VirtualObject' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ETag" Data..=) Prelude.<$> eTag,+ Prelude.Just ("Uri" Data..= uri)+ ]+ )
+ gen/Amazonka/LakeFormation/Types/WorkUnitRange.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.LakeFormation.Types.WorkUnitRange+-- Copyright : (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.LakeFormation.Types.WorkUnitRange 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++-- | Defines the valid range of work unit IDs for querying the execution+-- service.+--+-- /See:/ 'newWorkUnitRange' smart constructor.+data WorkUnitRange = WorkUnitRange'+ { -- | Defines the maximum work unit ID in the range. The maximum value is+ -- inclusive.+ workUnitIdMax :: Prelude.Integer,+ -- | Defines the minimum work unit ID in the range.+ workUnitIdMin :: Prelude.Integer,+ -- | A work token used to query the execution service.+ workUnitToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WorkUnitRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'workUnitIdMax', 'workUnitRange_workUnitIdMax' - Defines the maximum work unit ID in the range. The maximum value is+-- inclusive.+--+-- 'workUnitIdMin', 'workUnitRange_workUnitIdMin' - Defines the minimum work unit ID in the range.+--+-- 'workUnitToken', 'workUnitRange_workUnitToken' - A work token used to query the execution service.+newWorkUnitRange ::+ -- | 'workUnitIdMax'+ Prelude.Integer ->+ -- | 'workUnitIdMin'+ Prelude.Integer ->+ -- | 'workUnitToken'+ Prelude.Text ->+ WorkUnitRange+newWorkUnitRange+ pWorkUnitIdMax_+ pWorkUnitIdMin_+ pWorkUnitToken_ =+ WorkUnitRange'+ { workUnitIdMax = pWorkUnitIdMax_,+ workUnitIdMin = pWorkUnitIdMin_,+ workUnitToken = pWorkUnitToken_+ }++-- | Defines the maximum work unit ID in the range. The maximum value is+-- inclusive.+workUnitRange_workUnitIdMax :: Lens.Lens' WorkUnitRange Prelude.Integer+workUnitRange_workUnitIdMax = Lens.lens (\WorkUnitRange' {workUnitIdMax} -> workUnitIdMax) (\s@WorkUnitRange' {} a -> s {workUnitIdMax = a} :: WorkUnitRange)++-- | Defines the minimum work unit ID in the range.+workUnitRange_workUnitIdMin :: Lens.Lens' WorkUnitRange Prelude.Integer+workUnitRange_workUnitIdMin = Lens.lens (\WorkUnitRange' {workUnitIdMin} -> workUnitIdMin) (\s@WorkUnitRange' {} a -> s {workUnitIdMin = a} :: WorkUnitRange)++-- | A work token used to query the execution service.+workUnitRange_workUnitToken :: Lens.Lens' WorkUnitRange Prelude.Text+workUnitRange_workUnitToken = Lens.lens (\WorkUnitRange' {workUnitToken} -> workUnitToken) (\s@WorkUnitRange' {} a -> s {workUnitToken = a} :: WorkUnitRange)++instance Data.FromJSON WorkUnitRange where+ parseJSON =+ Data.withObject+ "WorkUnitRange"+ ( \x ->+ WorkUnitRange'+ Prelude.<$> (x Data..: "WorkUnitIdMax")+ Prelude.<*> (x Data..: "WorkUnitIdMin")+ Prelude.<*> (x Data..: "WorkUnitToken")+ )++instance Prelude.Hashable WorkUnitRange where+ hashWithSalt _salt WorkUnitRange' {..} =+ _salt+ `Prelude.hashWithSalt` workUnitIdMax+ `Prelude.hashWithSalt` workUnitIdMin+ `Prelude.hashWithSalt` workUnitToken++instance Prelude.NFData WorkUnitRange where+ rnf WorkUnitRange' {..} =+ Prelude.rnf workUnitIdMax+ `Prelude.seq` Prelude.rnf workUnitIdMin+ `Prelude.seq` Prelude.rnf workUnitToken
+ gen/Amazonka/LakeFormation/Types/WriteOperation.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.Types.WriteOperation+-- Copyright : (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.LakeFormation.Types.WriteOperation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types.AddObjectInput+import Amazonka.LakeFormation.Types.DeleteObjectInput+import qualified Amazonka.Prelude as Prelude++-- | Defines an object to add to or delete from a governed table.+--+-- /See:/ 'newWriteOperation' smart constructor.+data WriteOperation = WriteOperation'+ { -- | A new object to add to the governed table.+ addObject :: Prelude.Maybe AddObjectInput,+ -- | An object to delete from the governed table.+ deleteObject :: Prelude.Maybe DeleteObjectInput+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WriteOperation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addObject', 'writeOperation_addObject' - A new object to add to the governed table.+--+-- 'deleteObject', 'writeOperation_deleteObject' - An object to delete from the governed table.+newWriteOperation ::+ WriteOperation+newWriteOperation =+ WriteOperation'+ { addObject = Prelude.Nothing,+ deleteObject = Prelude.Nothing+ }++-- | A new object to add to the governed table.+writeOperation_addObject :: Lens.Lens' WriteOperation (Prelude.Maybe AddObjectInput)+writeOperation_addObject = Lens.lens (\WriteOperation' {addObject} -> addObject) (\s@WriteOperation' {} a -> s {addObject = a} :: WriteOperation)++-- | An object to delete from the governed table.+writeOperation_deleteObject :: Lens.Lens' WriteOperation (Prelude.Maybe DeleteObjectInput)+writeOperation_deleteObject = Lens.lens (\WriteOperation' {deleteObject} -> deleteObject) (\s@WriteOperation' {} a -> s {deleteObject = a} :: WriteOperation)++instance Prelude.Hashable WriteOperation where+ hashWithSalt _salt WriteOperation' {..} =+ _salt+ `Prelude.hashWithSalt` addObject+ `Prelude.hashWithSalt` deleteObject++instance Prelude.NFData WriteOperation where+ rnf WriteOperation' {..} =+ Prelude.rnf addObject+ `Prelude.seq` Prelude.rnf deleteObject++instance Data.ToJSON WriteOperation where+ toJSON WriteOperation' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AddObject" Data..=) Prelude.<$> addObject,+ ("DeleteObject" Data..=) Prelude.<$> deleteObject+ ]+ )
+ gen/Amazonka/LakeFormation/UpdateLFTag.hs view
@@ -0,0 +1,206 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.UpdateLFTag+-- 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 the list of possible values for the specified LF-tag key. If the+-- LF-tag does not exist, the operation throws an EntityNotFoundException.+-- The values in the delete key values will be deleted from list of+-- possible values. If any value in the delete key values is attached to a+-- resource, then API errors out with a 400 Exception - \"Update not+-- allowed\". Untag the attribute before deleting the LF-tag key\'s value.+module Amazonka.LakeFormation.UpdateLFTag+ ( -- * Creating a Request+ UpdateLFTag (..),+ newUpdateLFTag,++ -- * Request Lenses+ updateLFTag_catalogId,+ updateLFTag_tagValuesToAdd,+ updateLFTag_tagValuesToDelete,+ updateLFTag_tagKey,++ -- * Destructuring the Response+ UpdateLFTagResponse (..),+ newUpdateLFTagResponse,++ -- * Response Lenses+ updateLFTagResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateLFTag' smart constructor.+data UpdateLFTag = UpdateLFTag'+ { -- | The identifier for the Data Catalog. By default, the account ID. The+ -- Data Catalog is the persistent metadata store. It contains database+ -- definitions, table definitions, and other control information to manage+ -- your Lake Formation environment.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | A list of LF-tag values to add from the LF-tag.+ tagValuesToAdd :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | A list of LF-tag values to delete from the LF-tag.+ tagValuesToDelete :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | The key-name for the LF-tag for which to add or delete values.+ tagKey :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLFTag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'updateLFTag_catalogId' - The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+--+-- 'tagValuesToAdd', 'updateLFTag_tagValuesToAdd' - A list of LF-tag values to add from the LF-tag.+--+-- 'tagValuesToDelete', 'updateLFTag_tagValuesToDelete' - A list of LF-tag values to delete from the LF-tag.+--+-- 'tagKey', 'updateLFTag_tagKey' - The key-name for the LF-tag for which to add or delete values.+newUpdateLFTag ::+ -- | 'tagKey'+ Prelude.Text ->+ UpdateLFTag+newUpdateLFTag pTagKey_ =+ UpdateLFTag'+ { catalogId = Prelude.Nothing,+ tagValuesToAdd = Prelude.Nothing,+ tagValuesToDelete = Prelude.Nothing,+ tagKey = pTagKey_+ }++-- | The identifier for the Data Catalog. By default, the account ID. The+-- Data Catalog is the persistent metadata store. It contains database+-- definitions, table definitions, and other control information to manage+-- your Lake Formation environment.+updateLFTag_catalogId :: Lens.Lens' UpdateLFTag (Prelude.Maybe Prelude.Text)+updateLFTag_catalogId = Lens.lens (\UpdateLFTag' {catalogId} -> catalogId) (\s@UpdateLFTag' {} a -> s {catalogId = a} :: UpdateLFTag)++-- | A list of LF-tag values to add from the LF-tag.+updateLFTag_tagValuesToAdd :: Lens.Lens' UpdateLFTag (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateLFTag_tagValuesToAdd = Lens.lens (\UpdateLFTag' {tagValuesToAdd} -> tagValuesToAdd) (\s@UpdateLFTag' {} a -> s {tagValuesToAdd = a} :: UpdateLFTag) Prelude.. Lens.mapping Lens.coerced++-- | A list of LF-tag values to delete from the LF-tag.+updateLFTag_tagValuesToDelete :: Lens.Lens' UpdateLFTag (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateLFTag_tagValuesToDelete = Lens.lens (\UpdateLFTag' {tagValuesToDelete} -> tagValuesToDelete) (\s@UpdateLFTag' {} a -> s {tagValuesToDelete = a} :: UpdateLFTag) Prelude.. Lens.mapping Lens.coerced++-- | The key-name for the LF-tag for which to add or delete values.+updateLFTag_tagKey :: Lens.Lens' UpdateLFTag Prelude.Text+updateLFTag_tagKey = Lens.lens (\UpdateLFTag' {tagKey} -> tagKey) (\s@UpdateLFTag' {} a -> s {tagKey = a} :: UpdateLFTag)++instance Core.AWSRequest UpdateLFTag where+ type AWSResponse UpdateLFTag = UpdateLFTagResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UpdateLFTagResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateLFTag where+ hashWithSalt _salt UpdateLFTag' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` tagValuesToAdd+ `Prelude.hashWithSalt` tagValuesToDelete+ `Prelude.hashWithSalt` tagKey++instance Prelude.NFData UpdateLFTag where+ rnf UpdateLFTag' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf tagValuesToAdd+ `Prelude.seq` Prelude.rnf tagValuesToDelete+ `Prelude.seq` Prelude.rnf tagKey++instance Data.ToHeaders UpdateLFTag where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateLFTag where+ toJSON UpdateLFTag' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("TagValuesToAdd" Data..=)+ Prelude.<$> tagValuesToAdd,+ ("TagValuesToDelete" Data..=)+ Prelude.<$> tagValuesToDelete,+ Prelude.Just ("TagKey" Data..= tagKey)+ ]+ )++instance Data.ToPath UpdateLFTag where+ toPath = Prelude.const "/UpdateLFTag"++instance Data.ToQuery UpdateLFTag where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateLFTagResponse' smart constructor.+data UpdateLFTagResponse = UpdateLFTagResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLFTagResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'updateLFTagResponse_httpStatus' - The response's http status code.+newUpdateLFTagResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateLFTagResponse+newUpdateLFTagResponse pHttpStatus_ =+ UpdateLFTagResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+updateLFTagResponse_httpStatus :: Lens.Lens' UpdateLFTagResponse Prelude.Int+updateLFTagResponse_httpStatus = Lens.lens (\UpdateLFTagResponse' {httpStatus} -> httpStatus) (\s@UpdateLFTagResponse' {} a -> s {httpStatus = a} :: UpdateLFTagResponse)++instance Prelude.NFData UpdateLFTagResponse where+ rnf UpdateLFTagResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/UpdateResource.hs view
@@ -0,0 +1,170 @@+{-# 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.LakeFormation.UpdateResource+-- 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 the data access role used for vending access to the given+-- (registered) resource in Lake Formation.+module Amazonka.LakeFormation.UpdateResource+ ( -- * Creating a Request+ UpdateResource (..),+ newUpdateResource,++ -- * Request Lenses+ updateResource_roleArn,+ updateResource_resourceArn,++ -- * Destructuring the Response+ UpdateResourceResponse (..),+ newUpdateResourceResponse,++ -- * Response Lenses+ updateResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateResource' smart constructor.+data UpdateResource = UpdateResource'+ { -- | The new role to use for the given resource registered in Lake Formation.+ roleArn :: Prelude.Text,+ -- | The resource ARN.+ resourceArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'roleArn', 'updateResource_roleArn' - The new role to use for the given resource registered in Lake Formation.+--+-- 'resourceArn', 'updateResource_resourceArn' - The resource ARN.+newUpdateResource ::+ -- | 'roleArn'+ Prelude.Text ->+ -- | 'resourceArn'+ Prelude.Text ->+ UpdateResource+newUpdateResource pRoleArn_ pResourceArn_ =+ UpdateResource'+ { roleArn = pRoleArn_,+ resourceArn = pResourceArn_+ }++-- | The new role to use for the given resource registered in Lake Formation.+updateResource_roleArn :: Lens.Lens' UpdateResource Prelude.Text+updateResource_roleArn = Lens.lens (\UpdateResource' {roleArn} -> roleArn) (\s@UpdateResource' {} a -> s {roleArn = a} :: UpdateResource)++-- | The resource ARN.+updateResource_resourceArn :: Lens.Lens' UpdateResource Prelude.Text+updateResource_resourceArn = Lens.lens (\UpdateResource' {resourceArn} -> resourceArn) (\s@UpdateResource' {} a -> s {resourceArn = a} :: UpdateResource)++instance Core.AWSRequest UpdateResource where+ type+ AWSResponse UpdateResource =+ UpdateResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UpdateResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateResource where+ hashWithSalt _salt UpdateResource' {..} =+ _salt+ `Prelude.hashWithSalt` roleArn+ `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData UpdateResource where+ rnf UpdateResource' {..} =+ Prelude.rnf roleArn+ `Prelude.seq` Prelude.rnf resourceArn++instance Data.ToHeaders UpdateResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateResource where+ toJSON UpdateResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("RoleArn" Data..= roleArn),+ Prelude.Just ("ResourceArn" Data..= resourceArn)+ ]+ )++instance Data.ToPath UpdateResource where+ toPath = Prelude.const "/UpdateResource"++instance Data.ToQuery UpdateResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateResourceResponse' smart constructor.+data UpdateResourceResponse = UpdateResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'updateResourceResponse_httpStatus' - The response's http status code.+newUpdateResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateResourceResponse+newUpdateResourceResponse pHttpStatus_ =+ UpdateResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+updateResourceResponse_httpStatus :: Lens.Lens' UpdateResourceResponse Prelude.Int+updateResourceResponse_httpStatus = Lens.lens (\UpdateResourceResponse' {httpStatus} -> httpStatus) (\s@UpdateResourceResponse' {} a -> s {httpStatus = a} :: UpdateResourceResponse)++instance Prelude.NFData UpdateResourceResponse where+ rnf UpdateResourceResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/UpdateTableObjects.hs view
@@ -0,0 +1,225 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.LakeFormation.UpdateTableObjects+-- 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 the manifest of Amazon S3 objects that make up the specified+-- governed table.+module Amazonka.LakeFormation.UpdateTableObjects+ ( -- * Creating a Request+ UpdateTableObjects (..),+ newUpdateTableObjects,++ -- * Request Lenses+ updateTableObjects_catalogId,+ updateTableObjects_transactionId,+ updateTableObjects_databaseName,+ updateTableObjects_tableName,+ updateTableObjects_writeOperations,++ -- * Destructuring the Response+ UpdateTableObjectsResponse (..),+ newUpdateTableObjectsResponse,++ -- * Response Lenses+ updateTableObjectsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateTableObjects' smart constructor.+data UpdateTableObjects = UpdateTableObjects'+ { -- | The catalog containing the governed table to update. Defaults to the+ -- caller’s account ID.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | The transaction at which to do the write.+ transactionId :: Prelude.Maybe Prelude.Text,+ -- | The database containing the governed table to update.+ databaseName :: Prelude.Text,+ -- | The governed table to update.+ tableName :: Prelude.Text,+ -- | A list of @WriteOperation@ objects that define an object to add to or+ -- delete from the manifest for a governed table.+ writeOperations :: Prelude.NonEmpty WriteOperation+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateTableObjects' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'updateTableObjects_catalogId' - The catalog containing the governed table to update. Defaults to the+-- caller’s account ID.+--+-- 'transactionId', 'updateTableObjects_transactionId' - The transaction at which to do the write.+--+-- 'databaseName', 'updateTableObjects_databaseName' - The database containing the governed table to update.+--+-- 'tableName', 'updateTableObjects_tableName' - The governed table to update.+--+-- 'writeOperations', 'updateTableObjects_writeOperations' - A list of @WriteOperation@ objects that define an object to add to or+-- delete from the manifest for a governed table.+newUpdateTableObjects ::+ -- | 'databaseName'+ Prelude.Text ->+ -- | 'tableName'+ Prelude.Text ->+ -- | 'writeOperations'+ Prelude.NonEmpty WriteOperation ->+ UpdateTableObjects+newUpdateTableObjects+ pDatabaseName_+ pTableName_+ pWriteOperations_ =+ UpdateTableObjects'+ { catalogId = Prelude.Nothing,+ transactionId = Prelude.Nothing,+ databaseName = pDatabaseName_,+ tableName = pTableName_,+ writeOperations =+ Lens.coerced Lens.# pWriteOperations_+ }++-- | The catalog containing the governed table to update. Defaults to the+-- caller’s account ID.+updateTableObjects_catalogId :: Lens.Lens' UpdateTableObjects (Prelude.Maybe Prelude.Text)+updateTableObjects_catalogId = Lens.lens (\UpdateTableObjects' {catalogId} -> catalogId) (\s@UpdateTableObjects' {} a -> s {catalogId = a} :: UpdateTableObjects)++-- | The transaction at which to do the write.+updateTableObjects_transactionId :: Lens.Lens' UpdateTableObjects (Prelude.Maybe Prelude.Text)+updateTableObjects_transactionId = Lens.lens (\UpdateTableObjects' {transactionId} -> transactionId) (\s@UpdateTableObjects' {} a -> s {transactionId = a} :: UpdateTableObjects)++-- | The database containing the governed table to update.+updateTableObjects_databaseName :: Lens.Lens' UpdateTableObjects Prelude.Text+updateTableObjects_databaseName = Lens.lens (\UpdateTableObjects' {databaseName} -> databaseName) (\s@UpdateTableObjects' {} a -> s {databaseName = a} :: UpdateTableObjects)++-- | The governed table to update.+updateTableObjects_tableName :: Lens.Lens' UpdateTableObjects Prelude.Text+updateTableObjects_tableName = Lens.lens (\UpdateTableObjects' {tableName} -> tableName) (\s@UpdateTableObjects' {} a -> s {tableName = a} :: UpdateTableObjects)++-- | A list of @WriteOperation@ objects that define an object to add to or+-- delete from the manifest for a governed table.+updateTableObjects_writeOperations :: Lens.Lens' UpdateTableObjects (Prelude.NonEmpty WriteOperation)+updateTableObjects_writeOperations = Lens.lens (\UpdateTableObjects' {writeOperations} -> writeOperations) (\s@UpdateTableObjects' {} a -> s {writeOperations = a} :: UpdateTableObjects) Prelude.. Lens.coerced++instance Core.AWSRequest UpdateTableObjects where+ type+ AWSResponse UpdateTableObjects =+ UpdateTableObjectsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UpdateTableObjectsResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateTableObjects where+ hashWithSalt _salt UpdateTableObjects' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` transactionId+ `Prelude.hashWithSalt` databaseName+ `Prelude.hashWithSalt` tableName+ `Prelude.hashWithSalt` writeOperations++instance Prelude.NFData UpdateTableObjects where+ rnf UpdateTableObjects' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf transactionId+ `Prelude.seq` Prelude.rnf databaseName+ `Prelude.seq` Prelude.rnf tableName+ `Prelude.seq` Prelude.rnf writeOperations++instance Data.ToHeaders UpdateTableObjects where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateTableObjects where+ toJSON UpdateTableObjects' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ ("TransactionId" Data..=) Prelude.<$> transactionId,+ Prelude.Just ("DatabaseName" Data..= databaseName),+ Prelude.Just ("TableName" Data..= tableName),+ Prelude.Just+ ("WriteOperations" Data..= writeOperations)+ ]+ )++instance Data.ToPath UpdateTableObjects where+ toPath = Prelude.const "/UpdateTableObjects"++instance Data.ToQuery UpdateTableObjects where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateTableObjectsResponse' smart constructor.+data UpdateTableObjectsResponse = UpdateTableObjectsResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateTableObjectsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'updateTableObjectsResponse_httpStatus' - The response's http status code.+newUpdateTableObjectsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateTableObjectsResponse+newUpdateTableObjectsResponse pHttpStatus_ =+ UpdateTableObjectsResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+updateTableObjectsResponse_httpStatus :: Lens.Lens' UpdateTableObjectsResponse Prelude.Int+updateTableObjectsResponse_httpStatus = Lens.lens (\UpdateTableObjectsResponse' {httpStatus} -> httpStatus) (\s@UpdateTableObjectsResponse' {} a -> s {httpStatus = a} :: UpdateTableObjectsResponse)++instance Prelude.NFData UpdateTableObjectsResponse where+ rnf UpdateTableObjectsResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/UpdateTableStorageOptimizer.hs view
@@ -0,0 +1,219 @@+{-# 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.LakeFormation.UpdateTableStorageOptimizer+-- 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 the configuration of the storage optimizers for a table.+module Amazonka.LakeFormation.UpdateTableStorageOptimizer+ ( -- * Creating a Request+ UpdateTableStorageOptimizer (..),+ newUpdateTableStorageOptimizer,++ -- * Request Lenses+ updateTableStorageOptimizer_catalogId,+ updateTableStorageOptimizer_databaseName,+ updateTableStorageOptimizer_tableName,+ updateTableStorageOptimizer_storageOptimizerConfig,++ -- * Destructuring the Response+ UpdateTableStorageOptimizerResponse (..),+ newUpdateTableStorageOptimizerResponse,++ -- * Response Lenses+ updateTableStorageOptimizerResponse_result,+ updateTableStorageOptimizerResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateTableStorageOptimizer' smart constructor.+data UpdateTableStorageOptimizer = UpdateTableStorageOptimizer'+ { -- | The Catalog ID of the table.+ catalogId :: Prelude.Maybe Prelude.Text,+ -- | Name of the database where the table is present.+ databaseName :: Prelude.Text,+ -- | Name of the table for which to enable the storage optimizer.+ tableName :: Prelude.Text,+ -- | Name of the table for which to enable the storage optimizer.+ storageOptimizerConfig :: Prelude.HashMap OptimizerType (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateTableStorageOptimizer' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'updateTableStorageOptimizer_catalogId' - The Catalog ID of the table.+--+-- 'databaseName', 'updateTableStorageOptimizer_databaseName' - Name of the database where the table is present.+--+-- 'tableName', 'updateTableStorageOptimizer_tableName' - Name of the table for which to enable the storage optimizer.+--+-- 'storageOptimizerConfig', 'updateTableStorageOptimizer_storageOptimizerConfig' - Name of the table for which to enable the storage optimizer.+newUpdateTableStorageOptimizer ::+ -- | 'databaseName'+ Prelude.Text ->+ -- | 'tableName'+ Prelude.Text ->+ UpdateTableStorageOptimizer+newUpdateTableStorageOptimizer+ pDatabaseName_+ pTableName_ =+ UpdateTableStorageOptimizer'+ { catalogId =+ Prelude.Nothing,+ databaseName = pDatabaseName_,+ tableName = pTableName_,+ storageOptimizerConfig = Prelude.mempty+ }++-- | The Catalog ID of the table.+updateTableStorageOptimizer_catalogId :: Lens.Lens' UpdateTableStorageOptimizer (Prelude.Maybe Prelude.Text)+updateTableStorageOptimizer_catalogId = Lens.lens (\UpdateTableStorageOptimizer' {catalogId} -> catalogId) (\s@UpdateTableStorageOptimizer' {} a -> s {catalogId = a} :: UpdateTableStorageOptimizer)++-- | Name of the database where the table is present.+updateTableStorageOptimizer_databaseName :: Lens.Lens' UpdateTableStorageOptimizer Prelude.Text+updateTableStorageOptimizer_databaseName = Lens.lens (\UpdateTableStorageOptimizer' {databaseName} -> databaseName) (\s@UpdateTableStorageOptimizer' {} a -> s {databaseName = a} :: UpdateTableStorageOptimizer)++-- | Name of the table for which to enable the storage optimizer.+updateTableStorageOptimizer_tableName :: Lens.Lens' UpdateTableStorageOptimizer Prelude.Text+updateTableStorageOptimizer_tableName = Lens.lens (\UpdateTableStorageOptimizer' {tableName} -> tableName) (\s@UpdateTableStorageOptimizer' {} a -> s {tableName = a} :: UpdateTableStorageOptimizer)++-- | Name of the table for which to enable the storage optimizer.+updateTableStorageOptimizer_storageOptimizerConfig :: Lens.Lens' UpdateTableStorageOptimizer (Prelude.HashMap OptimizerType (Prelude.HashMap Prelude.Text Prelude.Text))+updateTableStorageOptimizer_storageOptimizerConfig = Lens.lens (\UpdateTableStorageOptimizer' {storageOptimizerConfig} -> storageOptimizerConfig) (\s@UpdateTableStorageOptimizer' {} a -> s {storageOptimizerConfig = a} :: UpdateTableStorageOptimizer) Prelude.. Lens.coerced++instance Core.AWSRequest UpdateTableStorageOptimizer where+ type+ AWSResponse UpdateTableStorageOptimizer =+ UpdateTableStorageOptimizerResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateTableStorageOptimizerResponse'+ Prelude.<$> (x Data..?> "Result")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateTableStorageOptimizer where+ hashWithSalt _salt UpdateTableStorageOptimizer' {..} =+ _salt+ `Prelude.hashWithSalt` catalogId+ `Prelude.hashWithSalt` databaseName+ `Prelude.hashWithSalt` tableName+ `Prelude.hashWithSalt` storageOptimizerConfig++instance Prelude.NFData UpdateTableStorageOptimizer where+ rnf UpdateTableStorageOptimizer' {..} =+ Prelude.rnf catalogId+ `Prelude.seq` Prelude.rnf databaseName+ `Prelude.seq` Prelude.rnf tableName+ `Prelude.seq` Prelude.rnf storageOptimizerConfig++instance Data.ToHeaders UpdateTableStorageOptimizer where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateTableStorageOptimizer where+ toJSON UpdateTableStorageOptimizer' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CatalogId" Data..=) Prelude.<$> catalogId,+ Prelude.Just ("DatabaseName" Data..= databaseName),+ Prelude.Just ("TableName" Data..= tableName),+ Prelude.Just+ ( "StorageOptimizerConfig"+ Data..= storageOptimizerConfig+ )+ ]+ )++instance Data.ToPath UpdateTableStorageOptimizer where+ toPath = Prelude.const "/UpdateTableStorageOptimizer"++instance Data.ToQuery UpdateTableStorageOptimizer where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateTableStorageOptimizerResponse' smart constructor.+data UpdateTableStorageOptimizerResponse = UpdateTableStorageOptimizerResponse'+ { -- | A response indicating the success of failure of the operation.+ result :: 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 'UpdateTableStorageOptimizerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'result', 'updateTableStorageOptimizerResponse_result' - A response indicating the success of failure of the operation.+--+-- 'httpStatus', 'updateTableStorageOptimizerResponse_httpStatus' - The response's http status code.+newUpdateTableStorageOptimizerResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateTableStorageOptimizerResponse+newUpdateTableStorageOptimizerResponse pHttpStatus_ =+ UpdateTableStorageOptimizerResponse'+ { result =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A response indicating the success of failure of the operation.+updateTableStorageOptimizerResponse_result :: Lens.Lens' UpdateTableStorageOptimizerResponse (Prelude.Maybe Prelude.Text)+updateTableStorageOptimizerResponse_result = Lens.lens (\UpdateTableStorageOptimizerResponse' {result} -> result) (\s@UpdateTableStorageOptimizerResponse' {} a -> s {result = a} :: UpdateTableStorageOptimizerResponse)++-- | The response's http status code.+updateTableStorageOptimizerResponse_httpStatus :: Lens.Lens' UpdateTableStorageOptimizerResponse Prelude.Int+updateTableStorageOptimizerResponse_httpStatus = Lens.lens (\UpdateTableStorageOptimizerResponse' {httpStatus} -> httpStatus) (\s@UpdateTableStorageOptimizerResponse' {} a -> s {httpStatus = a} :: UpdateTableStorageOptimizerResponse)++instance+ Prelude.NFData+ UpdateTableStorageOptimizerResponse+ where+ rnf UpdateTableStorageOptimizerResponse' {..} =+ Prelude.rnf result+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LakeFormation/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.LakeFormation.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.LakeFormation.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LakeFormation.Lens+import Amazonka.LakeFormation.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.LakeFormation+import Test.Amazonka.LakeFormation.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "LakeFormation"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/Gen/LakeFormation.hs view
@@ -0,0 +1,930 @@+{-# 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.LakeFormation+-- Copyright : (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.LakeFormation where++import Amazonka.LakeFormation+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.LakeFormation.Internal+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+-- [ testGroup "request"+-- [ requestAddLFTagsToResource $+-- newAddLFTagsToResource+--+-- , requestAssumeDecoratedRoleWithSAML $+-- newAssumeDecoratedRoleWithSAML+--+-- , requestBatchGrantPermissions $+-- newBatchGrantPermissions+--+-- , requestBatchRevokePermissions $+-- newBatchRevokePermissions+--+-- , requestCancelTransaction $+-- newCancelTransaction+--+-- , requestCommitTransaction $+-- newCommitTransaction+--+-- , requestCreateDataCellsFilter $+-- newCreateDataCellsFilter+--+-- , requestCreateLFTag $+-- newCreateLFTag+--+-- , requestDeleteDataCellsFilter $+-- newDeleteDataCellsFilter+--+-- , requestDeleteLFTag $+-- newDeleteLFTag+--+-- , requestDeleteObjectsOnCancel $+-- newDeleteObjectsOnCancel+--+-- , requestDeregisterResource $+-- newDeregisterResource+--+-- , requestDescribeResource $+-- newDescribeResource+--+-- , requestDescribeTransaction $+-- newDescribeTransaction+--+-- , requestExtendTransaction $+-- newExtendTransaction+--+-- , requestGetDataLakeSettings $+-- newGetDataLakeSettings+--+-- , requestGetEffectivePermissionsForPath $+-- newGetEffectivePermissionsForPath+--+-- , requestGetLFTag $+-- newGetLFTag+--+-- , requestGetQueryState $+-- newGetQueryState+--+-- , requestGetQueryStatistics $+-- newGetQueryStatistics+--+-- , requestGetResourceLFTags $+-- newGetResourceLFTags+--+-- , requestGetTableObjects $+-- newGetTableObjects+--+-- , requestGetTemporaryGluePartitionCredentials $+-- newGetTemporaryGluePartitionCredentials+--+-- , requestGetTemporaryGlueTableCredentials $+-- newGetTemporaryGlueTableCredentials+--+-- , requestGetWorkUnitResults $+-- newGetWorkUnitResults+--+-- , requestGetWorkUnits $+-- newGetWorkUnits+--+-- , requestGrantPermissions $+-- newGrantPermissions+--+-- , requestListDataCellsFilter $+-- newListDataCellsFilter+--+-- , requestListLFTags $+-- newListLFTags+--+-- , requestListPermissions $+-- newListPermissions+--+-- , requestListResources $+-- newListResources+--+-- , requestListTableStorageOptimizers $+-- newListTableStorageOptimizers+--+-- , requestListTransactions $+-- newListTransactions+--+-- , requestPutDataLakeSettings $+-- newPutDataLakeSettings+--+-- , requestRegisterResource $+-- newRegisterResource+--+-- , requestRemoveLFTagsFromResource $+-- newRemoveLFTagsFromResource+--+-- , requestRevokePermissions $+-- newRevokePermissions+--+-- , requestSearchDatabasesByLFTags $+-- newSearchDatabasesByLFTags+--+-- , requestSearchTablesByLFTags $+-- newSearchTablesByLFTags+--+-- , requestStartQueryPlanning $+-- newStartQueryPlanning+--+-- , requestStartTransaction $+-- newStartTransaction+--+-- , requestUpdateLFTag $+-- newUpdateLFTag+--+-- , requestUpdateResource $+-- newUpdateResource+--+-- , requestUpdateTableObjects $+-- newUpdateTableObjects+--+-- , requestUpdateTableStorageOptimizer $+-- newUpdateTableStorageOptimizer+--+-- ]++-- , testGroup "response"+-- [ responseAddLFTagsToResource $+-- newAddLFTagsToResourceResponse+--+-- , responseAssumeDecoratedRoleWithSAML $+-- newAssumeDecoratedRoleWithSAMLResponse+--+-- , responseBatchGrantPermissions $+-- newBatchGrantPermissionsResponse+--+-- , responseBatchRevokePermissions $+-- newBatchRevokePermissionsResponse+--+-- , responseCancelTransaction $+-- newCancelTransactionResponse+--+-- , responseCommitTransaction $+-- newCommitTransactionResponse+--+-- , responseCreateDataCellsFilter $+-- newCreateDataCellsFilterResponse+--+-- , responseCreateLFTag $+-- newCreateLFTagResponse+--+-- , responseDeleteDataCellsFilter $+-- newDeleteDataCellsFilterResponse+--+-- , responseDeleteLFTag $+-- newDeleteLFTagResponse+--+-- , responseDeleteObjectsOnCancel $+-- newDeleteObjectsOnCancelResponse+--+-- , responseDeregisterResource $+-- newDeregisterResourceResponse+--+-- , responseDescribeResource $+-- newDescribeResourceResponse+--+-- , responseDescribeTransaction $+-- newDescribeTransactionResponse+--+-- , responseExtendTransaction $+-- newExtendTransactionResponse+--+-- , responseGetDataLakeSettings $+-- newGetDataLakeSettingsResponse+--+-- , responseGetEffectivePermissionsForPath $+-- newGetEffectivePermissionsForPathResponse+--+-- , responseGetLFTag $+-- newGetLFTagResponse+--+-- , responseGetQueryState $+-- newGetQueryStateResponse+--+-- , responseGetQueryStatistics $+-- newGetQueryStatisticsResponse+--+-- , responseGetResourceLFTags $+-- newGetResourceLFTagsResponse+--+-- , responseGetTableObjects $+-- newGetTableObjectsResponse+--+-- , responseGetTemporaryGluePartitionCredentials $+-- newGetTemporaryGluePartitionCredentialsResponse+--+-- , responseGetTemporaryGlueTableCredentials $+-- newGetTemporaryGlueTableCredentialsResponse+--+-- , responseGetWorkUnitResults $+-- newGetWorkUnitResultsResponse+--+-- , responseGetWorkUnits $+-- newGetWorkUnitsResponse+--+-- , responseGrantPermissions $+-- newGrantPermissionsResponse+--+-- , responseListDataCellsFilter $+-- newListDataCellsFilterResponse+--+-- , responseListLFTags $+-- newListLFTagsResponse+--+-- , responseListPermissions $+-- newListPermissionsResponse+--+-- , responseListResources $+-- newListResourcesResponse+--+-- , responseListTableStorageOptimizers $+-- newListTableStorageOptimizersResponse+--+-- , responseListTransactions $+-- newListTransactionsResponse+--+-- , responsePutDataLakeSettings $+-- newPutDataLakeSettingsResponse+--+-- , responseRegisterResource $+-- newRegisterResourceResponse+--+-- , responseRemoveLFTagsFromResource $+-- newRemoveLFTagsFromResourceResponse+--+-- , responseRevokePermissions $+-- newRevokePermissionsResponse+--+-- , responseSearchDatabasesByLFTags $+-- newSearchDatabasesByLFTagsResponse+--+-- , responseSearchTablesByLFTags $+-- newSearchTablesByLFTagsResponse+--+-- , responseStartQueryPlanning $+-- newStartQueryPlanningResponse+--+-- , responseStartTransaction $+-- newStartTransactionResponse+--+-- , responseUpdateLFTag $+-- newUpdateLFTagResponse+--+-- , responseUpdateResource $+-- newUpdateResourceResponse+--+-- , responseUpdateTableObjects $+-- newUpdateTableObjectsResponse+--+-- , responseUpdateTableStorageOptimizer $+-- newUpdateTableStorageOptimizerResponse+--+-- ]+-- ]++-- Requests++requestAddLFTagsToResource :: AddLFTagsToResource -> TestTree+requestAddLFTagsToResource =+ req+ "AddLFTagsToResource"+ "fixture/AddLFTagsToResource.yaml"++requestAssumeDecoratedRoleWithSAML :: AssumeDecoratedRoleWithSAML -> TestTree+requestAssumeDecoratedRoleWithSAML =+ req+ "AssumeDecoratedRoleWithSAML"+ "fixture/AssumeDecoratedRoleWithSAML.yaml"++requestBatchGrantPermissions :: BatchGrantPermissions -> TestTree+requestBatchGrantPermissions =+ req+ "BatchGrantPermissions"+ "fixture/BatchGrantPermissions.yaml"++requestBatchRevokePermissions :: BatchRevokePermissions -> TestTree+requestBatchRevokePermissions =+ req+ "BatchRevokePermissions"+ "fixture/BatchRevokePermissions.yaml"++requestCancelTransaction :: CancelTransaction -> TestTree+requestCancelTransaction =+ req+ "CancelTransaction"+ "fixture/CancelTransaction.yaml"++requestCommitTransaction :: CommitTransaction -> TestTree+requestCommitTransaction =+ req+ "CommitTransaction"+ "fixture/CommitTransaction.yaml"++requestCreateDataCellsFilter :: CreateDataCellsFilter -> TestTree+requestCreateDataCellsFilter =+ req+ "CreateDataCellsFilter"+ "fixture/CreateDataCellsFilter.yaml"++requestCreateLFTag :: CreateLFTag -> TestTree+requestCreateLFTag =+ req+ "CreateLFTag"+ "fixture/CreateLFTag.yaml"++requestDeleteDataCellsFilter :: DeleteDataCellsFilter -> TestTree+requestDeleteDataCellsFilter =+ req+ "DeleteDataCellsFilter"+ "fixture/DeleteDataCellsFilter.yaml"++requestDeleteLFTag :: DeleteLFTag -> TestTree+requestDeleteLFTag =+ req+ "DeleteLFTag"+ "fixture/DeleteLFTag.yaml"++requestDeleteObjectsOnCancel :: DeleteObjectsOnCancel -> TestTree+requestDeleteObjectsOnCancel =+ req+ "DeleteObjectsOnCancel"+ "fixture/DeleteObjectsOnCancel.yaml"++requestDeregisterResource :: DeregisterResource -> TestTree+requestDeregisterResource =+ req+ "DeregisterResource"+ "fixture/DeregisterResource.yaml"++requestDescribeResource :: DescribeResource -> TestTree+requestDescribeResource =+ req+ "DescribeResource"+ "fixture/DescribeResource.yaml"++requestDescribeTransaction :: DescribeTransaction -> TestTree+requestDescribeTransaction =+ req+ "DescribeTransaction"+ "fixture/DescribeTransaction.yaml"++requestExtendTransaction :: ExtendTransaction -> TestTree+requestExtendTransaction =+ req+ "ExtendTransaction"+ "fixture/ExtendTransaction.yaml"++requestGetDataLakeSettings :: GetDataLakeSettings -> TestTree+requestGetDataLakeSettings =+ req+ "GetDataLakeSettings"+ "fixture/GetDataLakeSettings.yaml"++requestGetEffectivePermissionsForPath :: GetEffectivePermissionsForPath -> TestTree+requestGetEffectivePermissionsForPath =+ req+ "GetEffectivePermissionsForPath"+ "fixture/GetEffectivePermissionsForPath.yaml"++requestGetLFTag :: GetLFTag -> TestTree+requestGetLFTag =+ req+ "GetLFTag"+ "fixture/GetLFTag.yaml"++requestGetQueryState :: GetQueryState -> TestTree+requestGetQueryState =+ req+ "GetQueryState"+ "fixture/GetQueryState.yaml"++requestGetQueryStatistics :: GetQueryStatistics -> TestTree+requestGetQueryStatistics =+ req+ "GetQueryStatistics"+ "fixture/GetQueryStatistics.yaml"++requestGetResourceLFTags :: GetResourceLFTags -> TestTree+requestGetResourceLFTags =+ req+ "GetResourceLFTags"+ "fixture/GetResourceLFTags.yaml"++requestGetTableObjects :: GetTableObjects -> TestTree+requestGetTableObjects =+ req+ "GetTableObjects"+ "fixture/GetTableObjects.yaml"++requestGetTemporaryGluePartitionCredentials :: GetTemporaryGluePartitionCredentials -> TestTree+requestGetTemporaryGluePartitionCredentials =+ req+ "GetTemporaryGluePartitionCredentials"+ "fixture/GetTemporaryGluePartitionCredentials.yaml"++requestGetTemporaryGlueTableCredentials :: GetTemporaryGlueTableCredentials -> TestTree+requestGetTemporaryGlueTableCredentials =+ req+ "GetTemporaryGlueTableCredentials"+ "fixture/GetTemporaryGlueTableCredentials.yaml"++requestGetWorkUnitResults :: GetWorkUnitResults -> TestTree+requestGetWorkUnitResults =+ req+ "GetWorkUnitResults"+ "fixture/GetWorkUnitResults.yaml"++requestGetWorkUnits :: GetWorkUnits -> TestTree+requestGetWorkUnits =+ req+ "GetWorkUnits"+ "fixture/GetWorkUnits.yaml"++requestGrantPermissions :: GrantPermissions -> TestTree+requestGrantPermissions =+ req+ "GrantPermissions"+ "fixture/GrantPermissions.yaml"++requestListDataCellsFilter :: ListDataCellsFilter -> TestTree+requestListDataCellsFilter =+ req+ "ListDataCellsFilter"+ "fixture/ListDataCellsFilter.yaml"++requestListLFTags :: ListLFTags -> TestTree+requestListLFTags =+ req+ "ListLFTags"+ "fixture/ListLFTags.yaml"++requestListPermissions :: ListPermissions -> TestTree+requestListPermissions =+ req+ "ListPermissions"+ "fixture/ListPermissions.yaml"++requestListResources :: ListResources -> TestTree+requestListResources =+ req+ "ListResources"+ "fixture/ListResources.yaml"++requestListTableStorageOptimizers :: ListTableStorageOptimizers -> TestTree+requestListTableStorageOptimizers =+ req+ "ListTableStorageOptimizers"+ "fixture/ListTableStorageOptimizers.yaml"++requestListTransactions :: ListTransactions -> TestTree+requestListTransactions =+ req+ "ListTransactions"+ "fixture/ListTransactions.yaml"++requestPutDataLakeSettings :: PutDataLakeSettings -> TestTree+requestPutDataLakeSettings =+ req+ "PutDataLakeSettings"+ "fixture/PutDataLakeSettings.yaml"++requestRegisterResource :: RegisterResource -> TestTree+requestRegisterResource =+ req+ "RegisterResource"+ "fixture/RegisterResource.yaml"++requestRemoveLFTagsFromResource :: RemoveLFTagsFromResource -> TestTree+requestRemoveLFTagsFromResource =+ req+ "RemoveLFTagsFromResource"+ "fixture/RemoveLFTagsFromResource.yaml"++requestRevokePermissions :: RevokePermissions -> TestTree+requestRevokePermissions =+ req+ "RevokePermissions"+ "fixture/RevokePermissions.yaml"++requestSearchDatabasesByLFTags :: SearchDatabasesByLFTags -> TestTree+requestSearchDatabasesByLFTags =+ req+ "SearchDatabasesByLFTags"+ "fixture/SearchDatabasesByLFTags.yaml"++requestSearchTablesByLFTags :: SearchTablesByLFTags -> TestTree+requestSearchTablesByLFTags =+ req+ "SearchTablesByLFTags"+ "fixture/SearchTablesByLFTags.yaml"++requestStartQueryPlanning :: StartQueryPlanning -> TestTree+requestStartQueryPlanning =+ req+ "StartQueryPlanning"+ "fixture/StartQueryPlanning.yaml"++requestStartTransaction :: StartTransaction -> TestTree+requestStartTransaction =+ req+ "StartTransaction"+ "fixture/StartTransaction.yaml"++requestUpdateLFTag :: UpdateLFTag -> TestTree+requestUpdateLFTag =+ req+ "UpdateLFTag"+ "fixture/UpdateLFTag.yaml"++requestUpdateResource :: UpdateResource -> TestTree+requestUpdateResource =+ req+ "UpdateResource"+ "fixture/UpdateResource.yaml"++requestUpdateTableObjects :: UpdateTableObjects -> TestTree+requestUpdateTableObjects =+ req+ "UpdateTableObjects"+ "fixture/UpdateTableObjects.yaml"++requestUpdateTableStorageOptimizer :: UpdateTableStorageOptimizer -> TestTree+requestUpdateTableStorageOptimizer =+ req+ "UpdateTableStorageOptimizer"+ "fixture/UpdateTableStorageOptimizer.yaml"++-- Responses++responseAddLFTagsToResource :: AddLFTagsToResourceResponse -> TestTree+responseAddLFTagsToResource =+ res+ "AddLFTagsToResourceResponse"+ "fixture/AddLFTagsToResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy AddLFTagsToResource)++responseAssumeDecoratedRoleWithSAML :: AssumeDecoratedRoleWithSAMLResponse -> TestTree+responseAssumeDecoratedRoleWithSAML =+ res+ "AssumeDecoratedRoleWithSAMLResponse"+ "fixture/AssumeDecoratedRoleWithSAMLResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy AssumeDecoratedRoleWithSAML)++responseBatchGrantPermissions :: BatchGrantPermissionsResponse -> TestTree+responseBatchGrantPermissions =+ res+ "BatchGrantPermissionsResponse"+ "fixture/BatchGrantPermissionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy BatchGrantPermissions)++responseBatchRevokePermissions :: BatchRevokePermissionsResponse -> TestTree+responseBatchRevokePermissions =+ res+ "BatchRevokePermissionsResponse"+ "fixture/BatchRevokePermissionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy BatchRevokePermissions)++responseCancelTransaction :: CancelTransactionResponse -> TestTree+responseCancelTransaction =+ res+ "CancelTransactionResponse"+ "fixture/CancelTransactionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CancelTransaction)++responseCommitTransaction :: CommitTransactionResponse -> TestTree+responseCommitTransaction =+ res+ "CommitTransactionResponse"+ "fixture/CommitTransactionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CommitTransaction)++responseCreateDataCellsFilter :: CreateDataCellsFilterResponse -> TestTree+responseCreateDataCellsFilter =+ res+ "CreateDataCellsFilterResponse"+ "fixture/CreateDataCellsFilterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateDataCellsFilter)++responseCreateLFTag :: CreateLFTagResponse -> TestTree+responseCreateLFTag =+ res+ "CreateLFTagResponse"+ "fixture/CreateLFTagResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateLFTag)++responseDeleteDataCellsFilter :: DeleteDataCellsFilterResponse -> TestTree+responseDeleteDataCellsFilter =+ res+ "DeleteDataCellsFilterResponse"+ "fixture/DeleteDataCellsFilterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteDataCellsFilter)++responseDeleteLFTag :: DeleteLFTagResponse -> TestTree+responseDeleteLFTag =+ res+ "DeleteLFTagResponse"+ "fixture/DeleteLFTagResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteLFTag)++responseDeleteObjectsOnCancel :: DeleteObjectsOnCancelResponse -> TestTree+responseDeleteObjectsOnCancel =+ res+ "DeleteObjectsOnCancelResponse"+ "fixture/DeleteObjectsOnCancelResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteObjectsOnCancel)++responseDeregisterResource :: DeregisterResourceResponse -> TestTree+responseDeregisterResource =+ res+ "DeregisterResourceResponse"+ "fixture/DeregisterResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeregisterResource)++responseDescribeResource :: DescribeResourceResponse -> TestTree+responseDescribeResource =+ res+ "DescribeResourceResponse"+ "fixture/DescribeResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeResource)++responseDescribeTransaction :: DescribeTransactionResponse -> TestTree+responseDescribeTransaction =+ res+ "DescribeTransactionResponse"+ "fixture/DescribeTransactionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeTransaction)++responseExtendTransaction :: ExtendTransactionResponse -> TestTree+responseExtendTransaction =+ res+ "ExtendTransactionResponse"+ "fixture/ExtendTransactionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ExtendTransaction)++responseGetDataLakeSettings :: GetDataLakeSettingsResponse -> TestTree+responseGetDataLakeSettings =+ res+ "GetDataLakeSettingsResponse"+ "fixture/GetDataLakeSettingsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetDataLakeSettings)++responseGetEffectivePermissionsForPath :: GetEffectivePermissionsForPathResponse -> TestTree+responseGetEffectivePermissionsForPath =+ res+ "GetEffectivePermissionsForPathResponse"+ "fixture/GetEffectivePermissionsForPathResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetEffectivePermissionsForPath)++responseGetLFTag :: GetLFTagResponse -> TestTree+responseGetLFTag =+ res+ "GetLFTagResponse"+ "fixture/GetLFTagResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetLFTag)++responseGetQueryState :: GetQueryStateResponse -> TestTree+responseGetQueryState =+ res+ "GetQueryStateResponse"+ "fixture/GetQueryStateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetQueryState)++responseGetQueryStatistics :: GetQueryStatisticsResponse -> TestTree+responseGetQueryStatistics =+ res+ "GetQueryStatisticsResponse"+ "fixture/GetQueryStatisticsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetQueryStatistics)++responseGetResourceLFTags :: GetResourceLFTagsResponse -> TestTree+responseGetResourceLFTags =+ res+ "GetResourceLFTagsResponse"+ "fixture/GetResourceLFTagsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetResourceLFTags)++responseGetTableObjects :: GetTableObjectsResponse -> TestTree+responseGetTableObjects =+ res+ "GetTableObjectsResponse"+ "fixture/GetTableObjectsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetTableObjects)++responseGetTemporaryGluePartitionCredentials :: GetTemporaryGluePartitionCredentialsResponse -> TestTree+responseGetTemporaryGluePartitionCredentials =+ res+ "GetTemporaryGluePartitionCredentialsResponse"+ "fixture/GetTemporaryGluePartitionCredentialsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetTemporaryGluePartitionCredentials)++responseGetTemporaryGlueTableCredentials :: GetTemporaryGlueTableCredentialsResponse -> TestTree+responseGetTemporaryGlueTableCredentials =+ res+ "GetTemporaryGlueTableCredentialsResponse"+ "fixture/GetTemporaryGlueTableCredentialsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetTemporaryGlueTableCredentials)++responseGetWorkUnits :: GetWorkUnitsResponse -> TestTree+responseGetWorkUnits =+ res+ "GetWorkUnitsResponse"+ "fixture/GetWorkUnitsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetWorkUnits)++responseGrantPermissions :: GrantPermissionsResponse -> TestTree+responseGrantPermissions =+ res+ "GrantPermissionsResponse"+ "fixture/GrantPermissionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GrantPermissions)++responseListDataCellsFilter :: ListDataCellsFilterResponse -> TestTree+responseListDataCellsFilter =+ res+ "ListDataCellsFilterResponse"+ "fixture/ListDataCellsFilterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListDataCellsFilter)++responseListLFTags :: ListLFTagsResponse -> TestTree+responseListLFTags =+ res+ "ListLFTagsResponse"+ "fixture/ListLFTagsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListLFTags)++responseListPermissions :: ListPermissionsResponse -> TestTree+responseListPermissions =+ res+ "ListPermissionsResponse"+ "fixture/ListPermissionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListPermissions)++responseListResources :: ListResourcesResponse -> TestTree+responseListResources =+ res+ "ListResourcesResponse"+ "fixture/ListResourcesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListResources)++responseListTableStorageOptimizers :: ListTableStorageOptimizersResponse -> TestTree+responseListTableStorageOptimizers =+ res+ "ListTableStorageOptimizersResponse"+ "fixture/ListTableStorageOptimizersResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTableStorageOptimizers)++responseListTransactions :: ListTransactionsResponse -> TestTree+responseListTransactions =+ res+ "ListTransactionsResponse"+ "fixture/ListTransactionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTransactions)++responsePutDataLakeSettings :: PutDataLakeSettingsResponse -> TestTree+responsePutDataLakeSettings =+ res+ "PutDataLakeSettingsResponse"+ "fixture/PutDataLakeSettingsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutDataLakeSettings)++responseRegisterResource :: RegisterResourceResponse -> TestTree+responseRegisterResource =+ res+ "RegisterResourceResponse"+ "fixture/RegisterResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy RegisterResource)++responseRemoveLFTagsFromResource :: RemoveLFTagsFromResourceResponse -> TestTree+responseRemoveLFTagsFromResource =+ res+ "RemoveLFTagsFromResourceResponse"+ "fixture/RemoveLFTagsFromResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy RemoveLFTagsFromResource)++responseRevokePermissions :: RevokePermissionsResponse -> TestTree+responseRevokePermissions =+ res+ "RevokePermissionsResponse"+ "fixture/RevokePermissionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy RevokePermissions)++responseSearchDatabasesByLFTags :: SearchDatabasesByLFTagsResponse -> TestTree+responseSearchDatabasesByLFTags =+ res+ "SearchDatabasesByLFTagsResponse"+ "fixture/SearchDatabasesByLFTagsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy SearchDatabasesByLFTags)++responseSearchTablesByLFTags :: SearchTablesByLFTagsResponse -> TestTree+responseSearchTablesByLFTags =+ res+ "SearchTablesByLFTagsResponse"+ "fixture/SearchTablesByLFTagsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy SearchTablesByLFTags)++responseStartQueryPlanning :: StartQueryPlanningResponse -> TestTree+responseStartQueryPlanning =+ res+ "StartQueryPlanningResponse"+ "fixture/StartQueryPlanningResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy StartQueryPlanning)++responseStartTransaction :: StartTransactionResponse -> TestTree+responseStartTransaction =+ res+ "StartTransactionResponse"+ "fixture/StartTransactionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy StartTransaction)++responseUpdateLFTag :: UpdateLFTagResponse -> TestTree+responseUpdateLFTag =+ res+ "UpdateLFTagResponse"+ "fixture/UpdateLFTagResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateLFTag)++responseUpdateResource :: UpdateResourceResponse -> TestTree+responseUpdateResource =+ res+ "UpdateResourceResponse"+ "fixture/UpdateResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateResource)++responseUpdateTableObjects :: UpdateTableObjectsResponse -> TestTree+responseUpdateTableObjects =+ res+ "UpdateTableObjectsResponse"+ "fixture/UpdateTableObjectsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateTableObjects)++responseUpdateTableStorageOptimizer :: UpdateTableStorageOptimizerResponse -> TestTree+responseUpdateTableStorageOptimizer =+ res+ "UpdateTableStorageOptimizerResponse"+ "fixture/UpdateTableStorageOptimizerResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateTableStorageOptimizer)
+ test/Test/Amazonka/LakeFormation.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.LakeFormation+-- Copyright : (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.LakeFormation+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/LakeFormation/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.LakeFormation.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.LakeFormation.Internal where