amazonka-textract (empty) → 2.0
raw patch · 102 files changed
+11654/−0 lines, 102 filesdep +amazonka-coredep +amazonka-testdep +amazonka-textract
Dependencies added: amazonka-core, amazonka-test, amazonka-textract, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-textract.cabal +147/−0
- fixture/AnalyzeDocument.yaml +10/−0
- fixture/AnalyzeDocumentResponse.proto +0/−0
- fixture/AnalyzeExpense.yaml +10/−0
- fixture/AnalyzeExpenseResponse.proto +0/−0
- fixture/AnalyzeID.yaml +10/−0
- fixture/AnalyzeIDResponse.proto +0/−0
- fixture/DetectDocumentText.yaml +10/−0
- fixture/DetectDocumentTextResponse.proto +0/−0
- fixture/GetDocumentAnalysis.yaml +10/−0
- fixture/GetDocumentAnalysisResponse.proto +0/−0
- fixture/GetDocumentTextDetection.yaml +10/−0
- fixture/GetDocumentTextDetectionResponse.proto +0/−0
- fixture/GetExpenseAnalysis.yaml +10/−0
- fixture/GetExpenseAnalysisResponse.proto +0/−0
- fixture/GetLendingAnalysis.yaml +10/−0
- fixture/GetLendingAnalysisResponse.proto +0/−0
- fixture/GetLendingAnalysisSummary.yaml +10/−0
- fixture/GetLendingAnalysisSummaryResponse.proto +0/−0
- fixture/StartDocumentAnalysis.yaml +10/−0
- fixture/StartDocumentAnalysisResponse.proto +0/−0
- fixture/StartDocumentTextDetection.yaml +10/−0
- fixture/StartDocumentTextDetectionResponse.proto +0/−0
- fixture/StartExpenseAnalysis.yaml +10/−0
- fixture/StartExpenseAnalysisResponse.proto +0/−0
- fixture/StartLendingAnalysis.yaml +10/−0
- fixture/StartLendingAnalysisResponse.proto +0/−0
- gen/Amazonka/Textract.hs +391/−0
- gen/Amazonka/Textract/AnalyzeDocument.hs +340/−0
- gen/Amazonka/Textract/AnalyzeExpense.hs +189/−0
- gen/Amazonka/Textract/AnalyzeID.hs +202/−0
- gen/Amazonka/Textract/DetectDocumentText.hs +228/−0
- gen/Amazonka/Textract/GetDocumentAnalysis.hs +363/−0
- gen/Amazonka/Textract/GetDocumentTextDetection.hs +348/−0
- gen/Amazonka/Textract/GetExpenseAnalysis.hs +335/−0
- gen/Amazonka/Textract/GetLendingAnalysis.hs +312/−0
- gen/Amazonka/Textract/GetLendingAnalysisSummary.hs +255/−0
- gen/Amazonka/Textract/Lens.hs +406/−0
- gen/Amazonka/Textract/StartDocumentAnalysis.hs +352/−0
- gen/Amazonka/Textract/StartDocumentTextDetection.hs +315/−0
- gen/Amazonka/Textract/StartExpenseAnalysis.hs +310/−0
- gen/Amazonka/Textract/StartLendingAnalysis.hs +308/−0
- gen/Amazonka/Textract/Types.hs +592/−0
- gen/Amazonka/Textract/Types/AnalyzeIDDetections.hs +102/−0
- gen/Amazonka/Textract/Types/Block.hs +530/−0
- gen/Amazonka/Textract/Types/BlockType.hs +121/−0
- gen/Amazonka/Textract/Types/BoundingBox.hs +135/−0
- gen/Amazonka/Textract/Types/ContentClassifier.hs +71/−0
- gen/Amazonka/Textract/Types/DetectedSignature.hs +68/−0
- gen/Amazonka/Textract/Types/Document.hs +132/−0
- gen/Amazonka/Textract/Types/DocumentGroup.hs +124/−0
- gen/Amazonka/Textract/Types/DocumentLocation.hs +71/−0
- gen/Amazonka/Textract/Types/DocumentMetadata.hs +67/−0
- gen/Amazonka/Textract/Types/EntityType.hs +76/−0
- gen/Amazonka/Textract/Types/ExpenseCurrency.hs +156/−0
- gen/Amazonka/Textract/Types/ExpenseDetection.hs +97/−0
- gen/Amazonka/Textract/Types/ExpenseDocument.hs +120/−0
- gen/Amazonka/Textract/Types/ExpenseField.hs +155/−0
- gen/Amazonka/Textract/Types/ExpenseGroupProperty.hs +88/−0
- gen/Amazonka/Textract/Types/ExpenseType.hs +85/−0
- gen/Amazonka/Textract/Types/Extraction.hs +101/−0
- gen/Amazonka/Textract/Types/FeatureType.hs +81/−0
- gen/Amazonka/Textract/Types/Geometry.hs +94/−0
- gen/Amazonka/Textract/Types/HumanLoopActivationOutput.hs +104/−0
- gen/Amazonka/Textract/Types/HumanLoopConfig.hs +109/−0
- gen/Amazonka/Textract/Types/HumanLoopDataAttributes.hs +77/−0
- gen/Amazonka/Textract/Types/IdentityDocument.hs +111/−0
- gen/Amazonka/Textract/Types/IdentityDocumentField.hs +85/−0
- gen/Amazonka/Textract/Types/JobStatus.hs +81/−0
- gen/Amazonka/Textract/Types/LendingDetection.hs +115/−0
- gen/Amazonka/Textract/Types/LendingDocument.hs +90/−0
- gen/Amazonka/Textract/Types/LendingField.hs +100/−0
- gen/Amazonka/Textract/Types/LendingResult.hs +102/−0
- gen/Amazonka/Textract/Types/LendingSummary.hs +89/−0
- gen/Amazonka/Textract/Types/LineItemFields.hs +77/−0
- gen/Amazonka/Textract/Types/LineItemGroup.hs +93/−0
- gen/Amazonka/Textract/Types/NormalizedValue.hs +86/−0
- gen/Amazonka/Textract/Types/NotificationChannel.hs +95/−0
- gen/Amazonka/Textract/Types/OutputConfig.hs +110/−0
- gen/Amazonka/Textract/Types/PageClassification.hs +94/−0
- gen/Amazonka/Textract/Types/Point.hs +89/−0
- gen/Amazonka/Textract/Types/Prediction.hs +86/−0
- gen/Amazonka/Textract/Types/QueriesConfig.hs +70/−0
- gen/Amazonka/Textract/Types/Query.hs +160/−0
- gen/Amazonka/Textract/Types/Relationship.hs +110/−0
- gen/Amazonka/Textract/Types/RelationshipType.hs +91/−0
- gen/Amazonka/Textract/Types/S3Object.hs +113/−0
- gen/Amazonka/Textract/Types/SelectionStatus.hs +71/−0
- gen/Amazonka/Textract/Types/SignatureDetection.hs +87/−0
- gen/Amazonka/Textract/Types/SplitDocument.hs +87/−0
- gen/Amazonka/Textract/Types/TextType.hs +71/−0
- gen/Amazonka/Textract/Types/UndetectedSignature.hs +68/−0
- gen/Amazonka/Textract/Types/ValueType.hs +66/−0
- gen/Amazonka/Textract/Types/Warning.hs +86/−0
- gen/Amazonka/Textract/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/Gen/Textract.hs +298/−0
- test/Test/Amazonka/Textract.hs +20/−0
- test/Test/Amazonka/Textract/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 Textract SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2018-06-27@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-textract)+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.Textract](http://hackage.haskell.org/package/amazonka-textract/docs/Amazonka-Textract.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-textract` 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-textract.cabal view
@@ -0,0 +1,147 @@+cabal-version: 2.2+name: amazonka-textract+version: 2.0+synopsis: Amazon Textract SDK.+homepage: https://github.com/brendanhay/amazonka+bug-reports: https://github.com/brendanhay/amazonka/issues+license: MPL-2.0+license-file: LICENSE+author: Brendan Hay+maintainer:+ Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright: Copyright (c) 2013-2023 Brendan Hay+category: AWS+build-type: Simple+extra-source-files:+ fixture/*.proto+ fixture/*.yaml+ README.md+ src/.gitkeep++description:+ Derived from API version @2018-06-27@ 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.Textract.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.Textract" 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-textract++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.Textract+ Amazonka.Textract.AnalyzeDocument+ Amazonka.Textract.AnalyzeExpense+ Amazonka.Textract.AnalyzeID+ Amazonka.Textract.DetectDocumentText+ Amazonka.Textract.GetDocumentAnalysis+ Amazonka.Textract.GetDocumentTextDetection+ Amazonka.Textract.GetExpenseAnalysis+ Amazonka.Textract.GetLendingAnalysis+ Amazonka.Textract.GetLendingAnalysisSummary+ Amazonka.Textract.Lens+ Amazonka.Textract.StartDocumentAnalysis+ Amazonka.Textract.StartDocumentTextDetection+ Amazonka.Textract.StartExpenseAnalysis+ Amazonka.Textract.StartLendingAnalysis+ Amazonka.Textract.Types+ Amazonka.Textract.Types.AnalyzeIDDetections+ Amazonka.Textract.Types.Block+ Amazonka.Textract.Types.BlockType+ Amazonka.Textract.Types.BoundingBox+ Amazonka.Textract.Types.ContentClassifier+ Amazonka.Textract.Types.DetectedSignature+ Amazonka.Textract.Types.Document+ Amazonka.Textract.Types.DocumentGroup+ Amazonka.Textract.Types.DocumentLocation+ Amazonka.Textract.Types.DocumentMetadata+ Amazonka.Textract.Types.EntityType+ Amazonka.Textract.Types.ExpenseCurrency+ Amazonka.Textract.Types.ExpenseDetection+ Amazonka.Textract.Types.ExpenseDocument+ Amazonka.Textract.Types.ExpenseField+ Amazonka.Textract.Types.ExpenseGroupProperty+ Amazonka.Textract.Types.ExpenseType+ Amazonka.Textract.Types.Extraction+ Amazonka.Textract.Types.FeatureType+ Amazonka.Textract.Types.Geometry+ Amazonka.Textract.Types.HumanLoopActivationOutput+ Amazonka.Textract.Types.HumanLoopConfig+ Amazonka.Textract.Types.HumanLoopDataAttributes+ Amazonka.Textract.Types.IdentityDocument+ Amazonka.Textract.Types.IdentityDocumentField+ Amazonka.Textract.Types.JobStatus+ Amazonka.Textract.Types.LendingDetection+ Amazonka.Textract.Types.LendingDocument+ Amazonka.Textract.Types.LendingField+ Amazonka.Textract.Types.LendingResult+ Amazonka.Textract.Types.LendingSummary+ Amazonka.Textract.Types.LineItemFields+ Amazonka.Textract.Types.LineItemGroup+ Amazonka.Textract.Types.NormalizedValue+ Amazonka.Textract.Types.NotificationChannel+ Amazonka.Textract.Types.OutputConfig+ Amazonka.Textract.Types.PageClassification+ Amazonka.Textract.Types.Point+ Amazonka.Textract.Types.Prediction+ Amazonka.Textract.Types.QueriesConfig+ Amazonka.Textract.Types.Query+ Amazonka.Textract.Types.Relationship+ Amazonka.Textract.Types.RelationshipType+ Amazonka.Textract.Types.S3Object+ Amazonka.Textract.Types.SelectionStatus+ Amazonka.Textract.Types.SignatureDetection+ Amazonka.Textract.Types.SplitDocument+ Amazonka.Textract.Types.TextType+ Amazonka.Textract.Types.UndetectedSignature+ Amazonka.Textract.Types.ValueType+ Amazonka.Textract.Types.Warning+ Amazonka.Textract.Waiters++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-textract-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.Textract+ Test.Amazonka.Textract+ Test.Amazonka.Textract.Internal++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-test >=2.0 && <2.1+ , amazonka-textract+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/AnalyzeDocument.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/textract/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: textract.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/AnalyzeDocumentResponse.proto view
+ fixture/AnalyzeExpense.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/textract/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: textract.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/AnalyzeExpenseResponse.proto view
+ fixture/AnalyzeID.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/textract/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: textract.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/AnalyzeIDResponse.proto view
+ fixture/DetectDocumentText.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/textract/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: textract.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/DetectDocumentTextResponse.proto view
+ fixture/GetDocumentAnalysis.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/textract/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: textract.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/GetDocumentAnalysisResponse.proto view
+ fixture/GetDocumentTextDetection.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/textract/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: textract.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/GetDocumentTextDetectionResponse.proto view
+ fixture/GetExpenseAnalysis.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/textract/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: textract.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/GetExpenseAnalysisResponse.proto view
+ fixture/GetLendingAnalysis.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/textract/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: textract.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/GetLendingAnalysisResponse.proto view
+ fixture/GetLendingAnalysisSummary.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/textract/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: textract.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/GetLendingAnalysisSummaryResponse.proto view
+ fixture/StartDocumentAnalysis.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/textract/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: textract.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/StartDocumentAnalysisResponse.proto view
+ fixture/StartDocumentTextDetection.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/textract/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: textract.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/StartDocumentTextDetectionResponse.proto view
+ fixture/StartExpenseAnalysis.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/textract/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: textract.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/StartExpenseAnalysisResponse.proto view
+ fixture/StartLendingAnalysis.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/textract/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: textract.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/StartLendingAnalysisResponse.proto view
+ gen/Amazonka/Textract.hs view
@@ -0,0 +1,391 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.Textract+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2018-06-27@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon Textract detects and analyzes text in documents and converts it+-- into machine-readable text. This is the API reference documentation for+-- Amazon Textract.+module Amazonka.Textract+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** AccessDeniedException+ _AccessDeniedException,++ -- ** BadDocumentException+ _BadDocumentException,++ -- ** DocumentTooLargeException+ _DocumentTooLargeException,++ -- ** HumanLoopQuotaExceededException+ _HumanLoopQuotaExceededException,++ -- ** IdempotentParameterMismatchException+ _IdempotentParameterMismatchException,++ -- ** InternalServerError+ _InternalServerError,++ -- ** InvalidJobIdException+ _InvalidJobIdException,++ -- ** InvalidKMSKeyException+ _InvalidKMSKeyException,++ -- ** InvalidParameterException+ _InvalidParameterException,++ -- ** InvalidS3ObjectException+ _InvalidS3ObjectException,++ -- ** LimitExceededException+ _LimitExceededException,++ -- ** ProvisionedThroughputExceededException+ _ProvisionedThroughputExceededException,++ -- ** ThrottlingException+ _ThrottlingException,++ -- ** UnsupportedDocumentException+ _UnsupportedDocumentException,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** AnalyzeDocument+ AnalyzeDocument (AnalyzeDocument'),+ newAnalyzeDocument,+ AnalyzeDocumentResponse (AnalyzeDocumentResponse'),+ newAnalyzeDocumentResponse,++ -- ** AnalyzeExpense+ AnalyzeExpense (AnalyzeExpense'),+ newAnalyzeExpense,+ AnalyzeExpenseResponse (AnalyzeExpenseResponse'),+ newAnalyzeExpenseResponse,++ -- ** AnalyzeID+ AnalyzeID (AnalyzeID'),+ newAnalyzeID,+ AnalyzeIDResponse (AnalyzeIDResponse'),+ newAnalyzeIDResponse,++ -- ** DetectDocumentText+ DetectDocumentText (DetectDocumentText'),+ newDetectDocumentText,+ DetectDocumentTextResponse (DetectDocumentTextResponse'),+ newDetectDocumentTextResponse,++ -- ** GetDocumentAnalysis+ GetDocumentAnalysis (GetDocumentAnalysis'),+ newGetDocumentAnalysis,+ GetDocumentAnalysisResponse (GetDocumentAnalysisResponse'),+ newGetDocumentAnalysisResponse,++ -- ** GetDocumentTextDetection+ GetDocumentTextDetection (GetDocumentTextDetection'),+ newGetDocumentTextDetection,+ GetDocumentTextDetectionResponse (GetDocumentTextDetectionResponse'),+ newGetDocumentTextDetectionResponse,++ -- ** GetExpenseAnalysis+ GetExpenseAnalysis (GetExpenseAnalysis'),+ newGetExpenseAnalysis,+ GetExpenseAnalysisResponse (GetExpenseAnalysisResponse'),+ newGetExpenseAnalysisResponse,++ -- ** GetLendingAnalysis+ GetLendingAnalysis (GetLendingAnalysis'),+ newGetLendingAnalysis,+ GetLendingAnalysisResponse (GetLendingAnalysisResponse'),+ newGetLendingAnalysisResponse,++ -- ** GetLendingAnalysisSummary+ GetLendingAnalysisSummary (GetLendingAnalysisSummary'),+ newGetLendingAnalysisSummary,+ GetLendingAnalysisSummaryResponse (GetLendingAnalysisSummaryResponse'),+ newGetLendingAnalysisSummaryResponse,++ -- ** StartDocumentAnalysis+ StartDocumentAnalysis (StartDocumentAnalysis'),+ newStartDocumentAnalysis,+ StartDocumentAnalysisResponse (StartDocumentAnalysisResponse'),+ newStartDocumentAnalysisResponse,++ -- ** StartDocumentTextDetection+ StartDocumentTextDetection (StartDocumentTextDetection'),+ newStartDocumentTextDetection,+ StartDocumentTextDetectionResponse (StartDocumentTextDetectionResponse'),+ newStartDocumentTextDetectionResponse,++ -- ** StartExpenseAnalysis+ StartExpenseAnalysis (StartExpenseAnalysis'),+ newStartExpenseAnalysis,+ StartExpenseAnalysisResponse (StartExpenseAnalysisResponse'),+ newStartExpenseAnalysisResponse,++ -- ** StartLendingAnalysis+ StartLendingAnalysis (StartLendingAnalysis'),+ newStartLendingAnalysis,+ StartLendingAnalysisResponse (StartLendingAnalysisResponse'),+ newStartLendingAnalysisResponse,++ -- * Types++ -- ** BlockType+ BlockType (..),++ -- ** ContentClassifier+ ContentClassifier (..),++ -- ** EntityType+ EntityType (..),++ -- ** FeatureType+ FeatureType (..),++ -- ** JobStatus+ JobStatus (..),++ -- ** RelationshipType+ RelationshipType (..),++ -- ** SelectionStatus+ SelectionStatus (..),++ -- ** TextType+ TextType (..),++ -- ** ValueType+ ValueType (..),++ -- ** AnalyzeIDDetections+ AnalyzeIDDetections (AnalyzeIDDetections'),+ newAnalyzeIDDetections,++ -- ** Block+ Block (Block'),+ newBlock,++ -- ** BoundingBox+ BoundingBox (BoundingBox'),+ newBoundingBox,++ -- ** DetectedSignature+ DetectedSignature (DetectedSignature'),+ newDetectedSignature,++ -- ** Document+ Document (Document'),+ newDocument,++ -- ** DocumentGroup+ DocumentGroup (DocumentGroup'),+ newDocumentGroup,++ -- ** DocumentLocation+ DocumentLocation (DocumentLocation'),+ newDocumentLocation,++ -- ** DocumentMetadata+ DocumentMetadata (DocumentMetadata'),+ newDocumentMetadata,++ -- ** ExpenseCurrency+ ExpenseCurrency (ExpenseCurrency'),+ newExpenseCurrency,++ -- ** ExpenseDetection+ ExpenseDetection (ExpenseDetection'),+ newExpenseDetection,++ -- ** ExpenseDocument+ ExpenseDocument (ExpenseDocument'),+ newExpenseDocument,++ -- ** ExpenseField+ ExpenseField (ExpenseField'),+ newExpenseField,++ -- ** ExpenseGroupProperty+ ExpenseGroupProperty (ExpenseGroupProperty'),+ newExpenseGroupProperty,++ -- ** ExpenseType+ ExpenseType (ExpenseType'),+ newExpenseType,++ -- ** Extraction+ Extraction (Extraction'),+ newExtraction,++ -- ** Geometry+ Geometry (Geometry'),+ newGeometry,++ -- ** HumanLoopActivationOutput+ HumanLoopActivationOutput (HumanLoopActivationOutput'),+ newHumanLoopActivationOutput,++ -- ** HumanLoopConfig+ HumanLoopConfig (HumanLoopConfig'),+ newHumanLoopConfig,++ -- ** HumanLoopDataAttributes+ HumanLoopDataAttributes (HumanLoopDataAttributes'),+ newHumanLoopDataAttributes,++ -- ** IdentityDocument+ IdentityDocument (IdentityDocument'),+ newIdentityDocument,++ -- ** IdentityDocumentField+ IdentityDocumentField (IdentityDocumentField'),+ newIdentityDocumentField,++ -- ** LendingDetection+ LendingDetection (LendingDetection'),+ newLendingDetection,++ -- ** LendingDocument+ LendingDocument (LendingDocument'),+ newLendingDocument,++ -- ** LendingField+ LendingField (LendingField'),+ newLendingField,++ -- ** LendingResult+ LendingResult (LendingResult'),+ newLendingResult,++ -- ** LendingSummary+ LendingSummary (LendingSummary'),+ newLendingSummary,++ -- ** LineItemFields+ LineItemFields (LineItemFields'),+ newLineItemFields,++ -- ** LineItemGroup+ LineItemGroup (LineItemGroup'),+ newLineItemGroup,++ -- ** NormalizedValue+ NormalizedValue (NormalizedValue'),+ newNormalizedValue,++ -- ** NotificationChannel+ NotificationChannel (NotificationChannel'),+ newNotificationChannel,++ -- ** OutputConfig+ OutputConfig (OutputConfig'),+ newOutputConfig,++ -- ** PageClassification+ PageClassification (PageClassification'),+ newPageClassification,++ -- ** Point+ Point (Point'),+ newPoint,++ -- ** Prediction+ Prediction (Prediction'),+ newPrediction,++ -- ** QueriesConfig+ QueriesConfig (QueriesConfig'),+ newQueriesConfig,++ -- ** Query+ Query (Query'),+ newQuery,++ -- ** Relationship+ Relationship (Relationship'),+ newRelationship,++ -- ** S3Object+ S3Object (S3Object'),+ newS3Object,++ -- ** SignatureDetection+ SignatureDetection (SignatureDetection'),+ newSignatureDetection,++ -- ** SplitDocument+ SplitDocument (SplitDocument'),+ newSplitDocument,++ -- ** UndetectedSignature+ UndetectedSignature (UndetectedSignature'),+ newUndetectedSignature,++ -- ** Warning+ Warning (Warning'),+ newWarning,+ )+where++import Amazonka.Textract.AnalyzeDocument+import Amazonka.Textract.AnalyzeExpense+import Amazonka.Textract.AnalyzeID+import Amazonka.Textract.DetectDocumentText+import Amazonka.Textract.GetDocumentAnalysis+import Amazonka.Textract.GetDocumentTextDetection+import Amazonka.Textract.GetExpenseAnalysis+import Amazonka.Textract.GetLendingAnalysis+import Amazonka.Textract.GetLendingAnalysisSummary+import Amazonka.Textract.Lens+import Amazonka.Textract.StartDocumentAnalysis+import Amazonka.Textract.StartDocumentTextDetection+import Amazonka.Textract.StartExpenseAnalysis+import Amazonka.Textract.StartLendingAnalysis+import Amazonka.Textract.Types+import Amazonka.Textract.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 'Textract'.++-- $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/Textract/AnalyzeDocument.hs view
@@ -0,0 +1,340 @@+{-# 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.Textract.AnalyzeDocument+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Analyzes an input document for relationships between detected items.+--+-- The types of information returned are as follows:+--+-- - Form data (key-value pairs). The related information is returned in+-- two Block objects, each of type @KEY_VALUE_SET@: a KEY @Block@+-- object and a VALUE @Block@ object. For example, /Name: Ana Silva+-- Carolina/ contains a key and value. /Name:/ is the key. /Ana Silva+-- Carolina/ is the value.+--+-- - Table and table cell data. A TABLE @Block@ object contains+-- information about a detected table. A CELL @Block@ object is+-- returned for each cell in a table.+--+-- - Lines and words of text. A LINE @Block@ object contains one or more+-- WORD @Block@ objects. All lines and words that are detected in the+-- document are returned (including text that doesn\'t have a+-- relationship with the value of @FeatureTypes@).+--+-- - Signatures. A SIGNATURE @Block@ object contains the location+-- information of a signature in a document. If used in conjunction+-- with forms or tables, a signature can be given a Key-Value pairing+-- or be detected in the cell of a table.+--+-- - Query. A QUERY Block object contains the query text, alias and link+-- to the associated Query results block object.+--+-- - Query Result. A QUERY_RESULT Block object contains the answer to the+-- query and an ID that connects it to the query asked. This Block also+-- contains a confidence score.+--+-- Selection elements such as check boxes and option buttons (radio+-- buttons) can be detected in form data and in tables. A SELECTION_ELEMENT+-- @Block@ object contains information about a selection element, including+-- the selection status.+--+-- You can choose which type of analysis to perform by specifying the+-- @FeatureTypes@ list.+--+-- The output is returned in a list of @Block@ objects.+--+-- @AnalyzeDocument@ is a synchronous operation. To analyze documents+-- asynchronously, use StartDocumentAnalysis.+--+-- For more information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/how-it-works-analyzing.html Document Text Analysis>.+module Amazonka.Textract.AnalyzeDocument+ ( -- * Creating a Request+ AnalyzeDocument (..),+ newAnalyzeDocument,++ -- * Request Lenses+ analyzeDocument_humanLoopConfig,+ analyzeDocument_queriesConfig,+ analyzeDocument_document,+ analyzeDocument_featureTypes,++ -- * Destructuring the Response+ AnalyzeDocumentResponse (..),+ newAnalyzeDocumentResponse,++ -- * Response Lenses+ analyzeDocumentResponse_analyzeDocumentModelVersion,+ analyzeDocumentResponse_blocks,+ analyzeDocumentResponse_documentMetadata,+ analyzeDocumentResponse_humanLoopActivationOutput,+ analyzeDocumentResponse_httpStatus,+ )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Textract.Types++-- | /See:/ 'newAnalyzeDocument' smart constructor.+data AnalyzeDocument = AnalyzeDocument'+ { -- | Sets the configuration for the human in the loop workflow for analyzing+ -- documents.+ humanLoopConfig :: Prelude.Maybe HumanLoopConfig,+ -- | Contains Queries and the alias for those Queries, as determined by the+ -- input.+ queriesConfig :: Prelude.Maybe QueriesConfig,+ -- | The input document as base64-encoded bytes or an Amazon S3 object. If+ -- you use the AWS CLI to call Amazon Textract operations, you can\'t pass+ -- image bytes. The document must be an image in JPEG, PNG, PDF, or TIFF+ -- format.+ --+ -- If you\'re using an AWS SDK to call Amazon Textract, you might not need+ -- to base64-encode image bytes that are passed using the @Bytes@ field.+ document :: Document,+ -- | A list of the types of analysis to perform. Add TABLES to the list to+ -- return information about the tables that are detected in the input+ -- document. Add FORMS to return detected form data. Add SIGNATURES to+ -- return the locations of detected signatures. To perform both forms and+ -- table analysis, add TABLES and FORMS to @FeatureTypes@. To detect+ -- signatures within form data and table data, add SIGNATURES to either+ -- TABLES or FORMS. All lines and words detected in the document are+ -- included in the response (including text that isn\'t related to the+ -- value of @FeatureTypes@).+ featureTypes :: [FeatureType]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnalyzeDocument' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'humanLoopConfig', 'analyzeDocument_humanLoopConfig' - Sets the configuration for the human in the loop workflow for analyzing+-- documents.+--+-- 'queriesConfig', 'analyzeDocument_queriesConfig' - Contains Queries and the alias for those Queries, as determined by the+-- input.+--+-- 'document', 'analyzeDocument_document' - The input document as base64-encoded bytes or an Amazon S3 object. If+-- you use the AWS CLI to call Amazon Textract operations, you can\'t pass+-- image bytes. The document must be an image in JPEG, PNG, PDF, or TIFF+-- format.+--+-- If you\'re using an AWS SDK to call Amazon Textract, you might not need+-- to base64-encode image bytes that are passed using the @Bytes@ field.+--+-- 'featureTypes', 'analyzeDocument_featureTypes' - A list of the types of analysis to perform. Add TABLES to the list to+-- return information about the tables that are detected in the input+-- document. Add FORMS to return detected form data. Add SIGNATURES to+-- return the locations of detected signatures. To perform both forms and+-- table analysis, add TABLES and FORMS to @FeatureTypes@. To detect+-- signatures within form data and table data, add SIGNATURES to either+-- TABLES or FORMS. All lines and words detected in the document are+-- included in the response (including text that isn\'t related to the+-- value of @FeatureTypes@).+newAnalyzeDocument ::+ -- | 'document'+ Document ->+ AnalyzeDocument+newAnalyzeDocument pDocument_ =+ AnalyzeDocument'+ { humanLoopConfig = Prelude.Nothing,+ queriesConfig = Prelude.Nothing,+ document = pDocument_,+ featureTypes = Prelude.mempty+ }++-- | Sets the configuration for the human in the loop workflow for analyzing+-- documents.+analyzeDocument_humanLoopConfig :: Lens.Lens' AnalyzeDocument (Prelude.Maybe HumanLoopConfig)+analyzeDocument_humanLoopConfig = Lens.lens (\AnalyzeDocument' {humanLoopConfig} -> humanLoopConfig) (\s@AnalyzeDocument' {} a -> s {humanLoopConfig = a} :: AnalyzeDocument)++-- | Contains Queries and the alias for those Queries, as determined by the+-- input.+analyzeDocument_queriesConfig :: Lens.Lens' AnalyzeDocument (Prelude.Maybe QueriesConfig)+analyzeDocument_queriesConfig = Lens.lens (\AnalyzeDocument' {queriesConfig} -> queriesConfig) (\s@AnalyzeDocument' {} a -> s {queriesConfig = a} :: AnalyzeDocument)++-- | The input document as base64-encoded bytes or an Amazon S3 object. If+-- you use the AWS CLI to call Amazon Textract operations, you can\'t pass+-- image bytes. The document must be an image in JPEG, PNG, PDF, or TIFF+-- format.+--+-- If you\'re using an AWS SDK to call Amazon Textract, you might not need+-- to base64-encode image bytes that are passed using the @Bytes@ field.+analyzeDocument_document :: Lens.Lens' AnalyzeDocument Document+analyzeDocument_document = Lens.lens (\AnalyzeDocument' {document} -> document) (\s@AnalyzeDocument' {} a -> s {document = a} :: AnalyzeDocument)++-- | A list of the types of analysis to perform. Add TABLES to the list to+-- return information about the tables that are detected in the input+-- document. Add FORMS to return detected form data. Add SIGNATURES to+-- return the locations of detected signatures. To perform both forms and+-- table analysis, add TABLES and FORMS to @FeatureTypes@. To detect+-- signatures within form data and table data, add SIGNATURES to either+-- TABLES or FORMS. All lines and words detected in the document are+-- included in the response (including text that isn\'t related to the+-- value of @FeatureTypes@).+analyzeDocument_featureTypes :: Lens.Lens' AnalyzeDocument [FeatureType]+analyzeDocument_featureTypes = Lens.lens (\AnalyzeDocument' {featureTypes} -> featureTypes) (\s@AnalyzeDocument' {} a -> s {featureTypes = a} :: AnalyzeDocument) Prelude.. Lens.coerced++instance Core.AWSRequest AnalyzeDocument where+ type+ AWSResponse AnalyzeDocument =+ AnalyzeDocumentResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ AnalyzeDocumentResponse'+ Prelude.<$> (x Data..?> "AnalyzeDocumentModelVersion")+ Prelude.<*> (x Data..?> "Blocks" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "DocumentMetadata")+ Prelude.<*> (x Data..?> "HumanLoopActivationOutput")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable AnalyzeDocument where+ hashWithSalt _salt AnalyzeDocument' {..} =+ _salt+ `Prelude.hashWithSalt` humanLoopConfig+ `Prelude.hashWithSalt` queriesConfig+ `Prelude.hashWithSalt` document+ `Prelude.hashWithSalt` featureTypes++instance Prelude.NFData AnalyzeDocument where+ rnf AnalyzeDocument' {..} =+ Prelude.rnf humanLoopConfig+ `Prelude.seq` Prelude.rnf queriesConfig+ `Prelude.seq` Prelude.rnf document+ `Prelude.seq` Prelude.rnf featureTypes++instance Data.ToHeaders AnalyzeDocument where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ("Textract.AnalyzeDocument" :: Prelude.ByteString),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON AnalyzeDocument where+ toJSON AnalyzeDocument' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("HumanLoopConfig" Data..=)+ Prelude.<$> humanLoopConfig,+ ("QueriesConfig" Data..=) Prelude.<$> queriesConfig,+ Prelude.Just ("Document" Data..= document),+ Prelude.Just ("FeatureTypes" Data..= featureTypes)+ ]+ )++instance Data.ToPath AnalyzeDocument where+ toPath = Prelude.const "/"++instance Data.ToQuery AnalyzeDocument where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAnalyzeDocumentResponse' smart constructor.+data AnalyzeDocumentResponse = AnalyzeDocumentResponse'+ { -- | The version of the model used to analyze the document.+ analyzeDocumentModelVersion :: Prelude.Maybe Prelude.Text,+ -- | The items that are detected and analyzed by @AnalyzeDocument@.+ blocks :: Prelude.Maybe [Block],+ -- | Metadata about the analyzed document. An example is the number of pages.+ documentMetadata :: Prelude.Maybe DocumentMetadata,+ -- | Shows the results of the human in the loop evaluation.+ humanLoopActivationOutput :: Prelude.Maybe HumanLoopActivationOutput,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnalyzeDocumentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analyzeDocumentModelVersion', 'analyzeDocumentResponse_analyzeDocumentModelVersion' - The version of the model used to analyze the document.+--+-- 'blocks', 'analyzeDocumentResponse_blocks' - The items that are detected and analyzed by @AnalyzeDocument@.+--+-- 'documentMetadata', 'analyzeDocumentResponse_documentMetadata' - Metadata about the analyzed document. An example is the number of pages.+--+-- 'humanLoopActivationOutput', 'analyzeDocumentResponse_humanLoopActivationOutput' - Shows the results of the human in the loop evaluation.+--+-- 'httpStatus', 'analyzeDocumentResponse_httpStatus' - The response's http status code.+newAnalyzeDocumentResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ AnalyzeDocumentResponse+newAnalyzeDocumentResponse pHttpStatus_ =+ AnalyzeDocumentResponse'+ { analyzeDocumentModelVersion =+ Prelude.Nothing,+ blocks = Prelude.Nothing,+ documentMetadata = Prelude.Nothing,+ humanLoopActivationOutput = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The version of the model used to analyze the document.+analyzeDocumentResponse_analyzeDocumentModelVersion :: Lens.Lens' AnalyzeDocumentResponse (Prelude.Maybe Prelude.Text)+analyzeDocumentResponse_analyzeDocumentModelVersion = Lens.lens (\AnalyzeDocumentResponse' {analyzeDocumentModelVersion} -> analyzeDocumentModelVersion) (\s@AnalyzeDocumentResponse' {} a -> s {analyzeDocumentModelVersion = a} :: AnalyzeDocumentResponse)++-- | The items that are detected and analyzed by @AnalyzeDocument@.+analyzeDocumentResponse_blocks :: Lens.Lens' AnalyzeDocumentResponse (Prelude.Maybe [Block])+analyzeDocumentResponse_blocks = Lens.lens (\AnalyzeDocumentResponse' {blocks} -> blocks) (\s@AnalyzeDocumentResponse' {} a -> s {blocks = a} :: AnalyzeDocumentResponse) Prelude.. Lens.mapping Lens.coerced++-- | Metadata about the analyzed document. An example is the number of pages.+analyzeDocumentResponse_documentMetadata :: Lens.Lens' AnalyzeDocumentResponse (Prelude.Maybe DocumentMetadata)+analyzeDocumentResponse_documentMetadata = Lens.lens (\AnalyzeDocumentResponse' {documentMetadata} -> documentMetadata) (\s@AnalyzeDocumentResponse' {} a -> s {documentMetadata = a} :: AnalyzeDocumentResponse)++-- | Shows the results of the human in the loop evaluation.+analyzeDocumentResponse_humanLoopActivationOutput :: Lens.Lens' AnalyzeDocumentResponse (Prelude.Maybe HumanLoopActivationOutput)+analyzeDocumentResponse_humanLoopActivationOutput = Lens.lens (\AnalyzeDocumentResponse' {humanLoopActivationOutput} -> humanLoopActivationOutput) (\s@AnalyzeDocumentResponse' {} a -> s {humanLoopActivationOutput = a} :: AnalyzeDocumentResponse)++-- | The response's http status code.+analyzeDocumentResponse_httpStatus :: Lens.Lens' AnalyzeDocumentResponse Prelude.Int+analyzeDocumentResponse_httpStatus = Lens.lens (\AnalyzeDocumentResponse' {httpStatus} -> httpStatus) (\s@AnalyzeDocumentResponse' {} a -> s {httpStatus = a} :: AnalyzeDocumentResponse)++instance Prelude.NFData AnalyzeDocumentResponse where+ rnf AnalyzeDocumentResponse' {..} =+ Prelude.rnf analyzeDocumentModelVersion+ `Prelude.seq` Prelude.rnf blocks+ `Prelude.seq` Prelude.rnf documentMetadata+ `Prelude.seq` Prelude.rnf humanLoopActivationOutput+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Textract/AnalyzeExpense.hs view
@@ -0,0 +1,189 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.AnalyzeExpense+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- @AnalyzeExpense@ synchronously analyzes an input document for+-- financially related relationships between text.+--+-- Information is returned as @ExpenseDocuments@ and seperated as follows:+--+-- - @LineItemGroups@- A data set containing @LineItems@ which store+-- information about the lines of text, such as an item purchased and+-- its price on a receipt.+--+-- - @SummaryFields@- Contains all other information a receipt, such as+-- header information or the vendors name.+module Amazonka.Textract.AnalyzeExpense+ ( -- * Creating a Request+ AnalyzeExpense (..),+ newAnalyzeExpense,++ -- * Request Lenses+ analyzeExpense_document,++ -- * Destructuring the Response+ AnalyzeExpenseResponse (..),+ newAnalyzeExpenseResponse,++ -- * Response Lenses+ analyzeExpenseResponse_documentMetadata,+ analyzeExpenseResponse_expenseDocuments,+ analyzeExpenseResponse_httpStatus,+ )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Textract.Types++-- | /See:/ 'newAnalyzeExpense' smart constructor.+data AnalyzeExpense = AnalyzeExpense'+ { document :: Document+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnalyzeExpense' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'document', 'analyzeExpense_document' - Undocumented member.+newAnalyzeExpense ::+ -- | 'document'+ Document ->+ AnalyzeExpense+newAnalyzeExpense pDocument_ =+ AnalyzeExpense' {document = pDocument_}++-- | Undocumented member.+analyzeExpense_document :: Lens.Lens' AnalyzeExpense Document+analyzeExpense_document = Lens.lens (\AnalyzeExpense' {document} -> document) (\s@AnalyzeExpense' {} a -> s {document = a} :: AnalyzeExpense)++instance Core.AWSRequest AnalyzeExpense where+ type+ AWSResponse AnalyzeExpense =+ AnalyzeExpenseResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ AnalyzeExpenseResponse'+ Prelude.<$> (x Data..?> "DocumentMetadata")+ Prelude.<*> ( x+ Data..?> "ExpenseDocuments"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable AnalyzeExpense where+ hashWithSalt _salt AnalyzeExpense' {..} =+ _salt `Prelude.hashWithSalt` document++instance Prelude.NFData AnalyzeExpense where+ rnf AnalyzeExpense' {..} = Prelude.rnf document++instance Data.ToHeaders AnalyzeExpense where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ("Textract.AnalyzeExpense" :: Prelude.ByteString),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON AnalyzeExpense where+ toJSON AnalyzeExpense' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Document" Data..= document)]+ )++instance Data.ToPath AnalyzeExpense where+ toPath = Prelude.const "/"++instance Data.ToQuery AnalyzeExpense where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAnalyzeExpenseResponse' smart constructor.+data AnalyzeExpenseResponse = AnalyzeExpenseResponse'+ { documentMetadata :: Prelude.Maybe DocumentMetadata,+ -- | The expenses detected by Amazon Textract.+ expenseDocuments :: Prelude.Maybe [ExpenseDocument],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnalyzeExpenseResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentMetadata', 'analyzeExpenseResponse_documentMetadata' - Undocumented member.+--+-- 'expenseDocuments', 'analyzeExpenseResponse_expenseDocuments' - The expenses detected by Amazon Textract.+--+-- 'httpStatus', 'analyzeExpenseResponse_httpStatus' - The response's http status code.+newAnalyzeExpenseResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ AnalyzeExpenseResponse+newAnalyzeExpenseResponse pHttpStatus_ =+ AnalyzeExpenseResponse'+ { documentMetadata =+ Prelude.Nothing,+ expenseDocuments = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+analyzeExpenseResponse_documentMetadata :: Lens.Lens' AnalyzeExpenseResponse (Prelude.Maybe DocumentMetadata)+analyzeExpenseResponse_documentMetadata = Lens.lens (\AnalyzeExpenseResponse' {documentMetadata} -> documentMetadata) (\s@AnalyzeExpenseResponse' {} a -> s {documentMetadata = a} :: AnalyzeExpenseResponse)++-- | The expenses detected by Amazon Textract.+analyzeExpenseResponse_expenseDocuments :: Lens.Lens' AnalyzeExpenseResponse (Prelude.Maybe [ExpenseDocument])+analyzeExpenseResponse_expenseDocuments = Lens.lens (\AnalyzeExpenseResponse' {expenseDocuments} -> expenseDocuments) (\s@AnalyzeExpenseResponse' {} a -> s {expenseDocuments = a} :: AnalyzeExpenseResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+analyzeExpenseResponse_httpStatus :: Lens.Lens' AnalyzeExpenseResponse Prelude.Int+analyzeExpenseResponse_httpStatus = Lens.lens (\AnalyzeExpenseResponse' {httpStatus} -> httpStatus) (\s@AnalyzeExpenseResponse' {} a -> s {httpStatus = a} :: AnalyzeExpenseResponse)++instance Prelude.NFData AnalyzeExpenseResponse where+ rnf AnalyzeExpenseResponse' {..} =+ Prelude.rnf documentMetadata+ `Prelude.seq` Prelude.rnf expenseDocuments+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Textract/AnalyzeID.hs view
@@ -0,0 +1,202 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.AnalyzeID+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Analyzes identity documents for relevant information. This information+-- is extracted and returned as @IdentityDocumentFields@, which records+-- both the normalized field and value of the extracted text.Unlike other+-- Amazon Textract operations, @AnalyzeID@ doesn\'t return any Geometry+-- data.+module Amazonka.Textract.AnalyzeID+ ( -- * Creating a Request+ AnalyzeID (..),+ newAnalyzeID,++ -- * Request Lenses+ analyzeID_documentPages,++ -- * Destructuring the Response+ AnalyzeIDResponse (..),+ newAnalyzeIDResponse,++ -- * Response Lenses+ analyzeIDResponse_analyzeIDModelVersion,+ analyzeIDResponse_documentMetadata,+ analyzeIDResponse_identityDocuments,+ analyzeIDResponse_httpStatus,+ )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Textract.Types++-- | /See:/ 'newAnalyzeID' smart constructor.+data AnalyzeID = AnalyzeID'+ { -- | The document being passed to AnalyzeID.+ documentPages :: Prelude.NonEmpty Document+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnalyzeID' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentPages', 'analyzeID_documentPages' - The document being passed to AnalyzeID.+newAnalyzeID ::+ -- | 'documentPages'+ Prelude.NonEmpty Document ->+ AnalyzeID+newAnalyzeID pDocumentPages_ =+ AnalyzeID'+ { documentPages =+ Lens.coerced Lens.# pDocumentPages_+ }++-- | The document being passed to AnalyzeID.+analyzeID_documentPages :: Lens.Lens' AnalyzeID (Prelude.NonEmpty Document)+analyzeID_documentPages = Lens.lens (\AnalyzeID' {documentPages} -> documentPages) (\s@AnalyzeID' {} a -> s {documentPages = a} :: AnalyzeID) Prelude.. Lens.coerced++instance Core.AWSRequest AnalyzeID where+ type AWSResponse AnalyzeID = AnalyzeIDResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ AnalyzeIDResponse'+ Prelude.<$> (x Data..?> "AnalyzeIDModelVersion")+ Prelude.<*> (x Data..?> "DocumentMetadata")+ Prelude.<*> ( x+ Data..?> "IdentityDocuments"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable AnalyzeID where+ hashWithSalt _salt AnalyzeID' {..} =+ _salt `Prelude.hashWithSalt` documentPages++instance Prelude.NFData AnalyzeID where+ rnf AnalyzeID' {..} = Prelude.rnf documentPages++instance Data.ToHeaders AnalyzeID where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ("Textract.AnalyzeID" :: Prelude.ByteString),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON AnalyzeID where+ toJSON AnalyzeID' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("DocumentPages" Data..= documentPages)+ ]+ )++instance Data.ToPath AnalyzeID where+ toPath = Prelude.const "/"++instance Data.ToQuery AnalyzeID where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAnalyzeIDResponse' smart constructor.+data AnalyzeIDResponse = AnalyzeIDResponse'+ { -- | The version of the AnalyzeIdentity API being used to process documents.+ analyzeIDModelVersion :: Prelude.Maybe Prelude.Text,+ documentMetadata :: Prelude.Maybe DocumentMetadata,+ -- | The list of documents processed by AnalyzeID. Includes a number denoting+ -- their place in the list and the response structure for the document.+ identityDocuments :: Prelude.Maybe [IdentityDocument],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnalyzeIDResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analyzeIDModelVersion', 'analyzeIDResponse_analyzeIDModelVersion' - The version of the AnalyzeIdentity API being used to process documents.+--+-- 'documentMetadata', 'analyzeIDResponse_documentMetadata' - Undocumented member.+--+-- 'identityDocuments', 'analyzeIDResponse_identityDocuments' - The list of documents processed by AnalyzeID. Includes a number denoting+-- their place in the list and the response structure for the document.+--+-- 'httpStatus', 'analyzeIDResponse_httpStatus' - The response's http status code.+newAnalyzeIDResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ AnalyzeIDResponse+newAnalyzeIDResponse pHttpStatus_ =+ AnalyzeIDResponse'+ { analyzeIDModelVersion =+ Prelude.Nothing,+ documentMetadata = Prelude.Nothing,+ identityDocuments = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The version of the AnalyzeIdentity API being used to process documents.+analyzeIDResponse_analyzeIDModelVersion :: Lens.Lens' AnalyzeIDResponse (Prelude.Maybe Prelude.Text)+analyzeIDResponse_analyzeIDModelVersion = Lens.lens (\AnalyzeIDResponse' {analyzeIDModelVersion} -> analyzeIDModelVersion) (\s@AnalyzeIDResponse' {} a -> s {analyzeIDModelVersion = a} :: AnalyzeIDResponse)++-- | Undocumented member.+analyzeIDResponse_documentMetadata :: Lens.Lens' AnalyzeIDResponse (Prelude.Maybe DocumentMetadata)+analyzeIDResponse_documentMetadata = Lens.lens (\AnalyzeIDResponse' {documentMetadata} -> documentMetadata) (\s@AnalyzeIDResponse' {} a -> s {documentMetadata = a} :: AnalyzeIDResponse)++-- | The list of documents processed by AnalyzeID. Includes a number denoting+-- their place in the list and the response structure for the document.+analyzeIDResponse_identityDocuments :: Lens.Lens' AnalyzeIDResponse (Prelude.Maybe [IdentityDocument])+analyzeIDResponse_identityDocuments = Lens.lens (\AnalyzeIDResponse' {identityDocuments} -> identityDocuments) (\s@AnalyzeIDResponse' {} a -> s {identityDocuments = a} :: AnalyzeIDResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+analyzeIDResponse_httpStatus :: Lens.Lens' AnalyzeIDResponse Prelude.Int+analyzeIDResponse_httpStatus = Lens.lens (\AnalyzeIDResponse' {httpStatus} -> httpStatus) (\s@AnalyzeIDResponse' {} a -> s {httpStatus = a} :: AnalyzeIDResponse)++instance Prelude.NFData AnalyzeIDResponse where+ rnf AnalyzeIDResponse' {..} =+ Prelude.rnf analyzeIDModelVersion+ `Prelude.seq` Prelude.rnf documentMetadata+ `Prelude.seq` Prelude.rnf identityDocuments+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Textract/DetectDocumentText.hs view
@@ -0,0 +1,228 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.DetectDocumentText+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Detects text in the input document. Amazon Textract can detect lines of+-- text and the words that make up a line of text. The input document must+-- be in one of the following image formats: JPEG, PNG, PDF, or TIFF.+-- @DetectDocumentText@ returns the detected text in an array of Block+-- objects.+--+-- Each document page has as an associated @Block@ of type PAGE. Each PAGE+-- @Block@ object is the parent of LINE @Block@ objects that represent the+-- lines of detected text on a page. A LINE @Block@ object is a parent for+-- each word that makes up the line. Words are represented by @Block@+-- objects of type WORD.+--+-- @DetectDocumentText@ is a synchronous operation. To analyze documents+-- asynchronously, use StartDocumentTextDetection.+--+-- For more information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/how-it-works-detecting.html Document Text Detection>.+module Amazonka.Textract.DetectDocumentText+ ( -- * Creating a Request+ DetectDocumentText (..),+ newDetectDocumentText,++ -- * Request Lenses+ detectDocumentText_document,++ -- * Destructuring the Response+ DetectDocumentTextResponse (..),+ newDetectDocumentTextResponse,++ -- * Response Lenses+ detectDocumentTextResponse_blocks,+ detectDocumentTextResponse_detectDocumentTextModelVersion,+ detectDocumentTextResponse_documentMetadata,+ detectDocumentTextResponse_httpStatus,+ )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Textract.Types++-- | /See:/ 'newDetectDocumentText' smart constructor.+data DetectDocumentText = DetectDocumentText'+ { -- | The input document as base64-encoded bytes or an Amazon S3 object. If+ -- you use the AWS CLI to call Amazon Textract operations, you can\'t pass+ -- image bytes. The document must be an image in JPEG or PNG format.+ --+ -- If you\'re using an AWS SDK to call Amazon Textract, you might not need+ -- to base64-encode image bytes that are passed using the @Bytes@ field.+ document :: Document+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectDocumentText' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'document', 'detectDocumentText_document' - The input document as base64-encoded bytes or an Amazon S3 object. If+-- you use the AWS CLI to call Amazon Textract operations, you can\'t pass+-- image bytes. The document must be an image in JPEG or PNG format.+--+-- If you\'re using an AWS SDK to call Amazon Textract, you might not need+-- to base64-encode image bytes that are passed using the @Bytes@ field.+newDetectDocumentText ::+ -- | 'document'+ Document ->+ DetectDocumentText+newDetectDocumentText pDocument_ =+ DetectDocumentText' {document = pDocument_}++-- | The input document as base64-encoded bytes or an Amazon S3 object. If+-- you use the AWS CLI to call Amazon Textract operations, you can\'t pass+-- image bytes. The document must be an image in JPEG or PNG format.+--+-- If you\'re using an AWS SDK to call Amazon Textract, you might not need+-- to base64-encode image bytes that are passed using the @Bytes@ field.+detectDocumentText_document :: Lens.Lens' DetectDocumentText Document+detectDocumentText_document = Lens.lens (\DetectDocumentText' {document} -> document) (\s@DetectDocumentText' {} a -> s {document = a} :: DetectDocumentText)++instance Core.AWSRequest DetectDocumentText where+ type+ AWSResponse DetectDocumentText =+ DetectDocumentTextResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DetectDocumentTextResponse'+ Prelude.<$> (x Data..?> "Blocks" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "DetectDocumentTextModelVersion")+ Prelude.<*> (x Data..?> "DocumentMetadata")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DetectDocumentText where+ hashWithSalt _salt DetectDocumentText' {..} =+ _salt `Prelude.hashWithSalt` document++instance Prelude.NFData DetectDocumentText where+ rnf DetectDocumentText' {..} = Prelude.rnf document++instance Data.ToHeaders DetectDocumentText where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "Textract.DetectDocumentText" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DetectDocumentText where+ toJSON DetectDocumentText' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Document" Data..= document)]+ )++instance Data.ToPath DetectDocumentText where+ toPath = Prelude.const "/"++instance Data.ToQuery DetectDocumentText where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDetectDocumentTextResponse' smart constructor.+data DetectDocumentTextResponse = DetectDocumentTextResponse'+ { -- | An array of @Block@ objects that contain the text that\'s detected in+ -- the document.+ blocks :: Prelude.Maybe [Block],+ detectDocumentTextModelVersion :: Prelude.Maybe Prelude.Text,+ -- | Metadata about the document. It contains the number of pages that are+ -- detected in the document.+ documentMetadata :: Prelude.Maybe DocumentMetadata,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectDocumentTextResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'blocks', 'detectDocumentTextResponse_blocks' - An array of @Block@ objects that contain the text that\'s detected in+-- the document.+--+-- 'detectDocumentTextModelVersion', 'detectDocumentTextResponse_detectDocumentTextModelVersion' -+--+-- 'documentMetadata', 'detectDocumentTextResponse_documentMetadata' - Metadata about the document. It contains the number of pages that are+-- detected in the document.+--+-- 'httpStatus', 'detectDocumentTextResponse_httpStatus' - The response's http status code.+newDetectDocumentTextResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DetectDocumentTextResponse+newDetectDocumentTextResponse pHttpStatus_ =+ DetectDocumentTextResponse'+ { blocks =+ Prelude.Nothing,+ detectDocumentTextModelVersion =+ Prelude.Nothing,+ documentMetadata = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An array of @Block@ objects that contain the text that\'s detected in+-- the document.+detectDocumentTextResponse_blocks :: Lens.Lens' DetectDocumentTextResponse (Prelude.Maybe [Block])+detectDocumentTextResponse_blocks = Lens.lens (\DetectDocumentTextResponse' {blocks} -> blocks) (\s@DetectDocumentTextResponse' {} a -> s {blocks = a} :: DetectDocumentTextResponse) Prelude.. Lens.mapping Lens.coerced++detectDocumentTextResponse_detectDocumentTextModelVersion :: Lens.Lens' DetectDocumentTextResponse (Prelude.Maybe Prelude.Text)+detectDocumentTextResponse_detectDocumentTextModelVersion = Lens.lens (\DetectDocumentTextResponse' {detectDocumentTextModelVersion} -> detectDocumentTextModelVersion) (\s@DetectDocumentTextResponse' {} a -> s {detectDocumentTextModelVersion = a} :: DetectDocumentTextResponse)++-- | Metadata about the document. It contains the number of pages that are+-- detected in the document.+detectDocumentTextResponse_documentMetadata :: Lens.Lens' DetectDocumentTextResponse (Prelude.Maybe DocumentMetadata)+detectDocumentTextResponse_documentMetadata = Lens.lens (\DetectDocumentTextResponse' {documentMetadata} -> documentMetadata) (\s@DetectDocumentTextResponse' {} a -> s {documentMetadata = a} :: DetectDocumentTextResponse)++-- | The response's http status code.+detectDocumentTextResponse_httpStatus :: Lens.Lens' DetectDocumentTextResponse Prelude.Int+detectDocumentTextResponse_httpStatus = Lens.lens (\DetectDocumentTextResponse' {httpStatus} -> httpStatus) (\s@DetectDocumentTextResponse' {} a -> s {httpStatus = a} :: DetectDocumentTextResponse)++instance Prelude.NFData DetectDocumentTextResponse where+ rnf DetectDocumentTextResponse' {..} =+ Prelude.rnf blocks+ `Prelude.seq` Prelude.rnf detectDocumentTextModelVersion+ `Prelude.seq` Prelude.rnf documentMetadata+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Textract/GetDocumentAnalysis.hs view
@@ -0,0 +1,363 @@+{-# 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.Textract.GetDocumentAnalysis+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the results for an Amazon Textract asynchronous operation that+-- analyzes text in a document.+--+-- You start asynchronous text analysis by calling StartDocumentAnalysis,+-- which returns a job identifier (@JobId@). When the text analysis+-- operation finishes, Amazon Textract publishes a completion status to the+-- Amazon Simple Notification Service (Amazon SNS) topic that\'s registered+-- in the initial call to @StartDocumentAnalysis@. To get the results of+-- the text-detection operation, first check that the status value+-- published to the Amazon SNS topic is @SUCCEEDED@. If so, call+-- @GetDocumentAnalysis@, and pass the job identifier (@JobId@) from the+-- initial call to @StartDocumentAnalysis@.+--+-- @GetDocumentAnalysis@ returns an array of Block objects. The following+-- types of information are returned:+--+-- - Form data (key-value pairs). The related information is returned in+-- two Block objects, each of type @KEY_VALUE_SET@: a KEY @Block@+-- object and a VALUE @Block@ object. For example, /Name: Ana Silva+-- Carolina/ contains a key and value. /Name:/ is the key. /Ana Silva+-- Carolina/ is the value.+--+-- - Table and table cell data. A TABLE @Block@ object contains+-- information about a detected table. A CELL @Block@ object is+-- returned for each cell in a table.+--+-- - Lines and words of text. A LINE @Block@ object contains one or more+-- WORD @Block@ objects. All lines and words that are detected in the+-- document are returned (including text that doesn\'t have a+-- relationship with the value of the @StartDocumentAnalysis@+-- @FeatureTypes@ input parameter).+--+-- - Query. A QUERY Block object contains the query text, alias and link+-- to the associated Query results block object.+--+-- - Query Results. A QUERY_RESULT Block object contains the answer to+-- the query and an ID that connects it to the query asked. This Block+-- also contains a confidence score.+--+-- While processing a document with queries, look out for+-- @INVALID_REQUEST_PARAMETERS@ output. This indicates that either the per+-- page query limit has been exceeded or that the operation is trying to+-- query a page in the document which doesn’t exist.+--+-- Selection elements such as check boxes and option buttons (radio+-- buttons) can be detected in form data and in tables. A SELECTION_ELEMENT+-- @Block@ object contains information about a selection element, including+-- the selection status.+--+-- Use the @MaxResults@ parameter to limit the number of blocks that are+-- returned. If there are more results than specified in @MaxResults@, the+-- value of @NextToken@ in the operation response contains a pagination+-- token for getting the next set of results. To get the next page of+-- results, call @GetDocumentAnalysis@, and populate the @NextToken@+-- request parameter with the token value that\'s returned from the+-- previous call to @GetDocumentAnalysis@.+--+-- For more information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/how-it-works-analyzing.html Document Text Analysis>.+module Amazonka.Textract.GetDocumentAnalysis+ ( -- * Creating a Request+ GetDocumentAnalysis (..),+ newGetDocumentAnalysis,++ -- * Request Lenses+ getDocumentAnalysis_maxResults,+ getDocumentAnalysis_nextToken,+ getDocumentAnalysis_jobId,++ -- * Destructuring the Response+ GetDocumentAnalysisResponse (..),+ newGetDocumentAnalysisResponse,++ -- * Response Lenses+ getDocumentAnalysisResponse_analyzeDocumentModelVersion,+ getDocumentAnalysisResponse_blocks,+ getDocumentAnalysisResponse_documentMetadata,+ getDocumentAnalysisResponse_jobStatus,+ getDocumentAnalysisResponse_nextToken,+ getDocumentAnalysisResponse_statusMessage,+ getDocumentAnalysisResponse_warnings,+ getDocumentAnalysisResponse_httpStatus,+ )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Textract.Types++-- | /See:/ 'newGetDocumentAnalysis' smart constructor.+data GetDocumentAnalysis = GetDocumentAnalysis'+ { -- | The maximum number of results to return per paginated call. The largest+ -- value that you can specify is 1,000. If you specify a value greater than+ -- 1,000, a maximum of 1,000 results is returned. The default value is+ -- 1,000.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | If the previous response was incomplete (because there are more blocks+ -- to retrieve), Amazon Textract returns a pagination token in the+ -- response. You can use this pagination token to retrieve the next set of+ -- blocks.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the text-detection job. The @JobId@ is returned+ -- from @StartDocumentAnalysis@. A @JobId@ value is only valid for 7 days.+ jobId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDocumentAnalysis' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getDocumentAnalysis_maxResults' - The maximum number of results to return per paginated call. The largest+-- value that you can specify is 1,000. If you specify a value greater than+-- 1,000, a maximum of 1,000 results is returned. The default value is+-- 1,000.+--+-- 'nextToken', 'getDocumentAnalysis_nextToken' - If the previous response was incomplete (because there are more blocks+-- to retrieve), Amazon Textract returns a pagination token in the+-- response. You can use this pagination token to retrieve the next set of+-- blocks.+--+-- 'jobId', 'getDocumentAnalysis_jobId' - A unique identifier for the text-detection job. The @JobId@ is returned+-- from @StartDocumentAnalysis@. A @JobId@ value is only valid for 7 days.+newGetDocumentAnalysis ::+ -- | 'jobId'+ Prelude.Text ->+ GetDocumentAnalysis+newGetDocumentAnalysis pJobId_ =+ GetDocumentAnalysis'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ jobId = pJobId_+ }++-- | The maximum number of results to return per paginated call. The largest+-- value that you can specify is 1,000. If you specify a value greater than+-- 1,000, a maximum of 1,000 results is returned. The default value is+-- 1,000.+getDocumentAnalysis_maxResults :: Lens.Lens' GetDocumentAnalysis (Prelude.Maybe Prelude.Natural)+getDocumentAnalysis_maxResults = Lens.lens (\GetDocumentAnalysis' {maxResults} -> maxResults) (\s@GetDocumentAnalysis' {} a -> s {maxResults = a} :: GetDocumentAnalysis)++-- | If the previous response was incomplete (because there are more blocks+-- to retrieve), Amazon Textract returns a pagination token in the+-- response. You can use this pagination token to retrieve the next set of+-- blocks.+getDocumentAnalysis_nextToken :: Lens.Lens' GetDocumentAnalysis (Prelude.Maybe Prelude.Text)+getDocumentAnalysis_nextToken = Lens.lens (\GetDocumentAnalysis' {nextToken} -> nextToken) (\s@GetDocumentAnalysis' {} a -> s {nextToken = a} :: GetDocumentAnalysis)++-- | A unique identifier for the text-detection job. The @JobId@ is returned+-- from @StartDocumentAnalysis@. A @JobId@ value is only valid for 7 days.+getDocumentAnalysis_jobId :: Lens.Lens' GetDocumentAnalysis Prelude.Text+getDocumentAnalysis_jobId = Lens.lens (\GetDocumentAnalysis' {jobId} -> jobId) (\s@GetDocumentAnalysis' {} a -> s {jobId = a} :: GetDocumentAnalysis)++instance Core.AWSRequest GetDocumentAnalysis where+ type+ AWSResponse GetDocumentAnalysis =+ GetDocumentAnalysisResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetDocumentAnalysisResponse'+ Prelude.<$> (x Data..?> "AnalyzeDocumentModelVersion")+ Prelude.<*> (x Data..?> "Blocks" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "DocumentMetadata")+ Prelude.<*> (x Data..?> "JobStatus")+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "StatusMessage")+ Prelude.<*> (x Data..?> "Warnings" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetDocumentAnalysis where+ hashWithSalt _salt GetDocumentAnalysis' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` jobId++instance Prelude.NFData GetDocumentAnalysis where+ rnf GetDocumentAnalysis' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf jobId++instance Data.ToHeaders GetDocumentAnalysis where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "Textract.GetDocumentAnalysis" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetDocumentAnalysis where+ toJSON GetDocumentAnalysis' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("JobId" Data..= jobId)+ ]+ )++instance Data.ToPath GetDocumentAnalysis where+ toPath = Prelude.const "/"++instance Data.ToQuery GetDocumentAnalysis where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDocumentAnalysisResponse' smart constructor.+data GetDocumentAnalysisResponse = GetDocumentAnalysisResponse'+ { analyzeDocumentModelVersion :: Prelude.Maybe Prelude.Text,+ -- | The results of the text-analysis operation.+ blocks :: Prelude.Maybe [Block],+ -- | Information about a document that Amazon Textract processed.+ -- @DocumentMetadata@ is returned in every page of paginated responses from+ -- an Amazon Textract video operation.+ documentMetadata :: Prelude.Maybe DocumentMetadata,+ -- | The current status of the text detection job.+ jobStatus :: Prelude.Maybe JobStatus,+ -- | If the response is truncated, Amazon Textract returns this token. You+ -- can use this token in the subsequent request to retrieve the next set of+ -- text detection results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Returns if the detection job could not be completed. Contains+ -- explanation for what error occured.+ statusMessage :: Prelude.Maybe Prelude.Text,+ -- | A list of warnings that occurred during the document-analysis operation.+ warnings :: Prelude.Maybe [Warning],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDocumentAnalysisResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analyzeDocumentModelVersion', 'getDocumentAnalysisResponse_analyzeDocumentModelVersion' -+--+-- 'blocks', 'getDocumentAnalysisResponse_blocks' - The results of the text-analysis operation.+--+-- 'documentMetadata', 'getDocumentAnalysisResponse_documentMetadata' - Information about a document that Amazon Textract processed.+-- @DocumentMetadata@ is returned in every page of paginated responses from+-- an Amazon Textract video operation.+--+-- 'jobStatus', 'getDocumentAnalysisResponse_jobStatus' - The current status of the text detection job.+--+-- 'nextToken', 'getDocumentAnalysisResponse_nextToken' - If the response is truncated, Amazon Textract returns this token. You+-- can use this token in the subsequent request to retrieve the next set of+-- text detection results.+--+-- 'statusMessage', 'getDocumentAnalysisResponse_statusMessage' - Returns if the detection job could not be completed. Contains+-- explanation for what error occured.+--+-- 'warnings', 'getDocumentAnalysisResponse_warnings' - A list of warnings that occurred during the document-analysis operation.+--+-- 'httpStatus', 'getDocumentAnalysisResponse_httpStatus' - The response's http status code.+newGetDocumentAnalysisResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetDocumentAnalysisResponse+newGetDocumentAnalysisResponse pHttpStatus_ =+ GetDocumentAnalysisResponse'+ { analyzeDocumentModelVersion =+ Prelude.Nothing,+ blocks = Prelude.Nothing,+ documentMetadata = Prelude.Nothing,+ jobStatus = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ statusMessage = Prelude.Nothing,+ warnings = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++getDocumentAnalysisResponse_analyzeDocumentModelVersion :: Lens.Lens' GetDocumentAnalysisResponse (Prelude.Maybe Prelude.Text)+getDocumentAnalysisResponse_analyzeDocumentModelVersion = Lens.lens (\GetDocumentAnalysisResponse' {analyzeDocumentModelVersion} -> analyzeDocumentModelVersion) (\s@GetDocumentAnalysisResponse' {} a -> s {analyzeDocumentModelVersion = a} :: GetDocumentAnalysisResponse)++-- | The results of the text-analysis operation.+getDocumentAnalysisResponse_blocks :: Lens.Lens' GetDocumentAnalysisResponse (Prelude.Maybe [Block])+getDocumentAnalysisResponse_blocks = Lens.lens (\GetDocumentAnalysisResponse' {blocks} -> blocks) (\s@GetDocumentAnalysisResponse' {} a -> s {blocks = a} :: GetDocumentAnalysisResponse) Prelude.. Lens.mapping Lens.coerced++-- | Information about a document that Amazon Textract processed.+-- @DocumentMetadata@ is returned in every page of paginated responses from+-- an Amazon Textract video operation.+getDocumentAnalysisResponse_documentMetadata :: Lens.Lens' GetDocumentAnalysisResponse (Prelude.Maybe DocumentMetadata)+getDocumentAnalysisResponse_documentMetadata = Lens.lens (\GetDocumentAnalysisResponse' {documentMetadata} -> documentMetadata) (\s@GetDocumentAnalysisResponse' {} a -> s {documentMetadata = a} :: GetDocumentAnalysisResponse)++-- | The current status of the text detection job.+getDocumentAnalysisResponse_jobStatus :: Lens.Lens' GetDocumentAnalysisResponse (Prelude.Maybe JobStatus)+getDocumentAnalysisResponse_jobStatus = Lens.lens (\GetDocumentAnalysisResponse' {jobStatus} -> jobStatus) (\s@GetDocumentAnalysisResponse' {} a -> s {jobStatus = a} :: GetDocumentAnalysisResponse)++-- | If the response is truncated, Amazon Textract returns this token. You+-- can use this token in the subsequent request to retrieve the next set of+-- text detection results.+getDocumentAnalysisResponse_nextToken :: Lens.Lens' GetDocumentAnalysisResponse (Prelude.Maybe Prelude.Text)+getDocumentAnalysisResponse_nextToken = Lens.lens (\GetDocumentAnalysisResponse' {nextToken} -> nextToken) (\s@GetDocumentAnalysisResponse' {} a -> s {nextToken = a} :: GetDocumentAnalysisResponse)++-- | Returns if the detection job could not be completed. Contains+-- explanation for what error occured.+getDocumentAnalysisResponse_statusMessage :: Lens.Lens' GetDocumentAnalysisResponse (Prelude.Maybe Prelude.Text)+getDocumentAnalysisResponse_statusMessage = Lens.lens (\GetDocumentAnalysisResponse' {statusMessage} -> statusMessage) (\s@GetDocumentAnalysisResponse' {} a -> s {statusMessage = a} :: GetDocumentAnalysisResponse)++-- | A list of warnings that occurred during the document-analysis operation.+getDocumentAnalysisResponse_warnings :: Lens.Lens' GetDocumentAnalysisResponse (Prelude.Maybe [Warning])+getDocumentAnalysisResponse_warnings = Lens.lens (\GetDocumentAnalysisResponse' {warnings} -> warnings) (\s@GetDocumentAnalysisResponse' {} a -> s {warnings = a} :: GetDocumentAnalysisResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getDocumentAnalysisResponse_httpStatus :: Lens.Lens' GetDocumentAnalysisResponse Prelude.Int+getDocumentAnalysisResponse_httpStatus = Lens.lens (\GetDocumentAnalysisResponse' {httpStatus} -> httpStatus) (\s@GetDocumentAnalysisResponse' {} a -> s {httpStatus = a} :: GetDocumentAnalysisResponse)++instance Prelude.NFData GetDocumentAnalysisResponse where+ rnf GetDocumentAnalysisResponse' {..} =+ Prelude.rnf analyzeDocumentModelVersion+ `Prelude.seq` Prelude.rnf blocks+ `Prelude.seq` Prelude.rnf documentMetadata+ `Prelude.seq` Prelude.rnf jobStatus+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf statusMessage+ `Prelude.seq` Prelude.rnf warnings+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Textract/GetDocumentTextDetection.hs view
@@ -0,0 +1,348 @@+{-# 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.Textract.GetDocumentTextDetection+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the results for an Amazon Textract asynchronous operation that+-- detects text in a document. Amazon Textract can detect lines of text and+-- the words that make up a line of text.+--+-- You start asynchronous text detection by calling+-- StartDocumentTextDetection, which returns a job identifier (@JobId@).+-- When the text detection operation finishes, Amazon Textract publishes a+-- completion status to the Amazon Simple Notification Service (Amazon SNS)+-- topic that\'s registered in the initial call to+-- @StartDocumentTextDetection@. To get the results of the text-detection+-- operation, first check that the status value published to the Amazon SNS+-- topic is @SUCCEEDED@. If so, call @GetDocumentTextDetection@, and pass+-- the job identifier (@JobId@) from the initial call to+-- @StartDocumentTextDetection@.+--+-- @GetDocumentTextDetection@ returns an array of Block objects.+--+-- Each document page has as an associated @Block@ of type PAGE. Each PAGE+-- @Block@ object is the parent of LINE @Block@ objects that represent the+-- lines of detected text on a page. A LINE @Block@ object is a parent for+-- each word that makes up the line. Words are represented by @Block@+-- objects of type WORD.+--+-- Use the MaxResults parameter to limit the number of blocks that are+-- returned. If there are more results than specified in @MaxResults@, the+-- value of @NextToken@ in the operation response contains a pagination+-- token for getting the next set of results. To get the next page of+-- results, call @GetDocumentTextDetection@, and populate the @NextToken@+-- request parameter with the token value that\'s returned from the+-- previous call to @GetDocumentTextDetection@.+--+-- For more information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/how-it-works-detecting.html Document Text Detection>.+module Amazonka.Textract.GetDocumentTextDetection+ ( -- * Creating a Request+ GetDocumentTextDetection (..),+ newGetDocumentTextDetection,++ -- * Request Lenses+ getDocumentTextDetection_maxResults,+ getDocumentTextDetection_nextToken,+ getDocumentTextDetection_jobId,++ -- * Destructuring the Response+ GetDocumentTextDetectionResponse (..),+ newGetDocumentTextDetectionResponse,++ -- * Response Lenses+ getDocumentTextDetectionResponse_blocks,+ getDocumentTextDetectionResponse_detectDocumentTextModelVersion,+ getDocumentTextDetectionResponse_documentMetadata,+ getDocumentTextDetectionResponse_jobStatus,+ getDocumentTextDetectionResponse_nextToken,+ getDocumentTextDetectionResponse_statusMessage,+ getDocumentTextDetectionResponse_warnings,+ getDocumentTextDetectionResponse_httpStatus,+ )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Textract.Types++-- | /See:/ 'newGetDocumentTextDetection' smart constructor.+data GetDocumentTextDetection = GetDocumentTextDetection'+ { -- | The maximum number of results to return per paginated call. The largest+ -- value you can specify is 1,000. If you specify a value greater than+ -- 1,000, a maximum of 1,000 results is returned. The default value is+ -- 1,000.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | If the previous response was incomplete (because there are more blocks+ -- to retrieve), Amazon Textract returns a pagination token in the+ -- response. You can use this pagination token to retrieve the next set of+ -- blocks.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the text detection job. The @JobId@ is returned+ -- from @StartDocumentTextDetection@. A @JobId@ value is only valid for 7+ -- days.+ jobId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDocumentTextDetection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getDocumentTextDetection_maxResults' - The maximum number of results to return per paginated call. The largest+-- value you can specify is 1,000. If you specify a value greater than+-- 1,000, a maximum of 1,000 results is returned. The default value is+-- 1,000.+--+-- 'nextToken', 'getDocumentTextDetection_nextToken' - If the previous response was incomplete (because there are more blocks+-- to retrieve), Amazon Textract returns a pagination token in the+-- response. You can use this pagination token to retrieve the next set of+-- blocks.+--+-- 'jobId', 'getDocumentTextDetection_jobId' - A unique identifier for the text detection job. The @JobId@ is returned+-- from @StartDocumentTextDetection@. A @JobId@ value is only valid for 7+-- days.+newGetDocumentTextDetection ::+ -- | 'jobId'+ Prelude.Text ->+ GetDocumentTextDetection+newGetDocumentTextDetection pJobId_ =+ GetDocumentTextDetection'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ jobId = pJobId_+ }++-- | The maximum number of results to return per paginated call. The largest+-- value you can specify is 1,000. If you specify a value greater than+-- 1,000, a maximum of 1,000 results is returned. The default value is+-- 1,000.+getDocumentTextDetection_maxResults :: Lens.Lens' GetDocumentTextDetection (Prelude.Maybe Prelude.Natural)+getDocumentTextDetection_maxResults = Lens.lens (\GetDocumentTextDetection' {maxResults} -> maxResults) (\s@GetDocumentTextDetection' {} a -> s {maxResults = a} :: GetDocumentTextDetection)++-- | If the previous response was incomplete (because there are more blocks+-- to retrieve), Amazon Textract returns a pagination token in the+-- response. You can use this pagination token to retrieve the next set of+-- blocks.+getDocumentTextDetection_nextToken :: Lens.Lens' GetDocumentTextDetection (Prelude.Maybe Prelude.Text)+getDocumentTextDetection_nextToken = Lens.lens (\GetDocumentTextDetection' {nextToken} -> nextToken) (\s@GetDocumentTextDetection' {} a -> s {nextToken = a} :: GetDocumentTextDetection)++-- | A unique identifier for the text detection job. The @JobId@ is returned+-- from @StartDocumentTextDetection@. A @JobId@ value is only valid for 7+-- days.+getDocumentTextDetection_jobId :: Lens.Lens' GetDocumentTextDetection Prelude.Text+getDocumentTextDetection_jobId = Lens.lens (\GetDocumentTextDetection' {jobId} -> jobId) (\s@GetDocumentTextDetection' {} a -> s {jobId = a} :: GetDocumentTextDetection)++instance Core.AWSRequest GetDocumentTextDetection where+ type+ AWSResponse GetDocumentTextDetection =+ GetDocumentTextDetectionResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetDocumentTextDetectionResponse'+ Prelude.<$> (x Data..?> "Blocks" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "DetectDocumentTextModelVersion")+ Prelude.<*> (x Data..?> "DocumentMetadata")+ Prelude.<*> (x Data..?> "JobStatus")+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "StatusMessage")+ Prelude.<*> (x Data..?> "Warnings" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetDocumentTextDetection where+ hashWithSalt _salt GetDocumentTextDetection' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` jobId++instance Prelude.NFData GetDocumentTextDetection where+ rnf GetDocumentTextDetection' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf jobId++instance Data.ToHeaders GetDocumentTextDetection where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "Textract.GetDocumentTextDetection" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetDocumentTextDetection where+ toJSON GetDocumentTextDetection' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("JobId" Data..= jobId)+ ]+ )++instance Data.ToPath GetDocumentTextDetection where+ toPath = Prelude.const "/"++instance Data.ToQuery GetDocumentTextDetection where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDocumentTextDetectionResponse' smart constructor.+data GetDocumentTextDetectionResponse = GetDocumentTextDetectionResponse'+ { -- | The results of the text-detection operation.+ blocks :: Prelude.Maybe [Block],+ detectDocumentTextModelVersion :: Prelude.Maybe Prelude.Text,+ -- | Information about a document that Amazon Textract processed.+ -- @DocumentMetadata@ is returned in every page of paginated responses from+ -- an Amazon Textract video operation.+ documentMetadata :: Prelude.Maybe DocumentMetadata,+ -- | The current status of the text detection job.+ jobStatus :: Prelude.Maybe JobStatus,+ -- | If the response is truncated, Amazon Textract returns this token. You+ -- can use this token in the subsequent request to retrieve the next set of+ -- text-detection results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Returns if the detection job could not be completed. Contains+ -- explanation for what error occured.+ statusMessage :: Prelude.Maybe Prelude.Text,+ -- | A list of warnings that occurred during the text-detection operation for+ -- the document.+ warnings :: Prelude.Maybe [Warning],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDocumentTextDetectionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'blocks', 'getDocumentTextDetectionResponse_blocks' - The results of the text-detection operation.+--+-- 'detectDocumentTextModelVersion', 'getDocumentTextDetectionResponse_detectDocumentTextModelVersion' -+--+-- 'documentMetadata', 'getDocumentTextDetectionResponse_documentMetadata' - Information about a document that Amazon Textract processed.+-- @DocumentMetadata@ is returned in every page of paginated responses from+-- an Amazon Textract video operation.+--+-- 'jobStatus', 'getDocumentTextDetectionResponse_jobStatus' - The current status of the text detection job.+--+-- 'nextToken', 'getDocumentTextDetectionResponse_nextToken' - If the response is truncated, Amazon Textract returns this token. You+-- can use this token in the subsequent request to retrieve the next set of+-- text-detection results.+--+-- 'statusMessage', 'getDocumentTextDetectionResponse_statusMessage' - Returns if the detection job could not be completed. Contains+-- explanation for what error occured.+--+-- 'warnings', 'getDocumentTextDetectionResponse_warnings' - A list of warnings that occurred during the text-detection operation for+-- the document.+--+-- 'httpStatus', 'getDocumentTextDetectionResponse_httpStatus' - The response's http status code.+newGetDocumentTextDetectionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetDocumentTextDetectionResponse+newGetDocumentTextDetectionResponse pHttpStatus_ =+ GetDocumentTextDetectionResponse'+ { blocks =+ Prelude.Nothing,+ detectDocumentTextModelVersion =+ Prelude.Nothing,+ documentMetadata = Prelude.Nothing,+ jobStatus = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ statusMessage = Prelude.Nothing,+ warnings = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The results of the text-detection operation.+getDocumentTextDetectionResponse_blocks :: Lens.Lens' GetDocumentTextDetectionResponse (Prelude.Maybe [Block])+getDocumentTextDetectionResponse_blocks = Lens.lens (\GetDocumentTextDetectionResponse' {blocks} -> blocks) (\s@GetDocumentTextDetectionResponse' {} a -> s {blocks = a} :: GetDocumentTextDetectionResponse) Prelude.. Lens.mapping Lens.coerced++getDocumentTextDetectionResponse_detectDocumentTextModelVersion :: Lens.Lens' GetDocumentTextDetectionResponse (Prelude.Maybe Prelude.Text)+getDocumentTextDetectionResponse_detectDocumentTextModelVersion = Lens.lens (\GetDocumentTextDetectionResponse' {detectDocumentTextModelVersion} -> detectDocumentTextModelVersion) (\s@GetDocumentTextDetectionResponse' {} a -> s {detectDocumentTextModelVersion = a} :: GetDocumentTextDetectionResponse)++-- | Information about a document that Amazon Textract processed.+-- @DocumentMetadata@ is returned in every page of paginated responses from+-- an Amazon Textract video operation.+getDocumentTextDetectionResponse_documentMetadata :: Lens.Lens' GetDocumentTextDetectionResponse (Prelude.Maybe DocumentMetadata)+getDocumentTextDetectionResponse_documentMetadata = Lens.lens (\GetDocumentTextDetectionResponse' {documentMetadata} -> documentMetadata) (\s@GetDocumentTextDetectionResponse' {} a -> s {documentMetadata = a} :: GetDocumentTextDetectionResponse)++-- | The current status of the text detection job.+getDocumentTextDetectionResponse_jobStatus :: Lens.Lens' GetDocumentTextDetectionResponse (Prelude.Maybe JobStatus)+getDocumentTextDetectionResponse_jobStatus = Lens.lens (\GetDocumentTextDetectionResponse' {jobStatus} -> jobStatus) (\s@GetDocumentTextDetectionResponse' {} a -> s {jobStatus = a} :: GetDocumentTextDetectionResponse)++-- | If the response is truncated, Amazon Textract returns this token. You+-- can use this token in the subsequent request to retrieve the next set of+-- text-detection results.+getDocumentTextDetectionResponse_nextToken :: Lens.Lens' GetDocumentTextDetectionResponse (Prelude.Maybe Prelude.Text)+getDocumentTextDetectionResponse_nextToken = Lens.lens (\GetDocumentTextDetectionResponse' {nextToken} -> nextToken) (\s@GetDocumentTextDetectionResponse' {} a -> s {nextToken = a} :: GetDocumentTextDetectionResponse)++-- | Returns if the detection job could not be completed. Contains+-- explanation for what error occured.+getDocumentTextDetectionResponse_statusMessage :: Lens.Lens' GetDocumentTextDetectionResponse (Prelude.Maybe Prelude.Text)+getDocumentTextDetectionResponse_statusMessage = Lens.lens (\GetDocumentTextDetectionResponse' {statusMessage} -> statusMessage) (\s@GetDocumentTextDetectionResponse' {} a -> s {statusMessage = a} :: GetDocumentTextDetectionResponse)++-- | A list of warnings that occurred during the text-detection operation for+-- the document.+getDocumentTextDetectionResponse_warnings :: Lens.Lens' GetDocumentTextDetectionResponse (Prelude.Maybe [Warning])+getDocumentTextDetectionResponse_warnings = Lens.lens (\GetDocumentTextDetectionResponse' {warnings} -> warnings) (\s@GetDocumentTextDetectionResponse' {} a -> s {warnings = a} :: GetDocumentTextDetectionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getDocumentTextDetectionResponse_httpStatus :: Lens.Lens' GetDocumentTextDetectionResponse Prelude.Int+getDocumentTextDetectionResponse_httpStatus = Lens.lens (\GetDocumentTextDetectionResponse' {httpStatus} -> httpStatus) (\s@GetDocumentTextDetectionResponse' {} a -> s {httpStatus = a} :: GetDocumentTextDetectionResponse)++instance+ Prelude.NFData+ GetDocumentTextDetectionResponse+ where+ rnf GetDocumentTextDetectionResponse' {..} =+ Prelude.rnf blocks+ `Prelude.seq` Prelude.rnf detectDocumentTextModelVersion+ `Prelude.seq` Prelude.rnf documentMetadata+ `Prelude.seq` Prelude.rnf jobStatus+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf statusMessage+ `Prelude.seq` Prelude.rnf warnings+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Textract/GetExpenseAnalysis.hs view
@@ -0,0 +1,335 @@+{-# 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.Textract.GetExpenseAnalysis+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the results for an Amazon Textract asynchronous operation that+-- analyzes invoices and receipts. Amazon Textract finds contact+-- information, items purchased, and vendor name, from input invoices and+-- receipts.+--+-- You start asynchronous invoice\/receipt analysis by calling+-- StartExpenseAnalysis, which returns a job identifier (@JobId@). Upon+-- completion of the invoice\/receipt analysis, Amazon Textract publishes+-- the completion status to the Amazon Simple Notification Service (Amazon+-- SNS) topic. This topic must be registered in the initial call to+-- @StartExpenseAnalysis@. To get the results of the invoice\/receipt+-- analysis operation, first ensure that the status value published to the+-- Amazon SNS topic is @SUCCEEDED@. If so, call @GetExpenseAnalysis@, and+-- pass the job identifier (@JobId@) from the initial call to+-- @StartExpenseAnalysis@.+--+-- Use the MaxResults parameter to limit the number of blocks that are+-- returned. If there are more results than specified in @MaxResults@, the+-- value of @NextToken@ in the operation response contains a pagination+-- token for getting the next set of results. To get the next page of+-- results, call @GetExpenseAnalysis@, and populate the @NextToken@ request+-- parameter with the token value that\'s returned from the previous call+-- to @GetExpenseAnalysis@.+--+-- For more information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/invoices-receipts.html Analyzing Invoices and Receipts>.+module Amazonka.Textract.GetExpenseAnalysis+ ( -- * Creating a Request+ GetExpenseAnalysis (..),+ newGetExpenseAnalysis,++ -- * Request Lenses+ getExpenseAnalysis_maxResults,+ getExpenseAnalysis_nextToken,+ getExpenseAnalysis_jobId,++ -- * Destructuring the Response+ GetExpenseAnalysisResponse (..),+ newGetExpenseAnalysisResponse,++ -- * Response Lenses+ getExpenseAnalysisResponse_analyzeExpenseModelVersion,+ getExpenseAnalysisResponse_documentMetadata,+ getExpenseAnalysisResponse_expenseDocuments,+ getExpenseAnalysisResponse_jobStatus,+ getExpenseAnalysisResponse_nextToken,+ getExpenseAnalysisResponse_statusMessage,+ getExpenseAnalysisResponse_warnings,+ getExpenseAnalysisResponse_httpStatus,+ )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Textract.Types++-- | /See:/ 'newGetExpenseAnalysis' smart constructor.+data GetExpenseAnalysis = GetExpenseAnalysis'+ { -- | The maximum number of results to return per paginated call. The largest+ -- value you can specify is 20. If you specify a value greater than 20, a+ -- maximum of 20 results is returned. The default value is 20.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | If the previous response was incomplete (because there are more blocks+ -- to retrieve), Amazon Textract returns a pagination token in the+ -- response. You can use this pagination token to retrieve the next set of+ -- blocks.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the text detection job. The @JobId@ is returned+ -- from @StartExpenseAnalysis@. A @JobId@ value is only valid for 7 days.+ jobId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetExpenseAnalysis' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getExpenseAnalysis_maxResults' - The maximum number of results to return per paginated call. The largest+-- value you can specify is 20. If you specify a value greater than 20, a+-- maximum of 20 results is returned. The default value is 20.+--+-- 'nextToken', 'getExpenseAnalysis_nextToken' - If the previous response was incomplete (because there are more blocks+-- to retrieve), Amazon Textract returns a pagination token in the+-- response. You can use this pagination token to retrieve the next set of+-- blocks.+--+-- 'jobId', 'getExpenseAnalysis_jobId' - A unique identifier for the text detection job. The @JobId@ is returned+-- from @StartExpenseAnalysis@. A @JobId@ value is only valid for 7 days.+newGetExpenseAnalysis ::+ -- | 'jobId'+ Prelude.Text ->+ GetExpenseAnalysis+newGetExpenseAnalysis pJobId_ =+ GetExpenseAnalysis'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ jobId = pJobId_+ }++-- | The maximum number of results to return per paginated call. The largest+-- value you can specify is 20. If you specify a value greater than 20, a+-- maximum of 20 results is returned. The default value is 20.+getExpenseAnalysis_maxResults :: Lens.Lens' GetExpenseAnalysis (Prelude.Maybe Prelude.Natural)+getExpenseAnalysis_maxResults = Lens.lens (\GetExpenseAnalysis' {maxResults} -> maxResults) (\s@GetExpenseAnalysis' {} a -> s {maxResults = a} :: GetExpenseAnalysis)++-- | If the previous response was incomplete (because there are more blocks+-- to retrieve), Amazon Textract returns a pagination token in the+-- response. You can use this pagination token to retrieve the next set of+-- blocks.+getExpenseAnalysis_nextToken :: Lens.Lens' GetExpenseAnalysis (Prelude.Maybe Prelude.Text)+getExpenseAnalysis_nextToken = Lens.lens (\GetExpenseAnalysis' {nextToken} -> nextToken) (\s@GetExpenseAnalysis' {} a -> s {nextToken = a} :: GetExpenseAnalysis)++-- | A unique identifier for the text detection job. The @JobId@ is returned+-- from @StartExpenseAnalysis@. A @JobId@ value is only valid for 7 days.+getExpenseAnalysis_jobId :: Lens.Lens' GetExpenseAnalysis Prelude.Text+getExpenseAnalysis_jobId = Lens.lens (\GetExpenseAnalysis' {jobId} -> jobId) (\s@GetExpenseAnalysis' {} a -> s {jobId = a} :: GetExpenseAnalysis)++instance Core.AWSRequest GetExpenseAnalysis where+ type+ AWSResponse GetExpenseAnalysis =+ GetExpenseAnalysisResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetExpenseAnalysisResponse'+ Prelude.<$> (x Data..?> "AnalyzeExpenseModelVersion")+ Prelude.<*> (x Data..?> "DocumentMetadata")+ Prelude.<*> ( x+ Data..?> "ExpenseDocuments"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "JobStatus")+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "StatusMessage")+ Prelude.<*> (x Data..?> "Warnings" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetExpenseAnalysis where+ hashWithSalt _salt GetExpenseAnalysis' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` jobId++instance Prelude.NFData GetExpenseAnalysis where+ rnf GetExpenseAnalysis' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf jobId++instance Data.ToHeaders GetExpenseAnalysis where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "Textract.GetExpenseAnalysis" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetExpenseAnalysis where+ toJSON GetExpenseAnalysis' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("JobId" Data..= jobId)+ ]+ )++instance Data.ToPath GetExpenseAnalysis where+ toPath = Prelude.const "/"++instance Data.ToQuery GetExpenseAnalysis where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetExpenseAnalysisResponse' smart constructor.+data GetExpenseAnalysisResponse = GetExpenseAnalysisResponse'+ { -- | The current model version of AnalyzeExpense.+ analyzeExpenseModelVersion :: Prelude.Maybe Prelude.Text,+ -- | Information about a document that Amazon Textract processed.+ -- @DocumentMetadata@ is returned in every page of paginated responses from+ -- an Amazon Textract operation.+ documentMetadata :: Prelude.Maybe DocumentMetadata,+ -- | The expenses detected by Amazon Textract.+ expenseDocuments :: Prelude.Maybe [ExpenseDocument],+ -- | The current status of the text detection job.+ jobStatus :: Prelude.Maybe JobStatus,+ -- | If the response is truncated, Amazon Textract returns this token. You+ -- can use this token in the subsequent request to retrieve the next set of+ -- text-detection results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Returns if the detection job could not be completed. Contains+ -- explanation for what error occured.+ statusMessage :: Prelude.Maybe Prelude.Text,+ -- | A list of warnings that occurred during the text-detection operation for+ -- the document.+ warnings :: Prelude.Maybe [Warning],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetExpenseAnalysisResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analyzeExpenseModelVersion', 'getExpenseAnalysisResponse_analyzeExpenseModelVersion' - The current model version of AnalyzeExpense.+--+-- 'documentMetadata', 'getExpenseAnalysisResponse_documentMetadata' - Information about a document that Amazon Textract processed.+-- @DocumentMetadata@ is returned in every page of paginated responses from+-- an Amazon Textract operation.+--+-- 'expenseDocuments', 'getExpenseAnalysisResponse_expenseDocuments' - The expenses detected by Amazon Textract.+--+-- 'jobStatus', 'getExpenseAnalysisResponse_jobStatus' - The current status of the text detection job.+--+-- 'nextToken', 'getExpenseAnalysisResponse_nextToken' - If the response is truncated, Amazon Textract returns this token. You+-- can use this token in the subsequent request to retrieve the next set of+-- text-detection results.+--+-- 'statusMessage', 'getExpenseAnalysisResponse_statusMessage' - Returns if the detection job could not be completed. Contains+-- explanation for what error occured.+--+-- 'warnings', 'getExpenseAnalysisResponse_warnings' - A list of warnings that occurred during the text-detection operation for+-- the document.+--+-- 'httpStatus', 'getExpenseAnalysisResponse_httpStatus' - The response's http status code.+newGetExpenseAnalysisResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetExpenseAnalysisResponse+newGetExpenseAnalysisResponse pHttpStatus_ =+ GetExpenseAnalysisResponse'+ { analyzeExpenseModelVersion =+ Prelude.Nothing,+ documentMetadata = Prelude.Nothing,+ expenseDocuments = Prelude.Nothing,+ jobStatus = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ statusMessage = Prelude.Nothing,+ warnings = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The current model version of AnalyzeExpense.+getExpenseAnalysisResponse_analyzeExpenseModelVersion :: Lens.Lens' GetExpenseAnalysisResponse (Prelude.Maybe Prelude.Text)+getExpenseAnalysisResponse_analyzeExpenseModelVersion = Lens.lens (\GetExpenseAnalysisResponse' {analyzeExpenseModelVersion} -> analyzeExpenseModelVersion) (\s@GetExpenseAnalysisResponse' {} a -> s {analyzeExpenseModelVersion = a} :: GetExpenseAnalysisResponse)++-- | Information about a document that Amazon Textract processed.+-- @DocumentMetadata@ is returned in every page of paginated responses from+-- an Amazon Textract operation.+getExpenseAnalysisResponse_documentMetadata :: Lens.Lens' GetExpenseAnalysisResponse (Prelude.Maybe DocumentMetadata)+getExpenseAnalysisResponse_documentMetadata = Lens.lens (\GetExpenseAnalysisResponse' {documentMetadata} -> documentMetadata) (\s@GetExpenseAnalysisResponse' {} a -> s {documentMetadata = a} :: GetExpenseAnalysisResponse)++-- | The expenses detected by Amazon Textract.+getExpenseAnalysisResponse_expenseDocuments :: Lens.Lens' GetExpenseAnalysisResponse (Prelude.Maybe [ExpenseDocument])+getExpenseAnalysisResponse_expenseDocuments = Lens.lens (\GetExpenseAnalysisResponse' {expenseDocuments} -> expenseDocuments) (\s@GetExpenseAnalysisResponse' {} a -> s {expenseDocuments = a} :: GetExpenseAnalysisResponse) Prelude.. Lens.mapping Lens.coerced++-- | The current status of the text detection job.+getExpenseAnalysisResponse_jobStatus :: Lens.Lens' GetExpenseAnalysisResponse (Prelude.Maybe JobStatus)+getExpenseAnalysisResponse_jobStatus = Lens.lens (\GetExpenseAnalysisResponse' {jobStatus} -> jobStatus) (\s@GetExpenseAnalysisResponse' {} a -> s {jobStatus = a} :: GetExpenseAnalysisResponse)++-- | If the response is truncated, Amazon Textract returns this token. You+-- can use this token in the subsequent request to retrieve the next set of+-- text-detection results.+getExpenseAnalysisResponse_nextToken :: Lens.Lens' GetExpenseAnalysisResponse (Prelude.Maybe Prelude.Text)+getExpenseAnalysisResponse_nextToken = Lens.lens (\GetExpenseAnalysisResponse' {nextToken} -> nextToken) (\s@GetExpenseAnalysisResponse' {} a -> s {nextToken = a} :: GetExpenseAnalysisResponse)++-- | Returns if the detection job could not be completed. Contains+-- explanation for what error occured.+getExpenseAnalysisResponse_statusMessage :: Lens.Lens' GetExpenseAnalysisResponse (Prelude.Maybe Prelude.Text)+getExpenseAnalysisResponse_statusMessage = Lens.lens (\GetExpenseAnalysisResponse' {statusMessage} -> statusMessage) (\s@GetExpenseAnalysisResponse' {} a -> s {statusMessage = a} :: GetExpenseAnalysisResponse)++-- | A list of warnings that occurred during the text-detection operation for+-- the document.+getExpenseAnalysisResponse_warnings :: Lens.Lens' GetExpenseAnalysisResponse (Prelude.Maybe [Warning])+getExpenseAnalysisResponse_warnings = Lens.lens (\GetExpenseAnalysisResponse' {warnings} -> warnings) (\s@GetExpenseAnalysisResponse' {} a -> s {warnings = a} :: GetExpenseAnalysisResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getExpenseAnalysisResponse_httpStatus :: Lens.Lens' GetExpenseAnalysisResponse Prelude.Int+getExpenseAnalysisResponse_httpStatus = Lens.lens (\GetExpenseAnalysisResponse' {httpStatus} -> httpStatus) (\s@GetExpenseAnalysisResponse' {} a -> s {httpStatus = a} :: GetExpenseAnalysisResponse)++instance Prelude.NFData GetExpenseAnalysisResponse where+ rnf GetExpenseAnalysisResponse' {..} =+ Prelude.rnf analyzeExpenseModelVersion+ `Prelude.seq` Prelude.rnf documentMetadata+ `Prelude.seq` Prelude.rnf expenseDocuments+ `Prelude.seq` Prelude.rnf jobStatus+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf statusMessage+ `Prelude.seq` Prelude.rnf warnings+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Textract/GetLendingAnalysis.hs view
@@ -0,0 +1,312 @@+{-# 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.Textract.GetLendingAnalysis+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the results for an Amazon Textract asynchronous operation that+-- analyzes text in a lending document.+--+-- You start asynchronous text analysis by calling @StartLendingAnalysis@,+-- which returns a job identifier (@JobId@). When the text analysis+-- operation finishes, Amazon Textract publishes a completion status to the+-- Amazon Simple Notification Service (Amazon SNS) topic that\'s registered+-- in the initial call to @StartLendingAnalysis@.+--+-- To get the results of the text analysis operation, first check that the+-- status value published to the Amazon SNS topic is SUCCEEDED. If so, call+-- GetLendingAnalysis, and pass the job identifier (@JobId@) from the+-- initial call to @StartLendingAnalysis@.+module Amazonka.Textract.GetLendingAnalysis+ ( -- * Creating a Request+ GetLendingAnalysis (..),+ newGetLendingAnalysis,++ -- * Request Lenses+ getLendingAnalysis_maxResults,+ getLendingAnalysis_nextToken,+ getLendingAnalysis_jobId,++ -- * Destructuring the Response+ GetLendingAnalysisResponse (..),+ newGetLendingAnalysisResponse,++ -- * Response Lenses+ getLendingAnalysisResponse_analyzeLendingModelVersion,+ getLendingAnalysisResponse_documentMetadata,+ getLendingAnalysisResponse_jobStatus,+ getLendingAnalysisResponse_nextToken,+ getLendingAnalysisResponse_results,+ getLendingAnalysisResponse_statusMessage,+ getLendingAnalysisResponse_warnings,+ getLendingAnalysisResponse_httpStatus,+ )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Textract.Types++-- | /See:/ 'newGetLendingAnalysis' smart constructor.+data GetLendingAnalysis = GetLendingAnalysis'+ { -- | The maximum number of results to return per paginated call. The largest+ -- value that you can specify is 30. If you specify a value greater than+ -- 30, a maximum of 30 results is returned. The default value is 30.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | If the previous response was incomplete, Amazon Textract returns a+ -- pagination token in the response. You can use this pagination token to+ -- retrieve the next set of lending results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the lending or text-detection job. The @JobId@+ -- is returned from @StartLendingAnalysis@. A @JobId@ value is only valid+ -- for 7 days.+ jobId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLendingAnalysis' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getLendingAnalysis_maxResults' - The maximum number of results to return per paginated call. The largest+-- value that you can specify is 30. If you specify a value greater than+-- 30, a maximum of 30 results is returned. The default value is 30.+--+-- 'nextToken', 'getLendingAnalysis_nextToken' - If the previous response was incomplete, Amazon Textract returns a+-- pagination token in the response. You can use this pagination token to+-- retrieve the next set of lending results.+--+-- 'jobId', 'getLendingAnalysis_jobId' - A unique identifier for the lending or text-detection job. The @JobId@+-- is returned from @StartLendingAnalysis@. A @JobId@ value is only valid+-- for 7 days.+newGetLendingAnalysis ::+ -- | 'jobId'+ Prelude.Text ->+ GetLendingAnalysis+newGetLendingAnalysis pJobId_ =+ GetLendingAnalysis'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ jobId = pJobId_+ }++-- | The maximum number of results to return per paginated call. The largest+-- value that you can specify is 30. If you specify a value greater than+-- 30, a maximum of 30 results is returned. The default value is 30.+getLendingAnalysis_maxResults :: Lens.Lens' GetLendingAnalysis (Prelude.Maybe Prelude.Natural)+getLendingAnalysis_maxResults = Lens.lens (\GetLendingAnalysis' {maxResults} -> maxResults) (\s@GetLendingAnalysis' {} a -> s {maxResults = a} :: GetLendingAnalysis)++-- | If the previous response was incomplete, Amazon Textract returns a+-- pagination token in the response. You can use this pagination token to+-- retrieve the next set of lending results.+getLendingAnalysis_nextToken :: Lens.Lens' GetLendingAnalysis (Prelude.Maybe Prelude.Text)+getLendingAnalysis_nextToken = Lens.lens (\GetLendingAnalysis' {nextToken} -> nextToken) (\s@GetLendingAnalysis' {} a -> s {nextToken = a} :: GetLendingAnalysis)++-- | A unique identifier for the lending or text-detection job. The @JobId@+-- is returned from @StartLendingAnalysis@. A @JobId@ value is only valid+-- for 7 days.+getLendingAnalysis_jobId :: Lens.Lens' GetLendingAnalysis Prelude.Text+getLendingAnalysis_jobId = Lens.lens (\GetLendingAnalysis' {jobId} -> jobId) (\s@GetLendingAnalysis' {} a -> s {jobId = a} :: GetLendingAnalysis)++instance Core.AWSRequest GetLendingAnalysis where+ type+ AWSResponse GetLendingAnalysis =+ GetLendingAnalysisResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetLendingAnalysisResponse'+ Prelude.<$> (x Data..?> "AnalyzeLendingModelVersion")+ Prelude.<*> (x Data..?> "DocumentMetadata")+ Prelude.<*> (x Data..?> "JobStatus")+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "Results" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "StatusMessage")+ Prelude.<*> (x Data..?> "Warnings" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetLendingAnalysis where+ hashWithSalt _salt GetLendingAnalysis' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` jobId++instance Prelude.NFData GetLendingAnalysis where+ rnf GetLendingAnalysis' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf jobId++instance Data.ToHeaders GetLendingAnalysis where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "Textract.GetLendingAnalysis" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetLendingAnalysis where+ toJSON GetLendingAnalysis' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("JobId" Data..= jobId)+ ]+ )++instance Data.ToPath GetLendingAnalysis where+ toPath = Prelude.const "/"++instance Data.ToQuery GetLendingAnalysis where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetLendingAnalysisResponse' smart constructor.+data GetLendingAnalysisResponse = GetLendingAnalysisResponse'+ { -- | The current model version of the Analyze Lending API.+ analyzeLendingModelVersion :: Prelude.Maybe Prelude.Text,+ documentMetadata :: Prelude.Maybe DocumentMetadata,+ -- | The current status of the lending analysis job.+ jobStatus :: Prelude.Maybe JobStatus,+ -- | If the response is truncated, Amazon Textract returns this token. You+ -- can use this token in the subsequent request to retrieve the next set of+ -- lending results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Holds the information returned by one of AmazonTextract\'s document+ -- analysis operations for the pinstripe.+ results :: Prelude.Maybe [LendingResult],+ -- | Returns if the lending analysis job could not be completed. Contains+ -- explanation for what error occurred.+ statusMessage :: Prelude.Maybe Prelude.Text,+ -- | A list of warnings that occurred during the lending analysis operation.+ warnings :: Prelude.Maybe [Warning],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLendingAnalysisResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analyzeLendingModelVersion', 'getLendingAnalysisResponse_analyzeLendingModelVersion' - The current model version of the Analyze Lending API.+--+-- 'documentMetadata', 'getLendingAnalysisResponse_documentMetadata' - Undocumented member.+--+-- 'jobStatus', 'getLendingAnalysisResponse_jobStatus' - The current status of the lending analysis job.+--+-- 'nextToken', 'getLendingAnalysisResponse_nextToken' - If the response is truncated, Amazon Textract returns this token. You+-- can use this token in the subsequent request to retrieve the next set of+-- lending results.+--+-- 'results', 'getLendingAnalysisResponse_results' - Holds the information returned by one of AmazonTextract\'s document+-- analysis operations for the pinstripe.+--+-- 'statusMessage', 'getLendingAnalysisResponse_statusMessage' - Returns if the lending analysis job could not be completed. Contains+-- explanation for what error occurred.+--+-- 'warnings', 'getLendingAnalysisResponse_warnings' - A list of warnings that occurred during the lending analysis operation.+--+-- 'httpStatus', 'getLendingAnalysisResponse_httpStatus' - The response's http status code.+newGetLendingAnalysisResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetLendingAnalysisResponse+newGetLendingAnalysisResponse pHttpStatus_ =+ GetLendingAnalysisResponse'+ { analyzeLendingModelVersion =+ Prelude.Nothing,+ documentMetadata = Prelude.Nothing,+ jobStatus = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ results = Prelude.Nothing,+ statusMessage = Prelude.Nothing,+ warnings = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The current model version of the Analyze Lending API.+getLendingAnalysisResponse_analyzeLendingModelVersion :: Lens.Lens' GetLendingAnalysisResponse (Prelude.Maybe Prelude.Text)+getLendingAnalysisResponse_analyzeLendingModelVersion = Lens.lens (\GetLendingAnalysisResponse' {analyzeLendingModelVersion} -> analyzeLendingModelVersion) (\s@GetLendingAnalysisResponse' {} a -> s {analyzeLendingModelVersion = a} :: GetLendingAnalysisResponse)++-- | Undocumented member.+getLendingAnalysisResponse_documentMetadata :: Lens.Lens' GetLendingAnalysisResponse (Prelude.Maybe DocumentMetadata)+getLendingAnalysisResponse_documentMetadata = Lens.lens (\GetLendingAnalysisResponse' {documentMetadata} -> documentMetadata) (\s@GetLendingAnalysisResponse' {} a -> s {documentMetadata = a} :: GetLendingAnalysisResponse)++-- | The current status of the lending analysis job.+getLendingAnalysisResponse_jobStatus :: Lens.Lens' GetLendingAnalysisResponse (Prelude.Maybe JobStatus)+getLendingAnalysisResponse_jobStatus = Lens.lens (\GetLendingAnalysisResponse' {jobStatus} -> jobStatus) (\s@GetLendingAnalysisResponse' {} a -> s {jobStatus = a} :: GetLendingAnalysisResponse)++-- | If the response is truncated, Amazon Textract returns this token. You+-- can use this token in the subsequent request to retrieve the next set of+-- lending results.+getLendingAnalysisResponse_nextToken :: Lens.Lens' GetLendingAnalysisResponse (Prelude.Maybe Prelude.Text)+getLendingAnalysisResponse_nextToken = Lens.lens (\GetLendingAnalysisResponse' {nextToken} -> nextToken) (\s@GetLendingAnalysisResponse' {} a -> s {nextToken = a} :: GetLendingAnalysisResponse)++-- | Holds the information returned by one of AmazonTextract\'s document+-- analysis operations for the pinstripe.+getLendingAnalysisResponse_results :: Lens.Lens' GetLendingAnalysisResponse (Prelude.Maybe [LendingResult])+getLendingAnalysisResponse_results = Lens.lens (\GetLendingAnalysisResponse' {results} -> results) (\s@GetLendingAnalysisResponse' {} a -> s {results = a} :: GetLendingAnalysisResponse) Prelude.. Lens.mapping Lens.coerced++-- | Returns if the lending analysis job could not be completed. Contains+-- explanation for what error occurred.+getLendingAnalysisResponse_statusMessage :: Lens.Lens' GetLendingAnalysisResponse (Prelude.Maybe Prelude.Text)+getLendingAnalysisResponse_statusMessage = Lens.lens (\GetLendingAnalysisResponse' {statusMessage} -> statusMessage) (\s@GetLendingAnalysisResponse' {} a -> s {statusMessage = a} :: GetLendingAnalysisResponse)++-- | A list of warnings that occurred during the lending analysis operation.+getLendingAnalysisResponse_warnings :: Lens.Lens' GetLendingAnalysisResponse (Prelude.Maybe [Warning])+getLendingAnalysisResponse_warnings = Lens.lens (\GetLendingAnalysisResponse' {warnings} -> warnings) (\s@GetLendingAnalysisResponse' {} a -> s {warnings = a} :: GetLendingAnalysisResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getLendingAnalysisResponse_httpStatus :: Lens.Lens' GetLendingAnalysisResponse Prelude.Int+getLendingAnalysisResponse_httpStatus = Lens.lens (\GetLendingAnalysisResponse' {httpStatus} -> httpStatus) (\s@GetLendingAnalysisResponse' {} a -> s {httpStatus = a} :: GetLendingAnalysisResponse)++instance Prelude.NFData GetLendingAnalysisResponse where+ rnf GetLendingAnalysisResponse' {..} =+ Prelude.rnf analyzeLendingModelVersion+ `Prelude.seq` Prelude.rnf documentMetadata+ `Prelude.seq` Prelude.rnf jobStatus+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf results+ `Prelude.seq` Prelude.rnf statusMessage+ `Prelude.seq` Prelude.rnf warnings+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Textract/GetLendingAnalysisSummary.hs view
@@ -0,0 +1,255 @@+{-# 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.Textract.GetLendingAnalysisSummary+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets summarized results for the @StartLendingAnalysis@ operation, which+-- analyzes text in a lending document. The returned summary consists of+-- information about documents grouped together by a common document type.+-- Information like detected signatures, page numbers, and split documents+-- is returned with respect to the type of grouped document.+--+-- You start asynchronous text analysis by calling @StartLendingAnalysis@,+-- which returns a job identifier (@JobId@). When the text analysis+-- operation finishes, Amazon Textract publishes a completion status to the+-- Amazon Simple Notification Service (Amazon SNS) topic that\'s registered+-- in the initial call to @StartLendingAnalysis@.+--+-- To get the results of the text analysis operation, first check that the+-- status value published to the Amazon SNS topic is SUCCEEDED. If so, call+-- @GetLendingAnalysisSummary@, and pass the job identifier (@JobId@) from+-- the initial call to @StartLendingAnalysis@.+module Amazonka.Textract.GetLendingAnalysisSummary+ ( -- * Creating a Request+ GetLendingAnalysisSummary (..),+ newGetLendingAnalysisSummary,++ -- * Request Lenses+ getLendingAnalysisSummary_jobId,++ -- * Destructuring the Response+ GetLendingAnalysisSummaryResponse (..),+ newGetLendingAnalysisSummaryResponse,++ -- * Response Lenses+ getLendingAnalysisSummaryResponse_analyzeLendingModelVersion,+ getLendingAnalysisSummaryResponse_documentMetadata,+ getLendingAnalysisSummaryResponse_jobStatus,+ getLendingAnalysisSummaryResponse_statusMessage,+ getLendingAnalysisSummaryResponse_summary,+ getLendingAnalysisSummaryResponse_warnings,+ getLendingAnalysisSummaryResponse_httpStatus,+ )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Textract.Types++-- | /See:/ 'newGetLendingAnalysisSummary' smart constructor.+data GetLendingAnalysisSummary = GetLendingAnalysisSummary'+ { -- | A unique identifier for the lending or text-detection job. The @JobId@+ -- is returned from StartLendingAnalysis. A @JobId@ value is only valid for+ -- 7 days.+ jobId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLendingAnalysisSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobId', 'getLendingAnalysisSummary_jobId' - A unique identifier for the lending or text-detection job. The @JobId@+-- is returned from StartLendingAnalysis. A @JobId@ value is only valid for+-- 7 days.+newGetLendingAnalysisSummary ::+ -- | 'jobId'+ Prelude.Text ->+ GetLendingAnalysisSummary+newGetLendingAnalysisSummary pJobId_ =+ GetLendingAnalysisSummary' {jobId = pJobId_}++-- | A unique identifier for the lending or text-detection job. The @JobId@+-- is returned from StartLendingAnalysis. A @JobId@ value is only valid for+-- 7 days.+getLendingAnalysisSummary_jobId :: Lens.Lens' GetLendingAnalysisSummary Prelude.Text+getLendingAnalysisSummary_jobId = Lens.lens (\GetLendingAnalysisSummary' {jobId} -> jobId) (\s@GetLendingAnalysisSummary' {} a -> s {jobId = a} :: GetLendingAnalysisSummary)++instance Core.AWSRequest GetLendingAnalysisSummary where+ type+ AWSResponse GetLendingAnalysisSummary =+ GetLendingAnalysisSummaryResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetLendingAnalysisSummaryResponse'+ Prelude.<$> (x Data..?> "AnalyzeLendingModelVersion")+ Prelude.<*> (x Data..?> "DocumentMetadata")+ Prelude.<*> (x Data..?> "JobStatus")+ Prelude.<*> (x Data..?> "StatusMessage")+ Prelude.<*> (x Data..?> "Summary")+ Prelude.<*> (x Data..?> "Warnings" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetLendingAnalysisSummary where+ hashWithSalt _salt GetLendingAnalysisSummary' {..} =+ _salt `Prelude.hashWithSalt` jobId++instance Prelude.NFData GetLendingAnalysisSummary where+ rnf GetLendingAnalysisSummary' {..} =+ Prelude.rnf jobId++instance Data.ToHeaders GetLendingAnalysisSummary where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "Textract.GetLendingAnalysisSummary" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetLendingAnalysisSummary where+ toJSON GetLendingAnalysisSummary' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("JobId" Data..= jobId)]+ )++instance Data.ToPath GetLendingAnalysisSummary where+ toPath = Prelude.const "/"++instance Data.ToQuery GetLendingAnalysisSummary where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetLendingAnalysisSummaryResponse' smart constructor.+data GetLendingAnalysisSummaryResponse = GetLendingAnalysisSummaryResponse'+ { -- | The current model version of the Analyze Lending API.+ analyzeLendingModelVersion :: Prelude.Maybe Prelude.Text,+ documentMetadata :: Prelude.Maybe DocumentMetadata,+ -- | The current status of the lending analysis job.+ jobStatus :: Prelude.Maybe JobStatus,+ -- | Returns if the lending analysis could not be completed. Contains+ -- explanation for what error occurred.+ statusMessage :: Prelude.Maybe Prelude.Text,+ -- | Contains summary information for documents grouped by type.+ summary :: Prelude.Maybe LendingSummary,+ -- | A list of warnings that occurred during the lending analysis operation.+ warnings :: Prelude.Maybe [Warning],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLendingAnalysisSummaryResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analyzeLendingModelVersion', 'getLendingAnalysisSummaryResponse_analyzeLendingModelVersion' - The current model version of the Analyze Lending API.+--+-- 'documentMetadata', 'getLendingAnalysisSummaryResponse_documentMetadata' - Undocumented member.+--+-- 'jobStatus', 'getLendingAnalysisSummaryResponse_jobStatus' - The current status of the lending analysis job.+--+-- 'statusMessage', 'getLendingAnalysisSummaryResponse_statusMessage' - Returns if the lending analysis could not be completed. Contains+-- explanation for what error occurred.+--+-- 'summary', 'getLendingAnalysisSummaryResponse_summary' - Contains summary information for documents grouped by type.+--+-- 'warnings', 'getLendingAnalysisSummaryResponse_warnings' - A list of warnings that occurred during the lending analysis operation.+--+-- 'httpStatus', 'getLendingAnalysisSummaryResponse_httpStatus' - The response's http status code.+newGetLendingAnalysisSummaryResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetLendingAnalysisSummaryResponse+newGetLendingAnalysisSummaryResponse pHttpStatus_ =+ GetLendingAnalysisSummaryResponse'+ { analyzeLendingModelVersion =+ Prelude.Nothing,+ documentMetadata = Prelude.Nothing,+ jobStatus = Prelude.Nothing,+ statusMessage = Prelude.Nothing,+ summary = Prelude.Nothing,+ warnings = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The current model version of the Analyze Lending API.+getLendingAnalysisSummaryResponse_analyzeLendingModelVersion :: Lens.Lens' GetLendingAnalysisSummaryResponse (Prelude.Maybe Prelude.Text)+getLendingAnalysisSummaryResponse_analyzeLendingModelVersion = Lens.lens (\GetLendingAnalysisSummaryResponse' {analyzeLendingModelVersion} -> analyzeLendingModelVersion) (\s@GetLendingAnalysisSummaryResponse' {} a -> s {analyzeLendingModelVersion = a} :: GetLendingAnalysisSummaryResponse)++-- | Undocumented member.+getLendingAnalysisSummaryResponse_documentMetadata :: Lens.Lens' GetLendingAnalysisSummaryResponse (Prelude.Maybe DocumentMetadata)+getLendingAnalysisSummaryResponse_documentMetadata = Lens.lens (\GetLendingAnalysisSummaryResponse' {documentMetadata} -> documentMetadata) (\s@GetLendingAnalysisSummaryResponse' {} a -> s {documentMetadata = a} :: GetLendingAnalysisSummaryResponse)++-- | The current status of the lending analysis job.+getLendingAnalysisSummaryResponse_jobStatus :: Lens.Lens' GetLendingAnalysisSummaryResponse (Prelude.Maybe JobStatus)+getLendingAnalysisSummaryResponse_jobStatus = Lens.lens (\GetLendingAnalysisSummaryResponse' {jobStatus} -> jobStatus) (\s@GetLendingAnalysisSummaryResponse' {} a -> s {jobStatus = a} :: GetLendingAnalysisSummaryResponse)++-- | Returns if the lending analysis could not be completed. Contains+-- explanation for what error occurred.+getLendingAnalysisSummaryResponse_statusMessage :: Lens.Lens' GetLendingAnalysisSummaryResponse (Prelude.Maybe Prelude.Text)+getLendingAnalysisSummaryResponse_statusMessage = Lens.lens (\GetLendingAnalysisSummaryResponse' {statusMessage} -> statusMessage) (\s@GetLendingAnalysisSummaryResponse' {} a -> s {statusMessage = a} :: GetLendingAnalysisSummaryResponse)++-- | Contains summary information for documents grouped by type.+getLendingAnalysisSummaryResponse_summary :: Lens.Lens' GetLendingAnalysisSummaryResponse (Prelude.Maybe LendingSummary)+getLendingAnalysisSummaryResponse_summary = Lens.lens (\GetLendingAnalysisSummaryResponse' {summary} -> summary) (\s@GetLendingAnalysisSummaryResponse' {} a -> s {summary = a} :: GetLendingAnalysisSummaryResponse)++-- | A list of warnings that occurred during the lending analysis operation.+getLendingAnalysisSummaryResponse_warnings :: Lens.Lens' GetLendingAnalysisSummaryResponse (Prelude.Maybe [Warning])+getLendingAnalysisSummaryResponse_warnings = Lens.lens (\GetLendingAnalysisSummaryResponse' {warnings} -> warnings) (\s@GetLendingAnalysisSummaryResponse' {} a -> s {warnings = a} :: GetLendingAnalysisSummaryResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getLendingAnalysisSummaryResponse_httpStatus :: Lens.Lens' GetLendingAnalysisSummaryResponse Prelude.Int+getLendingAnalysisSummaryResponse_httpStatus = Lens.lens (\GetLendingAnalysisSummaryResponse' {httpStatus} -> httpStatus) (\s@GetLendingAnalysisSummaryResponse' {} a -> s {httpStatus = a} :: GetLendingAnalysisSummaryResponse)++instance+ Prelude.NFData+ GetLendingAnalysisSummaryResponse+ where+ rnf GetLendingAnalysisSummaryResponse' {..} =+ Prelude.rnf analyzeLendingModelVersion+ `Prelude.seq` Prelude.rnf documentMetadata+ `Prelude.seq` Prelude.rnf jobStatus+ `Prelude.seq` Prelude.rnf statusMessage+ `Prelude.seq` Prelude.rnf summary+ `Prelude.seq` Prelude.rnf warnings+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Textract/Lens.hs view
@@ -0,0 +1,406 @@+{-# 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.Textract.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.Textract.Lens+ ( -- * Operations++ -- ** AnalyzeDocument+ analyzeDocument_humanLoopConfig,+ analyzeDocument_queriesConfig,+ analyzeDocument_document,+ analyzeDocument_featureTypes,+ analyzeDocumentResponse_analyzeDocumentModelVersion,+ analyzeDocumentResponse_blocks,+ analyzeDocumentResponse_documentMetadata,+ analyzeDocumentResponse_humanLoopActivationOutput,+ analyzeDocumentResponse_httpStatus,++ -- ** AnalyzeExpense+ analyzeExpense_document,+ analyzeExpenseResponse_documentMetadata,+ analyzeExpenseResponse_expenseDocuments,+ analyzeExpenseResponse_httpStatus,++ -- ** AnalyzeID+ analyzeID_documentPages,+ analyzeIDResponse_analyzeIDModelVersion,+ analyzeIDResponse_documentMetadata,+ analyzeIDResponse_identityDocuments,+ analyzeIDResponse_httpStatus,++ -- ** DetectDocumentText+ detectDocumentText_document,+ detectDocumentTextResponse_blocks,+ detectDocumentTextResponse_detectDocumentTextModelVersion,+ detectDocumentTextResponse_documentMetadata,+ detectDocumentTextResponse_httpStatus,++ -- ** GetDocumentAnalysis+ getDocumentAnalysis_maxResults,+ getDocumentAnalysis_nextToken,+ getDocumentAnalysis_jobId,+ getDocumentAnalysisResponse_analyzeDocumentModelVersion,+ getDocumentAnalysisResponse_blocks,+ getDocumentAnalysisResponse_documentMetadata,+ getDocumentAnalysisResponse_jobStatus,+ getDocumentAnalysisResponse_nextToken,+ getDocumentAnalysisResponse_statusMessage,+ getDocumentAnalysisResponse_warnings,+ getDocumentAnalysisResponse_httpStatus,++ -- ** GetDocumentTextDetection+ getDocumentTextDetection_maxResults,+ getDocumentTextDetection_nextToken,+ getDocumentTextDetection_jobId,+ getDocumentTextDetectionResponse_blocks,+ getDocumentTextDetectionResponse_detectDocumentTextModelVersion,+ getDocumentTextDetectionResponse_documentMetadata,+ getDocumentTextDetectionResponse_jobStatus,+ getDocumentTextDetectionResponse_nextToken,+ getDocumentTextDetectionResponse_statusMessage,+ getDocumentTextDetectionResponse_warnings,+ getDocumentTextDetectionResponse_httpStatus,++ -- ** GetExpenseAnalysis+ getExpenseAnalysis_maxResults,+ getExpenseAnalysis_nextToken,+ getExpenseAnalysis_jobId,+ getExpenseAnalysisResponse_analyzeExpenseModelVersion,+ getExpenseAnalysisResponse_documentMetadata,+ getExpenseAnalysisResponse_expenseDocuments,+ getExpenseAnalysisResponse_jobStatus,+ getExpenseAnalysisResponse_nextToken,+ getExpenseAnalysisResponse_statusMessage,+ getExpenseAnalysisResponse_warnings,+ getExpenseAnalysisResponse_httpStatus,++ -- ** GetLendingAnalysis+ getLendingAnalysis_maxResults,+ getLendingAnalysis_nextToken,+ getLendingAnalysis_jobId,+ getLendingAnalysisResponse_analyzeLendingModelVersion,+ getLendingAnalysisResponse_documentMetadata,+ getLendingAnalysisResponse_jobStatus,+ getLendingAnalysisResponse_nextToken,+ getLendingAnalysisResponse_results,+ getLendingAnalysisResponse_statusMessage,+ getLendingAnalysisResponse_warnings,+ getLendingAnalysisResponse_httpStatus,++ -- ** GetLendingAnalysisSummary+ getLendingAnalysisSummary_jobId,+ getLendingAnalysisSummaryResponse_analyzeLendingModelVersion,+ getLendingAnalysisSummaryResponse_documentMetadata,+ getLendingAnalysisSummaryResponse_jobStatus,+ getLendingAnalysisSummaryResponse_statusMessage,+ getLendingAnalysisSummaryResponse_summary,+ getLendingAnalysisSummaryResponse_warnings,+ getLendingAnalysisSummaryResponse_httpStatus,++ -- ** StartDocumentAnalysis+ startDocumentAnalysis_clientRequestToken,+ startDocumentAnalysis_jobTag,+ startDocumentAnalysis_kmsKeyId,+ startDocumentAnalysis_notificationChannel,+ startDocumentAnalysis_outputConfig,+ startDocumentAnalysis_queriesConfig,+ startDocumentAnalysis_documentLocation,+ startDocumentAnalysis_featureTypes,+ startDocumentAnalysisResponse_jobId,+ startDocumentAnalysisResponse_httpStatus,++ -- ** StartDocumentTextDetection+ startDocumentTextDetection_clientRequestToken,+ startDocumentTextDetection_jobTag,+ startDocumentTextDetection_kmsKeyId,+ startDocumentTextDetection_notificationChannel,+ startDocumentTextDetection_outputConfig,+ startDocumentTextDetection_documentLocation,+ startDocumentTextDetectionResponse_jobId,+ startDocumentTextDetectionResponse_httpStatus,++ -- ** StartExpenseAnalysis+ startExpenseAnalysis_clientRequestToken,+ startExpenseAnalysis_jobTag,+ startExpenseAnalysis_kmsKeyId,+ startExpenseAnalysis_notificationChannel,+ startExpenseAnalysis_outputConfig,+ startExpenseAnalysis_documentLocation,+ startExpenseAnalysisResponse_jobId,+ startExpenseAnalysisResponse_httpStatus,++ -- ** StartLendingAnalysis+ startLendingAnalysis_clientRequestToken,+ startLendingAnalysis_jobTag,+ startLendingAnalysis_kmsKeyId,+ startLendingAnalysis_notificationChannel,+ startLendingAnalysis_outputConfig,+ startLendingAnalysis_documentLocation,+ startLendingAnalysisResponse_jobId,+ startLendingAnalysisResponse_httpStatus,++ -- * Types++ -- ** AnalyzeIDDetections+ analyzeIDDetections_confidence,+ analyzeIDDetections_normalizedValue,+ analyzeIDDetections_text,++ -- ** Block+ block_blockType,+ block_columnIndex,+ block_columnSpan,+ block_confidence,+ block_entityTypes,+ block_geometry,+ block_id,+ block_page,+ block_query,+ block_relationships,+ block_rowIndex,+ block_rowSpan,+ block_selectionStatus,+ block_text,+ block_textType,++ -- ** BoundingBox+ boundingBox_height,+ boundingBox_left,+ boundingBox_top,+ boundingBox_width,++ -- ** DetectedSignature+ detectedSignature_page,++ -- ** Document+ document_bytes,+ document_s3Object,++ -- ** DocumentGroup+ documentGroup_detectedSignatures,+ documentGroup_splitDocuments,+ documentGroup_type,+ documentGroup_undetectedSignatures,++ -- ** DocumentLocation+ documentLocation_s3Object,++ -- ** DocumentMetadata+ documentMetadata_pages,++ -- ** ExpenseCurrency+ expenseCurrency_code,+ expenseCurrency_confidence,++ -- ** ExpenseDetection+ expenseDetection_confidence,+ expenseDetection_geometry,+ expenseDetection_text,++ -- ** ExpenseDocument+ expenseDocument_blocks,+ expenseDocument_expenseIndex,+ expenseDocument_lineItemGroups,+ expenseDocument_summaryFields,++ -- ** ExpenseField+ expenseField_currency,+ expenseField_groupProperties,+ expenseField_labelDetection,+ expenseField_pageNumber,+ expenseField_type,+ expenseField_valueDetection,++ -- ** ExpenseGroupProperty+ expenseGroupProperty_id,+ expenseGroupProperty_types,++ -- ** ExpenseType+ expenseType_confidence,+ expenseType_text,++ -- ** Extraction+ extraction_expenseDocument,+ extraction_identityDocument,+ extraction_lendingDocument,++ -- ** Geometry+ geometry_boundingBox,+ geometry_polygon,++ -- ** HumanLoopActivationOutput+ humanLoopActivationOutput_humanLoopActivationConditionsEvaluationResults,+ humanLoopActivationOutput_humanLoopActivationReasons,+ humanLoopActivationOutput_humanLoopArn,++ -- ** HumanLoopConfig+ humanLoopConfig_dataAttributes,+ humanLoopConfig_humanLoopName,+ humanLoopConfig_flowDefinitionArn,++ -- ** HumanLoopDataAttributes+ humanLoopDataAttributes_contentClassifiers,++ -- ** IdentityDocument+ identityDocument_blocks,+ identityDocument_documentIndex,+ identityDocument_identityDocumentFields,++ -- ** IdentityDocumentField+ identityDocumentField_type,+ identityDocumentField_valueDetection,++ -- ** LendingDetection+ lendingDetection_confidence,+ lendingDetection_geometry,+ lendingDetection_selectionStatus,+ lendingDetection_text,++ -- ** LendingDocument+ lendingDocument_lendingFields,+ lendingDocument_signatureDetections,++ -- ** LendingField+ lendingField_keyDetection,+ lendingField_type,+ lendingField_valueDetections,++ -- ** LendingResult+ lendingResult_extractions,+ lendingResult_page,+ lendingResult_pageClassification,++ -- ** LendingSummary+ lendingSummary_documentGroups,+ lendingSummary_undetectedDocumentTypes,++ -- ** LineItemFields+ lineItemFields_lineItemExpenseFields,++ -- ** LineItemGroup+ lineItemGroup_lineItemGroupIndex,+ lineItemGroup_lineItems,++ -- ** NormalizedValue+ normalizedValue_value,+ normalizedValue_valueType,++ -- ** NotificationChannel+ notificationChannel_sNSTopicArn,+ notificationChannel_roleArn,++ -- ** OutputConfig+ outputConfig_s3Prefix,+ outputConfig_s3Bucket,++ -- ** PageClassification+ pageClassification_pageType,+ pageClassification_pageNumber,++ -- ** Point+ point_x,+ point_y,++ -- ** Prediction+ prediction_confidence,+ prediction_value,++ -- ** QueriesConfig+ queriesConfig_queries,++ -- ** Query+ query_alias,+ query_pages,+ query_text,++ -- ** Relationship+ relationship_ids,+ relationship_type,++ -- ** S3Object+ s3Object_bucket,+ s3Object_name,+ s3Object_version,++ -- ** SignatureDetection+ signatureDetection_confidence,+ signatureDetection_geometry,++ -- ** SplitDocument+ splitDocument_index,+ splitDocument_pages,++ -- ** UndetectedSignature+ undetectedSignature_page,++ -- ** Warning+ warning_errorCode,+ warning_pages,+ )+where++import Amazonka.Textract.AnalyzeDocument+import Amazonka.Textract.AnalyzeExpense+import Amazonka.Textract.AnalyzeID+import Amazonka.Textract.DetectDocumentText+import Amazonka.Textract.GetDocumentAnalysis+import Amazonka.Textract.GetDocumentTextDetection+import Amazonka.Textract.GetExpenseAnalysis+import Amazonka.Textract.GetLendingAnalysis+import Amazonka.Textract.GetLendingAnalysisSummary+import Amazonka.Textract.StartDocumentAnalysis+import Amazonka.Textract.StartDocumentTextDetection+import Amazonka.Textract.StartExpenseAnalysis+import Amazonka.Textract.StartLendingAnalysis+import Amazonka.Textract.Types.AnalyzeIDDetections+import Amazonka.Textract.Types.Block+import Amazonka.Textract.Types.BoundingBox+import Amazonka.Textract.Types.DetectedSignature+import Amazonka.Textract.Types.Document+import Amazonka.Textract.Types.DocumentGroup+import Amazonka.Textract.Types.DocumentLocation+import Amazonka.Textract.Types.DocumentMetadata+import Amazonka.Textract.Types.ExpenseCurrency+import Amazonka.Textract.Types.ExpenseDetection+import Amazonka.Textract.Types.ExpenseDocument+import Amazonka.Textract.Types.ExpenseField+import Amazonka.Textract.Types.ExpenseGroupProperty+import Amazonka.Textract.Types.ExpenseType+import Amazonka.Textract.Types.Extraction+import Amazonka.Textract.Types.Geometry+import Amazonka.Textract.Types.HumanLoopActivationOutput+import Amazonka.Textract.Types.HumanLoopConfig+import Amazonka.Textract.Types.HumanLoopDataAttributes+import Amazonka.Textract.Types.IdentityDocument+import Amazonka.Textract.Types.IdentityDocumentField+import Amazonka.Textract.Types.LendingDetection+import Amazonka.Textract.Types.LendingDocument+import Amazonka.Textract.Types.LendingField+import Amazonka.Textract.Types.LendingResult+import Amazonka.Textract.Types.LendingSummary+import Amazonka.Textract.Types.LineItemFields+import Amazonka.Textract.Types.LineItemGroup+import Amazonka.Textract.Types.NormalizedValue+import Amazonka.Textract.Types.NotificationChannel+import Amazonka.Textract.Types.OutputConfig+import Amazonka.Textract.Types.PageClassification+import Amazonka.Textract.Types.Point+import Amazonka.Textract.Types.Prediction+import Amazonka.Textract.Types.QueriesConfig+import Amazonka.Textract.Types.Query+import Amazonka.Textract.Types.Relationship+import Amazonka.Textract.Types.S3Object+import Amazonka.Textract.Types.SignatureDetection+import Amazonka.Textract.Types.SplitDocument+import Amazonka.Textract.Types.UndetectedSignature+import Amazonka.Textract.Types.Warning
+ gen/Amazonka/Textract/StartDocumentAnalysis.hs view
@@ -0,0 +1,352 @@+{-# 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.Textract.StartDocumentAnalysis+-- 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 the asynchronous analysis of an input document for relationships+-- between detected items such as key-value pairs, tables, and selection+-- elements.+--+-- @StartDocumentAnalysis@ can analyze text in documents that are in JPEG,+-- PNG, TIFF, and PDF format. The documents are stored in an Amazon S3+-- bucket. Use DocumentLocation to specify the bucket name and file name of+-- the document.+--+-- @StartDocumentAnalysis@ returns a job identifier (@JobId@) that you use+-- to get the results of the operation. When text analysis is finished,+-- Amazon Textract publishes a completion status to the Amazon Simple+-- Notification Service (Amazon SNS) topic that you specify in+-- @NotificationChannel@. To get the results of the text analysis+-- operation, first check that the status value published to the Amazon SNS+-- topic is @SUCCEEDED@. If so, call GetDocumentAnalysis, and pass the job+-- identifier (@JobId@) from the initial call to @StartDocumentAnalysis@.+--+-- For more information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/how-it-works-analyzing.html Document Text Analysis>.+module Amazonka.Textract.StartDocumentAnalysis+ ( -- * Creating a Request+ StartDocumentAnalysis (..),+ newStartDocumentAnalysis,++ -- * Request Lenses+ startDocumentAnalysis_clientRequestToken,+ startDocumentAnalysis_jobTag,+ startDocumentAnalysis_kmsKeyId,+ startDocumentAnalysis_notificationChannel,+ startDocumentAnalysis_outputConfig,+ startDocumentAnalysis_queriesConfig,+ startDocumentAnalysis_documentLocation,+ startDocumentAnalysis_featureTypes,++ -- * Destructuring the Response+ StartDocumentAnalysisResponse (..),+ newStartDocumentAnalysisResponse,++ -- * Response Lenses+ startDocumentAnalysisResponse_jobId,+ startDocumentAnalysisResponse_httpStatus,+ )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Textract.Types++-- | /See:/ 'newStartDocumentAnalysis' smart constructor.+data StartDocumentAnalysis = StartDocumentAnalysis'+ { -- | The idempotent token that you use to identify the start request. If you+ -- use the same token with multiple @StartDocumentAnalysis@ requests, the+ -- same @JobId@ is returned. Use @ClientRequestToken@ to prevent the same+ -- job from being accidentally started more than once. For more+ -- information, see+ -- <https://docs.aws.amazon.com/textract/latest/dg/api-async.html Calling Amazon Textract Asynchronous Operations>.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | An identifier that you specify that\'s included in the completion+ -- notification published to the Amazon SNS topic. For example, you can use+ -- @JobTag@ to identify the type of document that the completion+ -- notification corresponds to (such as a tax form or a receipt).+ jobTag :: Prelude.Maybe Prelude.Text,+ -- | The KMS key used to encrypt the inference results. This can be in either+ -- Key ID or Key Alias format. When a KMS key is provided, the KMS key will+ -- be used for server-side encryption of the objects in the customer+ -- bucket. When this parameter is not enabled, the result will be encrypted+ -- server side,using SSE-S3.+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ -- | The Amazon SNS topic ARN that you want Amazon Textract to publish the+ -- completion status of the operation to.+ notificationChannel :: Prelude.Maybe NotificationChannel,+ -- | Sets if the output will go to a customer defined bucket. By default,+ -- Amazon Textract will save the results internally to be accessed by the+ -- GetDocumentAnalysis operation.+ outputConfig :: Prelude.Maybe OutputConfig,+ queriesConfig :: Prelude.Maybe QueriesConfig,+ -- | The location of the document to be processed.+ documentLocation :: DocumentLocation,+ -- | A list of the types of analysis to perform. Add TABLES to the list to+ -- return information about the tables that are detected in the input+ -- document. Add FORMS to return detected form data. To perform both types+ -- of analysis, add TABLES and FORMS to @FeatureTypes@. All lines and words+ -- detected in the document are included in the response (including text+ -- that isn\'t related to the value of @FeatureTypes@).+ featureTypes :: [FeatureType]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartDocumentAnalysis' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'startDocumentAnalysis_clientRequestToken' - The idempotent token that you use to identify the start request. If you+-- use the same token with multiple @StartDocumentAnalysis@ requests, the+-- same @JobId@ is returned. Use @ClientRequestToken@ to prevent the same+-- job from being accidentally started more than once. For more+-- information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/api-async.html Calling Amazon Textract Asynchronous Operations>.+--+-- 'jobTag', 'startDocumentAnalysis_jobTag' - An identifier that you specify that\'s included in the completion+-- notification published to the Amazon SNS topic. For example, you can use+-- @JobTag@ to identify the type of document that the completion+-- notification corresponds to (such as a tax form or a receipt).+--+-- 'kmsKeyId', 'startDocumentAnalysis_kmsKeyId' - The KMS key used to encrypt the inference results. This can be in either+-- Key ID or Key Alias format. When a KMS key is provided, the KMS key will+-- be used for server-side encryption of the objects in the customer+-- bucket. When this parameter is not enabled, the result will be encrypted+-- server side,using SSE-S3.+--+-- 'notificationChannel', 'startDocumentAnalysis_notificationChannel' - The Amazon SNS topic ARN that you want Amazon Textract to publish the+-- completion status of the operation to.+--+-- 'outputConfig', 'startDocumentAnalysis_outputConfig' - Sets if the output will go to a customer defined bucket. By default,+-- Amazon Textract will save the results internally to be accessed by the+-- GetDocumentAnalysis operation.+--+-- 'queriesConfig', 'startDocumentAnalysis_queriesConfig' - Undocumented member.+--+-- 'documentLocation', 'startDocumentAnalysis_documentLocation' - The location of the document to be processed.+--+-- 'featureTypes', 'startDocumentAnalysis_featureTypes' - A list of the types of analysis to perform. Add TABLES to the list to+-- return information about the tables that are detected in the input+-- document. Add FORMS to return detected form data. To perform both types+-- of analysis, add TABLES and FORMS to @FeatureTypes@. All lines and words+-- detected in the document are included in the response (including text+-- that isn\'t related to the value of @FeatureTypes@).+newStartDocumentAnalysis ::+ -- | 'documentLocation'+ DocumentLocation ->+ StartDocumentAnalysis+newStartDocumentAnalysis pDocumentLocation_ =+ StartDocumentAnalysis'+ { clientRequestToken =+ Prelude.Nothing,+ jobTag = Prelude.Nothing,+ kmsKeyId = Prelude.Nothing,+ notificationChannel = Prelude.Nothing,+ outputConfig = Prelude.Nothing,+ queriesConfig = Prelude.Nothing,+ documentLocation = pDocumentLocation_,+ featureTypes = Prelude.mempty+ }++-- | The idempotent token that you use to identify the start request. If you+-- use the same token with multiple @StartDocumentAnalysis@ requests, the+-- same @JobId@ is returned. Use @ClientRequestToken@ to prevent the same+-- job from being accidentally started more than once. For more+-- information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/api-async.html Calling Amazon Textract Asynchronous Operations>.+startDocumentAnalysis_clientRequestToken :: Lens.Lens' StartDocumentAnalysis (Prelude.Maybe Prelude.Text)+startDocumentAnalysis_clientRequestToken = Lens.lens (\StartDocumentAnalysis' {clientRequestToken} -> clientRequestToken) (\s@StartDocumentAnalysis' {} a -> s {clientRequestToken = a} :: StartDocumentAnalysis)++-- | An identifier that you specify that\'s included in the completion+-- notification published to the Amazon SNS topic. For example, you can use+-- @JobTag@ to identify the type of document that the completion+-- notification corresponds to (such as a tax form or a receipt).+startDocumentAnalysis_jobTag :: Lens.Lens' StartDocumentAnalysis (Prelude.Maybe Prelude.Text)+startDocumentAnalysis_jobTag = Lens.lens (\StartDocumentAnalysis' {jobTag} -> jobTag) (\s@StartDocumentAnalysis' {} a -> s {jobTag = a} :: StartDocumentAnalysis)++-- | The KMS key used to encrypt the inference results. This can be in either+-- Key ID or Key Alias format. When a KMS key is provided, the KMS key will+-- be used for server-side encryption of the objects in the customer+-- bucket. When this parameter is not enabled, the result will be encrypted+-- server side,using SSE-S3.+startDocumentAnalysis_kmsKeyId :: Lens.Lens' StartDocumentAnalysis (Prelude.Maybe Prelude.Text)+startDocumentAnalysis_kmsKeyId = Lens.lens (\StartDocumentAnalysis' {kmsKeyId} -> kmsKeyId) (\s@StartDocumentAnalysis' {} a -> s {kmsKeyId = a} :: StartDocumentAnalysis)++-- | The Amazon SNS topic ARN that you want Amazon Textract to publish the+-- completion status of the operation to.+startDocumentAnalysis_notificationChannel :: Lens.Lens' StartDocumentAnalysis (Prelude.Maybe NotificationChannel)+startDocumentAnalysis_notificationChannel = Lens.lens (\StartDocumentAnalysis' {notificationChannel} -> notificationChannel) (\s@StartDocumentAnalysis' {} a -> s {notificationChannel = a} :: StartDocumentAnalysis)++-- | Sets if the output will go to a customer defined bucket. By default,+-- Amazon Textract will save the results internally to be accessed by the+-- GetDocumentAnalysis operation.+startDocumentAnalysis_outputConfig :: Lens.Lens' StartDocumentAnalysis (Prelude.Maybe OutputConfig)+startDocumentAnalysis_outputConfig = Lens.lens (\StartDocumentAnalysis' {outputConfig} -> outputConfig) (\s@StartDocumentAnalysis' {} a -> s {outputConfig = a} :: StartDocumentAnalysis)++-- | Undocumented member.+startDocumentAnalysis_queriesConfig :: Lens.Lens' StartDocumentAnalysis (Prelude.Maybe QueriesConfig)+startDocumentAnalysis_queriesConfig = Lens.lens (\StartDocumentAnalysis' {queriesConfig} -> queriesConfig) (\s@StartDocumentAnalysis' {} a -> s {queriesConfig = a} :: StartDocumentAnalysis)++-- | The location of the document to be processed.+startDocumentAnalysis_documentLocation :: Lens.Lens' StartDocumentAnalysis DocumentLocation+startDocumentAnalysis_documentLocation = Lens.lens (\StartDocumentAnalysis' {documentLocation} -> documentLocation) (\s@StartDocumentAnalysis' {} a -> s {documentLocation = a} :: StartDocumentAnalysis)++-- | A list of the types of analysis to perform. Add TABLES to the list to+-- return information about the tables that are detected in the input+-- document. Add FORMS to return detected form data. To perform both types+-- of analysis, add TABLES and FORMS to @FeatureTypes@. All lines and words+-- detected in the document are included in the response (including text+-- that isn\'t related to the value of @FeatureTypes@).+startDocumentAnalysis_featureTypes :: Lens.Lens' StartDocumentAnalysis [FeatureType]+startDocumentAnalysis_featureTypes = Lens.lens (\StartDocumentAnalysis' {featureTypes} -> featureTypes) (\s@StartDocumentAnalysis' {} a -> s {featureTypes = a} :: StartDocumentAnalysis) Prelude.. Lens.coerced++instance Core.AWSRequest StartDocumentAnalysis where+ type+ AWSResponse StartDocumentAnalysis =+ StartDocumentAnalysisResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ StartDocumentAnalysisResponse'+ Prelude.<$> (x Data..?> "JobId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable StartDocumentAnalysis where+ hashWithSalt _salt StartDocumentAnalysis' {..} =+ _salt+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` jobTag+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` notificationChannel+ `Prelude.hashWithSalt` outputConfig+ `Prelude.hashWithSalt` queriesConfig+ `Prelude.hashWithSalt` documentLocation+ `Prelude.hashWithSalt` featureTypes++instance Prelude.NFData StartDocumentAnalysis where+ rnf StartDocumentAnalysis' {..} =+ Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf jobTag+ `Prelude.seq` Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf notificationChannel+ `Prelude.seq` Prelude.rnf outputConfig+ `Prelude.seq` Prelude.rnf queriesConfig+ `Prelude.seq` Prelude.rnf documentLocation+ `Prelude.seq` Prelude.rnf featureTypes++instance Data.ToHeaders StartDocumentAnalysis where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "Textract.StartDocumentAnalysis" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON StartDocumentAnalysis where+ toJSON StartDocumentAnalysis' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ClientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ ("JobTag" Data..=) Prelude.<$> jobTag,+ ("KMSKeyId" Data..=) Prelude.<$> kmsKeyId,+ ("NotificationChannel" Data..=)+ Prelude.<$> notificationChannel,+ ("OutputConfig" Data..=) Prelude.<$> outputConfig,+ ("QueriesConfig" Data..=) Prelude.<$> queriesConfig,+ Prelude.Just+ ("DocumentLocation" Data..= documentLocation),+ Prelude.Just ("FeatureTypes" Data..= featureTypes)+ ]+ )++instance Data.ToPath StartDocumentAnalysis where+ toPath = Prelude.const "/"++instance Data.ToQuery StartDocumentAnalysis where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartDocumentAnalysisResponse' smart constructor.+data StartDocumentAnalysisResponse = StartDocumentAnalysisResponse'+ { -- | The identifier for the document text detection job. Use @JobId@ to+ -- identify the job in a subsequent call to @GetDocumentAnalysis@. A+ -- @JobId@ value is only valid for 7 days.+ jobId :: 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 'StartDocumentAnalysisResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobId', 'startDocumentAnalysisResponse_jobId' - The identifier for the document text detection job. Use @JobId@ to+-- identify the job in a subsequent call to @GetDocumentAnalysis@. A+-- @JobId@ value is only valid for 7 days.+--+-- 'httpStatus', 'startDocumentAnalysisResponse_httpStatus' - The response's http status code.+newStartDocumentAnalysisResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ StartDocumentAnalysisResponse+newStartDocumentAnalysisResponse pHttpStatus_ =+ StartDocumentAnalysisResponse'+ { jobId =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The identifier for the document text detection job. Use @JobId@ to+-- identify the job in a subsequent call to @GetDocumentAnalysis@. A+-- @JobId@ value is only valid for 7 days.+startDocumentAnalysisResponse_jobId :: Lens.Lens' StartDocumentAnalysisResponse (Prelude.Maybe Prelude.Text)+startDocumentAnalysisResponse_jobId = Lens.lens (\StartDocumentAnalysisResponse' {jobId} -> jobId) (\s@StartDocumentAnalysisResponse' {} a -> s {jobId = a} :: StartDocumentAnalysisResponse)++-- | The response's http status code.+startDocumentAnalysisResponse_httpStatus :: Lens.Lens' StartDocumentAnalysisResponse Prelude.Int+startDocumentAnalysisResponse_httpStatus = Lens.lens (\StartDocumentAnalysisResponse' {httpStatus} -> httpStatus) (\s@StartDocumentAnalysisResponse' {} a -> s {httpStatus = a} :: StartDocumentAnalysisResponse)++instance Prelude.NFData StartDocumentAnalysisResponse where+ rnf StartDocumentAnalysisResponse' {..} =+ Prelude.rnf jobId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Textract/StartDocumentTextDetection.hs view
@@ -0,0 +1,315 @@+{-# 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.Textract.StartDocumentTextDetection+-- 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 the asynchronous detection of text in a document. Amazon Textract+-- can detect lines of text and the words that make up a line of text.+--+-- @StartDocumentTextDetection@ can analyze text in documents that are in+-- JPEG, PNG, TIFF, and PDF format. The documents are stored in an Amazon+-- S3 bucket. Use DocumentLocation to specify the bucket name and file name+-- of the document.+--+-- @StartTextDetection@ returns a job identifier (@JobId@) that you use to+-- get the results of the operation. When text detection is finished,+-- Amazon Textract publishes a completion status to the Amazon Simple+-- Notification Service (Amazon SNS) topic that you specify in+-- @NotificationChannel@. To get the results of the text detection+-- operation, first check that the status value published to the Amazon SNS+-- topic is @SUCCEEDED@. If so, call GetDocumentTextDetection, and pass the+-- job identifier (@JobId@) from the initial call to+-- @StartDocumentTextDetection@.+--+-- For more information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/how-it-works-detecting.html Document Text Detection>.+module Amazonka.Textract.StartDocumentTextDetection+ ( -- * Creating a Request+ StartDocumentTextDetection (..),+ newStartDocumentTextDetection,++ -- * Request Lenses+ startDocumentTextDetection_clientRequestToken,+ startDocumentTextDetection_jobTag,+ startDocumentTextDetection_kmsKeyId,+ startDocumentTextDetection_notificationChannel,+ startDocumentTextDetection_outputConfig,+ startDocumentTextDetection_documentLocation,++ -- * Destructuring the Response+ StartDocumentTextDetectionResponse (..),+ newStartDocumentTextDetectionResponse,++ -- * Response Lenses+ startDocumentTextDetectionResponse_jobId,+ startDocumentTextDetectionResponse_httpStatus,+ )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Textract.Types++-- | /See:/ 'newStartDocumentTextDetection' smart constructor.+data StartDocumentTextDetection = StartDocumentTextDetection'+ { -- | The idempotent token that\'s used to identify the start request. If you+ -- use the same token with multiple @StartDocumentTextDetection@ requests,+ -- the same @JobId@ is returned. Use @ClientRequestToken@ to prevent the+ -- same job from being accidentally started more than once. For more+ -- information, see+ -- <https://docs.aws.amazon.com/textract/latest/dg/api-async.html Calling Amazon Textract Asynchronous Operations>.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | An identifier that you specify that\'s included in the completion+ -- notification published to the Amazon SNS topic. For example, you can use+ -- @JobTag@ to identify the type of document that the completion+ -- notification corresponds to (such as a tax form or a receipt).+ jobTag :: Prelude.Maybe Prelude.Text,+ -- | The KMS key used to encrypt the inference results. This can be in either+ -- Key ID or Key Alias format. When a KMS key is provided, the KMS key will+ -- be used for server-side encryption of the objects in the customer+ -- bucket. When this parameter is not enabled, the result will be encrypted+ -- server side,using SSE-S3.+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ -- | The Amazon SNS topic ARN that you want Amazon Textract to publish the+ -- completion status of the operation to.+ notificationChannel :: Prelude.Maybe NotificationChannel,+ -- | Sets if the output will go to a customer defined bucket. By default+ -- Amazon Textract will save the results internally to be accessed with the+ -- GetDocumentTextDetection operation.+ outputConfig :: Prelude.Maybe OutputConfig,+ -- | The location of the document to be processed.+ documentLocation :: DocumentLocation+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartDocumentTextDetection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'startDocumentTextDetection_clientRequestToken' - The idempotent token that\'s used to identify the start request. If you+-- use the same token with multiple @StartDocumentTextDetection@ requests,+-- the same @JobId@ is returned. Use @ClientRequestToken@ to prevent the+-- same job from being accidentally started more than once. For more+-- information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/api-async.html Calling Amazon Textract Asynchronous Operations>.+--+-- 'jobTag', 'startDocumentTextDetection_jobTag' - An identifier that you specify that\'s included in the completion+-- notification published to the Amazon SNS topic. For example, you can use+-- @JobTag@ to identify the type of document that the completion+-- notification corresponds to (such as a tax form or a receipt).+--+-- 'kmsKeyId', 'startDocumentTextDetection_kmsKeyId' - The KMS key used to encrypt the inference results. This can be in either+-- Key ID or Key Alias format. When a KMS key is provided, the KMS key will+-- be used for server-side encryption of the objects in the customer+-- bucket. When this parameter is not enabled, the result will be encrypted+-- server side,using SSE-S3.+--+-- 'notificationChannel', 'startDocumentTextDetection_notificationChannel' - The Amazon SNS topic ARN that you want Amazon Textract to publish the+-- completion status of the operation to.+--+-- 'outputConfig', 'startDocumentTextDetection_outputConfig' - Sets if the output will go to a customer defined bucket. By default+-- Amazon Textract will save the results internally to be accessed with the+-- GetDocumentTextDetection operation.+--+-- 'documentLocation', 'startDocumentTextDetection_documentLocation' - The location of the document to be processed.+newStartDocumentTextDetection ::+ -- | 'documentLocation'+ DocumentLocation ->+ StartDocumentTextDetection+newStartDocumentTextDetection pDocumentLocation_ =+ StartDocumentTextDetection'+ { clientRequestToken =+ Prelude.Nothing,+ jobTag = Prelude.Nothing,+ kmsKeyId = Prelude.Nothing,+ notificationChannel = Prelude.Nothing,+ outputConfig = Prelude.Nothing,+ documentLocation = pDocumentLocation_+ }++-- | The idempotent token that\'s used to identify the start request. If you+-- use the same token with multiple @StartDocumentTextDetection@ requests,+-- the same @JobId@ is returned. Use @ClientRequestToken@ to prevent the+-- same job from being accidentally started more than once. For more+-- information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/api-async.html Calling Amazon Textract Asynchronous Operations>.+startDocumentTextDetection_clientRequestToken :: Lens.Lens' StartDocumentTextDetection (Prelude.Maybe Prelude.Text)+startDocumentTextDetection_clientRequestToken = Lens.lens (\StartDocumentTextDetection' {clientRequestToken} -> clientRequestToken) (\s@StartDocumentTextDetection' {} a -> s {clientRequestToken = a} :: StartDocumentTextDetection)++-- | An identifier that you specify that\'s included in the completion+-- notification published to the Amazon SNS topic. For example, you can use+-- @JobTag@ to identify the type of document that the completion+-- notification corresponds to (such as a tax form or a receipt).+startDocumentTextDetection_jobTag :: Lens.Lens' StartDocumentTextDetection (Prelude.Maybe Prelude.Text)+startDocumentTextDetection_jobTag = Lens.lens (\StartDocumentTextDetection' {jobTag} -> jobTag) (\s@StartDocumentTextDetection' {} a -> s {jobTag = a} :: StartDocumentTextDetection)++-- | The KMS key used to encrypt the inference results. This can be in either+-- Key ID or Key Alias format. When a KMS key is provided, the KMS key will+-- be used for server-side encryption of the objects in the customer+-- bucket. When this parameter is not enabled, the result will be encrypted+-- server side,using SSE-S3.+startDocumentTextDetection_kmsKeyId :: Lens.Lens' StartDocumentTextDetection (Prelude.Maybe Prelude.Text)+startDocumentTextDetection_kmsKeyId = Lens.lens (\StartDocumentTextDetection' {kmsKeyId} -> kmsKeyId) (\s@StartDocumentTextDetection' {} a -> s {kmsKeyId = a} :: StartDocumentTextDetection)++-- | The Amazon SNS topic ARN that you want Amazon Textract to publish the+-- completion status of the operation to.+startDocumentTextDetection_notificationChannel :: Lens.Lens' StartDocumentTextDetection (Prelude.Maybe NotificationChannel)+startDocumentTextDetection_notificationChannel = Lens.lens (\StartDocumentTextDetection' {notificationChannel} -> notificationChannel) (\s@StartDocumentTextDetection' {} a -> s {notificationChannel = a} :: StartDocumentTextDetection)++-- | Sets if the output will go to a customer defined bucket. By default+-- Amazon Textract will save the results internally to be accessed with the+-- GetDocumentTextDetection operation.+startDocumentTextDetection_outputConfig :: Lens.Lens' StartDocumentTextDetection (Prelude.Maybe OutputConfig)+startDocumentTextDetection_outputConfig = Lens.lens (\StartDocumentTextDetection' {outputConfig} -> outputConfig) (\s@StartDocumentTextDetection' {} a -> s {outputConfig = a} :: StartDocumentTextDetection)++-- | The location of the document to be processed.+startDocumentTextDetection_documentLocation :: Lens.Lens' StartDocumentTextDetection DocumentLocation+startDocumentTextDetection_documentLocation = Lens.lens (\StartDocumentTextDetection' {documentLocation} -> documentLocation) (\s@StartDocumentTextDetection' {} a -> s {documentLocation = a} :: StartDocumentTextDetection)++instance Core.AWSRequest StartDocumentTextDetection where+ type+ AWSResponse StartDocumentTextDetection =+ StartDocumentTextDetectionResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ StartDocumentTextDetectionResponse'+ Prelude.<$> (x Data..?> "JobId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable StartDocumentTextDetection where+ hashWithSalt _salt StartDocumentTextDetection' {..} =+ _salt+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` jobTag+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` notificationChannel+ `Prelude.hashWithSalt` outputConfig+ `Prelude.hashWithSalt` documentLocation++instance Prelude.NFData StartDocumentTextDetection where+ rnf StartDocumentTextDetection' {..} =+ Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf jobTag+ `Prelude.seq` Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf notificationChannel+ `Prelude.seq` Prelude.rnf outputConfig+ `Prelude.seq` Prelude.rnf documentLocation++instance Data.ToHeaders StartDocumentTextDetection where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "Textract.StartDocumentTextDetection" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON StartDocumentTextDetection where+ toJSON StartDocumentTextDetection' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ClientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ ("JobTag" Data..=) Prelude.<$> jobTag,+ ("KMSKeyId" Data..=) Prelude.<$> kmsKeyId,+ ("NotificationChannel" Data..=)+ Prelude.<$> notificationChannel,+ ("OutputConfig" Data..=) Prelude.<$> outputConfig,+ Prelude.Just+ ("DocumentLocation" Data..= documentLocation)+ ]+ )++instance Data.ToPath StartDocumentTextDetection where+ toPath = Prelude.const "/"++instance Data.ToQuery StartDocumentTextDetection where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartDocumentTextDetectionResponse' smart constructor.+data StartDocumentTextDetectionResponse = StartDocumentTextDetectionResponse'+ { -- | The identifier of the text detection job for the document. Use @JobId@+ -- to identify the job in a subsequent call to @GetDocumentTextDetection@.+ -- A @JobId@ value is only valid for 7 days.+ jobId :: 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 'StartDocumentTextDetectionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobId', 'startDocumentTextDetectionResponse_jobId' - The identifier of the text detection job for the document. Use @JobId@+-- to identify the job in a subsequent call to @GetDocumentTextDetection@.+-- A @JobId@ value is only valid for 7 days.+--+-- 'httpStatus', 'startDocumentTextDetectionResponse_httpStatus' - The response's http status code.+newStartDocumentTextDetectionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ StartDocumentTextDetectionResponse+newStartDocumentTextDetectionResponse pHttpStatus_ =+ StartDocumentTextDetectionResponse'+ { jobId =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The identifier of the text detection job for the document. Use @JobId@+-- to identify the job in a subsequent call to @GetDocumentTextDetection@.+-- A @JobId@ value is only valid for 7 days.+startDocumentTextDetectionResponse_jobId :: Lens.Lens' StartDocumentTextDetectionResponse (Prelude.Maybe Prelude.Text)+startDocumentTextDetectionResponse_jobId = Lens.lens (\StartDocumentTextDetectionResponse' {jobId} -> jobId) (\s@StartDocumentTextDetectionResponse' {} a -> s {jobId = a} :: StartDocumentTextDetectionResponse)++-- | The response's http status code.+startDocumentTextDetectionResponse_httpStatus :: Lens.Lens' StartDocumentTextDetectionResponse Prelude.Int+startDocumentTextDetectionResponse_httpStatus = Lens.lens (\StartDocumentTextDetectionResponse' {httpStatus} -> httpStatus) (\s@StartDocumentTextDetectionResponse' {} a -> s {httpStatus = a} :: StartDocumentTextDetectionResponse)++instance+ Prelude.NFData+ StartDocumentTextDetectionResponse+ where+ rnf StartDocumentTextDetectionResponse' {..} =+ Prelude.rnf jobId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Textract/StartExpenseAnalysis.hs view
@@ -0,0 +1,310 @@+{-# 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.Textract.StartExpenseAnalysis+-- 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 the asynchronous analysis of invoices or receipts for data like+-- contact information, items purchased, and vendor names.+--+-- @StartExpenseAnalysis@ can analyze text in documents that are in JPEG,+-- PNG, and PDF format. The documents must be stored in an Amazon S3+-- bucket. Use the DocumentLocation parameter to specify the name of your+-- S3 bucket and the name of the document in that bucket.+--+-- @StartExpenseAnalysis@ returns a job identifier (@JobId@) that you will+-- provide to @GetExpenseAnalysis@ to retrieve the results of the+-- operation. When the analysis of the input invoices\/receipts is+-- finished, Amazon Textract publishes a completion status to the Amazon+-- Simple Notification Service (Amazon SNS) topic that you provide to the+-- @NotificationChannel@. To obtain the results of the invoice and receipt+-- analysis operation, ensure that the status value published to the Amazon+-- SNS topic is @SUCCEEDED@. If so, call GetExpenseAnalysis, and pass the+-- job identifier (@JobId@) that was returned by your call to+-- @StartExpenseAnalysis@.+--+-- For more information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/invoice-receipts.html Analyzing Invoices and Receipts>.+module Amazonka.Textract.StartExpenseAnalysis+ ( -- * Creating a Request+ StartExpenseAnalysis (..),+ newStartExpenseAnalysis,++ -- * Request Lenses+ startExpenseAnalysis_clientRequestToken,+ startExpenseAnalysis_jobTag,+ startExpenseAnalysis_kmsKeyId,+ startExpenseAnalysis_notificationChannel,+ startExpenseAnalysis_outputConfig,+ startExpenseAnalysis_documentLocation,++ -- * Destructuring the Response+ StartExpenseAnalysisResponse (..),+ newStartExpenseAnalysisResponse,++ -- * Response Lenses+ startExpenseAnalysisResponse_jobId,+ startExpenseAnalysisResponse_httpStatus,+ )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Textract.Types++-- | /See:/ 'newStartExpenseAnalysis' smart constructor.+data StartExpenseAnalysis = StartExpenseAnalysis'+ { -- | The idempotent token that\'s used to identify the start request. If you+ -- use the same token with multiple @StartDocumentTextDetection@ requests,+ -- the same @JobId@ is returned. Use @ClientRequestToken@ to prevent the+ -- same job from being accidentally started more than once. For more+ -- information, see+ -- <https://docs.aws.amazon.com/textract/latest/dg/api-async.html Calling Amazon Textract Asynchronous Operations>+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | An identifier you specify that\'s included in the completion+ -- notification published to the Amazon SNS topic. For example, you can use+ -- @JobTag@ to identify the type of document that the completion+ -- notification corresponds to (such as a tax form or a receipt).+ jobTag :: Prelude.Maybe Prelude.Text,+ -- | The KMS key used to encrypt the inference results. This can be in either+ -- Key ID or Key Alias format. When a KMS key is provided, the KMS key will+ -- be used for server-side encryption of the objects in the customer+ -- bucket. When this parameter is not enabled, the result will be encrypted+ -- server side,using SSE-S3.+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ -- | The Amazon SNS topic ARN that you want Amazon Textract to publish the+ -- completion status of the operation to.+ notificationChannel :: Prelude.Maybe NotificationChannel,+ -- | Sets if the output will go to a customer defined bucket. By default,+ -- Amazon Textract will save the results internally to be accessed by the+ -- @GetExpenseAnalysis@ operation.+ outputConfig :: Prelude.Maybe OutputConfig,+ -- | The location of the document to be processed.+ documentLocation :: DocumentLocation+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartExpenseAnalysis' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'startExpenseAnalysis_clientRequestToken' - The idempotent token that\'s used to identify the start request. If you+-- use the same token with multiple @StartDocumentTextDetection@ requests,+-- the same @JobId@ is returned. Use @ClientRequestToken@ to prevent the+-- same job from being accidentally started more than once. For more+-- information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/api-async.html Calling Amazon Textract Asynchronous Operations>+--+-- 'jobTag', 'startExpenseAnalysis_jobTag' - An identifier you specify that\'s included in the completion+-- notification published to the Amazon SNS topic. For example, you can use+-- @JobTag@ to identify the type of document that the completion+-- notification corresponds to (such as a tax form or a receipt).+--+-- 'kmsKeyId', 'startExpenseAnalysis_kmsKeyId' - The KMS key used to encrypt the inference results. This can be in either+-- Key ID or Key Alias format. When a KMS key is provided, the KMS key will+-- be used for server-side encryption of the objects in the customer+-- bucket. When this parameter is not enabled, the result will be encrypted+-- server side,using SSE-S3.+--+-- 'notificationChannel', 'startExpenseAnalysis_notificationChannel' - The Amazon SNS topic ARN that you want Amazon Textract to publish the+-- completion status of the operation to.+--+-- 'outputConfig', 'startExpenseAnalysis_outputConfig' - Sets if the output will go to a customer defined bucket. By default,+-- Amazon Textract will save the results internally to be accessed by the+-- @GetExpenseAnalysis@ operation.+--+-- 'documentLocation', 'startExpenseAnalysis_documentLocation' - The location of the document to be processed.+newStartExpenseAnalysis ::+ -- | 'documentLocation'+ DocumentLocation ->+ StartExpenseAnalysis+newStartExpenseAnalysis pDocumentLocation_ =+ StartExpenseAnalysis'+ { clientRequestToken =+ Prelude.Nothing,+ jobTag = Prelude.Nothing,+ kmsKeyId = Prelude.Nothing,+ notificationChannel = Prelude.Nothing,+ outputConfig = Prelude.Nothing,+ documentLocation = pDocumentLocation_+ }++-- | The idempotent token that\'s used to identify the start request. If you+-- use the same token with multiple @StartDocumentTextDetection@ requests,+-- the same @JobId@ is returned. Use @ClientRequestToken@ to prevent the+-- same job from being accidentally started more than once. For more+-- information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/api-async.html Calling Amazon Textract Asynchronous Operations>+startExpenseAnalysis_clientRequestToken :: Lens.Lens' StartExpenseAnalysis (Prelude.Maybe Prelude.Text)+startExpenseAnalysis_clientRequestToken = Lens.lens (\StartExpenseAnalysis' {clientRequestToken} -> clientRequestToken) (\s@StartExpenseAnalysis' {} a -> s {clientRequestToken = a} :: StartExpenseAnalysis)++-- | An identifier you specify that\'s included in the completion+-- notification published to the Amazon SNS topic. For example, you can use+-- @JobTag@ to identify the type of document that the completion+-- notification corresponds to (such as a tax form or a receipt).+startExpenseAnalysis_jobTag :: Lens.Lens' StartExpenseAnalysis (Prelude.Maybe Prelude.Text)+startExpenseAnalysis_jobTag = Lens.lens (\StartExpenseAnalysis' {jobTag} -> jobTag) (\s@StartExpenseAnalysis' {} a -> s {jobTag = a} :: StartExpenseAnalysis)++-- | The KMS key used to encrypt the inference results. This can be in either+-- Key ID or Key Alias format. When a KMS key is provided, the KMS key will+-- be used for server-side encryption of the objects in the customer+-- bucket. When this parameter is not enabled, the result will be encrypted+-- server side,using SSE-S3.+startExpenseAnalysis_kmsKeyId :: Lens.Lens' StartExpenseAnalysis (Prelude.Maybe Prelude.Text)+startExpenseAnalysis_kmsKeyId = Lens.lens (\StartExpenseAnalysis' {kmsKeyId} -> kmsKeyId) (\s@StartExpenseAnalysis' {} a -> s {kmsKeyId = a} :: StartExpenseAnalysis)++-- | The Amazon SNS topic ARN that you want Amazon Textract to publish the+-- completion status of the operation to.+startExpenseAnalysis_notificationChannel :: Lens.Lens' StartExpenseAnalysis (Prelude.Maybe NotificationChannel)+startExpenseAnalysis_notificationChannel = Lens.lens (\StartExpenseAnalysis' {notificationChannel} -> notificationChannel) (\s@StartExpenseAnalysis' {} a -> s {notificationChannel = a} :: StartExpenseAnalysis)++-- | Sets if the output will go to a customer defined bucket. By default,+-- Amazon Textract will save the results internally to be accessed by the+-- @GetExpenseAnalysis@ operation.+startExpenseAnalysis_outputConfig :: Lens.Lens' StartExpenseAnalysis (Prelude.Maybe OutputConfig)+startExpenseAnalysis_outputConfig = Lens.lens (\StartExpenseAnalysis' {outputConfig} -> outputConfig) (\s@StartExpenseAnalysis' {} a -> s {outputConfig = a} :: StartExpenseAnalysis)++-- | The location of the document to be processed.+startExpenseAnalysis_documentLocation :: Lens.Lens' StartExpenseAnalysis DocumentLocation+startExpenseAnalysis_documentLocation = Lens.lens (\StartExpenseAnalysis' {documentLocation} -> documentLocation) (\s@StartExpenseAnalysis' {} a -> s {documentLocation = a} :: StartExpenseAnalysis)++instance Core.AWSRequest StartExpenseAnalysis where+ type+ AWSResponse StartExpenseAnalysis =+ StartExpenseAnalysisResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ StartExpenseAnalysisResponse'+ Prelude.<$> (x Data..?> "JobId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable StartExpenseAnalysis where+ hashWithSalt _salt StartExpenseAnalysis' {..} =+ _salt+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` jobTag+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` notificationChannel+ `Prelude.hashWithSalt` outputConfig+ `Prelude.hashWithSalt` documentLocation++instance Prelude.NFData StartExpenseAnalysis where+ rnf StartExpenseAnalysis' {..} =+ Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf jobTag+ `Prelude.seq` Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf notificationChannel+ `Prelude.seq` Prelude.rnf outputConfig+ `Prelude.seq` Prelude.rnf documentLocation++instance Data.ToHeaders StartExpenseAnalysis where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "Textract.StartExpenseAnalysis" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON StartExpenseAnalysis where+ toJSON StartExpenseAnalysis' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ClientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ ("JobTag" Data..=) Prelude.<$> jobTag,+ ("KMSKeyId" Data..=) Prelude.<$> kmsKeyId,+ ("NotificationChannel" Data..=)+ Prelude.<$> notificationChannel,+ ("OutputConfig" Data..=) Prelude.<$> outputConfig,+ Prelude.Just+ ("DocumentLocation" Data..= documentLocation)+ ]+ )++instance Data.ToPath StartExpenseAnalysis where+ toPath = Prelude.const "/"++instance Data.ToQuery StartExpenseAnalysis where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartExpenseAnalysisResponse' smart constructor.+data StartExpenseAnalysisResponse = StartExpenseAnalysisResponse'+ { -- | A unique identifier for the text detection job. The @JobId@ is returned+ -- from @StartExpenseAnalysis@. A @JobId@ value is only valid for 7 days.+ jobId :: 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 'StartExpenseAnalysisResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobId', 'startExpenseAnalysisResponse_jobId' - A unique identifier for the text detection job. The @JobId@ is returned+-- from @StartExpenseAnalysis@. A @JobId@ value is only valid for 7 days.+--+-- 'httpStatus', 'startExpenseAnalysisResponse_httpStatus' - The response's http status code.+newStartExpenseAnalysisResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ StartExpenseAnalysisResponse+newStartExpenseAnalysisResponse pHttpStatus_ =+ StartExpenseAnalysisResponse'+ { jobId =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A unique identifier for the text detection job. The @JobId@ is returned+-- from @StartExpenseAnalysis@. A @JobId@ value is only valid for 7 days.+startExpenseAnalysisResponse_jobId :: Lens.Lens' StartExpenseAnalysisResponse (Prelude.Maybe Prelude.Text)+startExpenseAnalysisResponse_jobId = Lens.lens (\StartExpenseAnalysisResponse' {jobId} -> jobId) (\s@StartExpenseAnalysisResponse' {} a -> s {jobId = a} :: StartExpenseAnalysisResponse)++-- | The response's http status code.+startExpenseAnalysisResponse_httpStatus :: Lens.Lens' StartExpenseAnalysisResponse Prelude.Int+startExpenseAnalysisResponse_httpStatus = Lens.lens (\StartExpenseAnalysisResponse' {httpStatus} -> httpStatus) (\s@StartExpenseAnalysisResponse' {} a -> s {httpStatus = a} :: StartExpenseAnalysisResponse)++instance Prelude.NFData StartExpenseAnalysisResponse where+ rnf StartExpenseAnalysisResponse' {..} =+ Prelude.rnf jobId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Textract/StartLendingAnalysis.hs view
@@ -0,0 +1,308 @@+{-# 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.Textract.StartLendingAnalysis+-- 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 the classification and analysis of an input document.+-- @StartLendingAnalysis@ initiates the classification and analysis of a+-- packet of lending documents. @StartLendingAnalysis@ operates on a+-- document file located in an Amazon S3 bucket.+--+-- @StartLendingAnalysis@ can analyze text in documents that are in one of+-- the following formats: JPEG, PNG, TIFF, PDF. Use @DocumentLocation@ to+-- specify the bucket name and the file name of the document.+--+-- @StartLendingAnalysis@ returns a job identifier (@JobId@) that you use+-- to get the results of the operation. When the text analysis is finished,+-- Amazon Textract publishes a completion status to the Amazon Simple+-- Notification Service (Amazon SNS) topic that you specify in+-- @NotificationChannel@. To get the results of the text analysis+-- operation, first check that the status value published to the Amazon SNS+-- topic is SUCCEEDED. If the status is SUCCEEDED you can call either+-- @GetLendingAnalysis@ or @GetLendingAnalysisSummary@ and provide the+-- @JobId@ to obtain the results of the analysis.+--+-- If using @OutputConfig@ to specify an Amazon S3 bucket, the output will+-- be contained within the specified prefix in a directory labeled with the+-- job-id. In the directory there are 3 sub-directories:+--+-- - detailedResponse (contains the GetLendingAnalysis response)+--+-- - summaryResponse (for the GetLendingAnalysisSummary response)+--+-- - splitDocuments (documents split across logical boundaries)+module Amazonka.Textract.StartLendingAnalysis+ ( -- * Creating a Request+ StartLendingAnalysis (..),+ newStartLendingAnalysis,++ -- * Request Lenses+ startLendingAnalysis_clientRequestToken,+ startLendingAnalysis_jobTag,+ startLendingAnalysis_kmsKeyId,+ startLendingAnalysis_notificationChannel,+ startLendingAnalysis_outputConfig,+ startLendingAnalysis_documentLocation,++ -- * Destructuring the Response+ StartLendingAnalysisResponse (..),+ newStartLendingAnalysisResponse,++ -- * Response Lenses+ startLendingAnalysisResponse_jobId,+ startLendingAnalysisResponse_httpStatus,+ )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Textract.Types++-- | /See:/ 'newStartLendingAnalysis' smart constructor.+data StartLendingAnalysis = StartLendingAnalysis'+ { -- | The idempotent token that you use to identify the start request. If you+ -- use the same token with multiple @StartLendingAnalysis@ requests, the+ -- same @JobId@ is returned. Use @ClientRequestToken@ to prevent the same+ -- job from being accidentally started more than once. For more+ -- information, see+ -- <https://docs.aws.amazon.com/textract/latest/dg/api-sync.html Calling Amazon Textract Asynchronous Operations>.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | An identifier that you specify to be included in the completion+ -- notification published to the Amazon SNS topic. For example, you can use+ -- @JobTag@ to identify the type of document that the completion+ -- notification corresponds to (such as a tax form or a receipt).+ jobTag :: Prelude.Maybe Prelude.Text,+ -- | The KMS key used to encrypt the inference results. This can be in either+ -- Key ID or Key Alias format. When a KMS key is provided, the KMS key will+ -- be used for server-side encryption of the objects in the customer+ -- bucket. When this parameter is not enabled, the result will be encrypted+ -- server side, using SSE-S3.+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ notificationChannel :: Prelude.Maybe NotificationChannel,+ outputConfig :: Prelude.Maybe OutputConfig,+ documentLocation :: DocumentLocation+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartLendingAnalysis' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'startLendingAnalysis_clientRequestToken' - The idempotent token that you use to identify the start request. If you+-- use the same token with multiple @StartLendingAnalysis@ requests, the+-- same @JobId@ is returned. Use @ClientRequestToken@ to prevent the same+-- job from being accidentally started more than once. For more+-- information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/api-sync.html Calling Amazon Textract Asynchronous Operations>.+--+-- 'jobTag', 'startLendingAnalysis_jobTag' - An identifier that you specify to be included in the completion+-- notification published to the Amazon SNS topic. For example, you can use+-- @JobTag@ to identify the type of document that the completion+-- notification corresponds to (such as a tax form or a receipt).+--+-- 'kmsKeyId', 'startLendingAnalysis_kmsKeyId' - The KMS key used to encrypt the inference results. This can be in either+-- Key ID or Key Alias format. When a KMS key is provided, the KMS key will+-- be used for server-side encryption of the objects in the customer+-- bucket. When this parameter is not enabled, the result will be encrypted+-- server side, using SSE-S3.+--+-- 'notificationChannel', 'startLendingAnalysis_notificationChannel' - Undocumented member.+--+-- 'outputConfig', 'startLendingAnalysis_outputConfig' - Undocumented member.+--+-- 'documentLocation', 'startLendingAnalysis_documentLocation' - Undocumented member.+newStartLendingAnalysis ::+ -- | 'documentLocation'+ DocumentLocation ->+ StartLendingAnalysis+newStartLendingAnalysis pDocumentLocation_ =+ StartLendingAnalysis'+ { clientRequestToken =+ Prelude.Nothing,+ jobTag = Prelude.Nothing,+ kmsKeyId = Prelude.Nothing,+ notificationChannel = Prelude.Nothing,+ outputConfig = Prelude.Nothing,+ documentLocation = pDocumentLocation_+ }++-- | The idempotent token that you use to identify the start request. If you+-- use the same token with multiple @StartLendingAnalysis@ requests, the+-- same @JobId@ is returned. Use @ClientRequestToken@ to prevent the same+-- job from being accidentally started more than once. For more+-- information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/api-sync.html Calling Amazon Textract Asynchronous Operations>.+startLendingAnalysis_clientRequestToken :: Lens.Lens' StartLendingAnalysis (Prelude.Maybe Prelude.Text)+startLendingAnalysis_clientRequestToken = Lens.lens (\StartLendingAnalysis' {clientRequestToken} -> clientRequestToken) (\s@StartLendingAnalysis' {} a -> s {clientRequestToken = a} :: StartLendingAnalysis)++-- | An identifier that you specify to be included in the completion+-- notification published to the Amazon SNS topic. For example, you can use+-- @JobTag@ to identify the type of document that the completion+-- notification corresponds to (such as a tax form or a receipt).+startLendingAnalysis_jobTag :: Lens.Lens' StartLendingAnalysis (Prelude.Maybe Prelude.Text)+startLendingAnalysis_jobTag = Lens.lens (\StartLendingAnalysis' {jobTag} -> jobTag) (\s@StartLendingAnalysis' {} a -> s {jobTag = a} :: StartLendingAnalysis)++-- | The KMS key used to encrypt the inference results. This can be in either+-- Key ID or Key Alias format. When a KMS key is provided, the KMS key will+-- be used for server-side encryption of the objects in the customer+-- bucket. When this parameter is not enabled, the result will be encrypted+-- server side, using SSE-S3.+startLendingAnalysis_kmsKeyId :: Lens.Lens' StartLendingAnalysis (Prelude.Maybe Prelude.Text)+startLendingAnalysis_kmsKeyId = Lens.lens (\StartLendingAnalysis' {kmsKeyId} -> kmsKeyId) (\s@StartLendingAnalysis' {} a -> s {kmsKeyId = a} :: StartLendingAnalysis)++-- | Undocumented member.+startLendingAnalysis_notificationChannel :: Lens.Lens' StartLendingAnalysis (Prelude.Maybe NotificationChannel)+startLendingAnalysis_notificationChannel = Lens.lens (\StartLendingAnalysis' {notificationChannel} -> notificationChannel) (\s@StartLendingAnalysis' {} a -> s {notificationChannel = a} :: StartLendingAnalysis)++-- | Undocumented member.+startLendingAnalysis_outputConfig :: Lens.Lens' StartLendingAnalysis (Prelude.Maybe OutputConfig)+startLendingAnalysis_outputConfig = Lens.lens (\StartLendingAnalysis' {outputConfig} -> outputConfig) (\s@StartLendingAnalysis' {} a -> s {outputConfig = a} :: StartLendingAnalysis)++-- | Undocumented member.+startLendingAnalysis_documentLocation :: Lens.Lens' StartLendingAnalysis DocumentLocation+startLendingAnalysis_documentLocation = Lens.lens (\StartLendingAnalysis' {documentLocation} -> documentLocation) (\s@StartLendingAnalysis' {} a -> s {documentLocation = a} :: StartLendingAnalysis)++instance Core.AWSRequest StartLendingAnalysis where+ type+ AWSResponse StartLendingAnalysis =+ StartLendingAnalysisResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ StartLendingAnalysisResponse'+ Prelude.<$> (x Data..?> "JobId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable StartLendingAnalysis where+ hashWithSalt _salt StartLendingAnalysis' {..} =+ _salt+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` jobTag+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` notificationChannel+ `Prelude.hashWithSalt` outputConfig+ `Prelude.hashWithSalt` documentLocation++instance Prelude.NFData StartLendingAnalysis where+ rnf StartLendingAnalysis' {..} =+ Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf jobTag+ `Prelude.seq` Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf notificationChannel+ `Prelude.seq` Prelude.rnf outputConfig+ `Prelude.seq` Prelude.rnf documentLocation++instance Data.ToHeaders StartLendingAnalysis where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "Textract.StartLendingAnalysis" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON StartLendingAnalysis where+ toJSON StartLendingAnalysis' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ClientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ ("JobTag" Data..=) Prelude.<$> jobTag,+ ("KMSKeyId" Data..=) Prelude.<$> kmsKeyId,+ ("NotificationChannel" Data..=)+ Prelude.<$> notificationChannel,+ ("OutputConfig" Data..=) Prelude.<$> outputConfig,+ Prelude.Just+ ("DocumentLocation" Data..= documentLocation)+ ]+ )++instance Data.ToPath StartLendingAnalysis where+ toPath = Prelude.const "/"++instance Data.ToQuery StartLendingAnalysis where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartLendingAnalysisResponse' smart constructor.+data StartLendingAnalysisResponse = StartLendingAnalysisResponse'+ { -- | A unique identifier for the lending or text-detection job. The @JobId@+ -- is returned from @StartLendingAnalysis@. A @JobId@ value is only valid+ -- for 7 days.+ jobId :: 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 'StartLendingAnalysisResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobId', 'startLendingAnalysisResponse_jobId' - A unique identifier for the lending or text-detection job. The @JobId@+-- is returned from @StartLendingAnalysis@. A @JobId@ value is only valid+-- for 7 days.+--+-- 'httpStatus', 'startLendingAnalysisResponse_httpStatus' - The response's http status code.+newStartLendingAnalysisResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ StartLendingAnalysisResponse+newStartLendingAnalysisResponse pHttpStatus_ =+ StartLendingAnalysisResponse'+ { jobId =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A unique identifier for the lending or text-detection job. The @JobId@+-- is returned from @StartLendingAnalysis@. A @JobId@ value is only valid+-- for 7 days.+startLendingAnalysisResponse_jobId :: Lens.Lens' StartLendingAnalysisResponse (Prelude.Maybe Prelude.Text)+startLendingAnalysisResponse_jobId = Lens.lens (\StartLendingAnalysisResponse' {jobId} -> jobId) (\s@StartLendingAnalysisResponse' {} a -> s {jobId = a} :: StartLendingAnalysisResponse)++-- | The response's http status code.+startLendingAnalysisResponse_httpStatus :: Lens.Lens' StartLendingAnalysisResponse Prelude.Int+startLendingAnalysisResponse_httpStatus = Lens.lens (\StartLendingAnalysisResponse' {httpStatus} -> httpStatus) (\s@StartLendingAnalysisResponse' {} a -> s {httpStatus = a} :: StartLendingAnalysisResponse)++instance Prelude.NFData StartLendingAnalysisResponse where+ rnf StartLendingAnalysisResponse' {..} =+ Prelude.rnf jobId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Textract/Types.hs view
@@ -0,0 +1,592 @@+{-# 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.Textract.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.Textract.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _AccessDeniedException,+ _BadDocumentException,+ _DocumentTooLargeException,+ _HumanLoopQuotaExceededException,+ _IdempotentParameterMismatchException,+ _InternalServerError,+ _InvalidJobIdException,+ _InvalidKMSKeyException,+ _InvalidParameterException,+ _InvalidS3ObjectException,+ _LimitExceededException,+ _ProvisionedThroughputExceededException,+ _ThrottlingException,+ _UnsupportedDocumentException,++ -- * BlockType+ BlockType (..),++ -- * ContentClassifier+ ContentClassifier (..),++ -- * EntityType+ EntityType (..),++ -- * FeatureType+ FeatureType (..),++ -- * JobStatus+ JobStatus (..),++ -- * RelationshipType+ RelationshipType (..),++ -- * SelectionStatus+ SelectionStatus (..),++ -- * TextType+ TextType (..),++ -- * ValueType+ ValueType (..),++ -- * AnalyzeIDDetections+ AnalyzeIDDetections (..),+ newAnalyzeIDDetections,+ analyzeIDDetections_confidence,+ analyzeIDDetections_normalizedValue,+ analyzeIDDetections_text,++ -- * Block+ Block (..),+ newBlock,+ block_blockType,+ block_columnIndex,+ block_columnSpan,+ block_confidence,+ block_entityTypes,+ block_geometry,+ block_id,+ block_page,+ block_query,+ block_relationships,+ block_rowIndex,+ block_rowSpan,+ block_selectionStatus,+ block_text,+ block_textType,++ -- * BoundingBox+ BoundingBox (..),+ newBoundingBox,+ boundingBox_height,+ boundingBox_left,+ boundingBox_top,+ boundingBox_width,++ -- * DetectedSignature+ DetectedSignature (..),+ newDetectedSignature,+ detectedSignature_page,++ -- * Document+ Document (..),+ newDocument,+ document_bytes,+ document_s3Object,++ -- * DocumentGroup+ DocumentGroup (..),+ newDocumentGroup,+ documentGroup_detectedSignatures,+ documentGroup_splitDocuments,+ documentGroup_type,+ documentGroup_undetectedSignatures,++ -- * DocumentLocation+ DocumentLocation (..),+ newDocumentLocation,+ documentLocation_s3Object,++ -- * DocumentMetadata+ DocumentMetadata (..),+ newDocumentMetadata,+ documentMetadata_pages,++ -- * ExpenseCurrency+ ExpenseCurrency (..),+ newExpenseCurrency,+ expenseCurrency_code,+ expenseCurrency_confidence,++ -- * ExpenseDetection+ ExpenseDetection (..),+ newExpenseDetection,+ expenseDetection_confidence,+ expenseDetection_geometry,+ expenseDetection_text,++ -- * ExpenseDocument+ ExpenseDocument (..),+ newExpenseDocument,+ expenseDocument_blocks,+ expenseDocument_expenseIndex,+ expenseDocument_lineItemGroups,+ expenseDocument_summaryFields,++ -- * ExpenseField+ ExpenseField (..),+ newExpenseField,+ expenseField_currency,+ expenseField_groupProperties,+ expenseField_labelDetection,+ expenseField_pageNumber,+ expenseField_type,+ expenseField_valueDetection,++ -- * ExpenseGroupProperty+ ExpenseGroupProperty (..),+ newExpenseGroupProperty,+ expenseGroupProperty_id,+ expenseGroupProperty_types,++ -- * ExpenseType+ ExpenseType (..),+ newExpenseType,+ expenseType_confidence,+ expenseType_text,++ -- * Extraction+ Extraction (..),+ newExtraction,+ extraction_expenseDocument,+ extraction_identityDocument,+ extraction_lendingDocument,++ -- * Geometry+ Geometry (..),+ newGeometry,+ geometry_boundingBox,+ geometry_polygon,++ -- * HumanLoopActivationOutput+ HumanLoopActivationOutput (..),+ newHumanLoopActivationOutput,+ humanLoopActivationOutput_humanLoopActivationConditionsEvaluationResults,+ humanLoopActivationOutput_humanLoopActivationReasons,+ humanLoopActivationOutput_humanLoopArn,++ -- * HumanLoopConfig+ HumanLoopConfig (..),+ newHumanLoopConfig,+ humanLoopConfig_dataAttributes,+ humanLoopConfig_humanLoopName,+ humanLoopConfig_flowDefinitionArn,++ -- * HumanLoopDataAttributes+ HumanLoopDataAttributes (..),+ newHumanLoopDataAttributes,+ humanLoopDataAttributes_contentClassifiers,++ -- * IdentityDocument+ IdentityDocument (..),+ newIdentityDocument,+ identityDocument_blocks,+ identityDocument_documentIndex,+ identityDocument_identityDocumentFields,++ -- * IdentityDocumentField+ IdentityDocumentField (..),+ newIdentityDocumentField,+ identityDocumentField_type,+ identityDocumentField_valueDetection,++ -- * LendingDetection+ LendingDetection (..),+ newLendingDetection,+ lendingDetection_confidence,+ lendingDetection_geometry,+ lendingDetection_selectionStatus,+ lendingDetection_text,++ -- * LendingDocument+ LendingDocument (..),+ newLendingDocument,+ lendingDocument_lendingFields,+ lendingDocument_signatureDetections,++ -- * LendingField+ LendingField (..),+ newLendingField,+ lendingField_keyDetection,+ lendingField_type,+ lendingField_valueDetections,++ -- * LendingResult+ LendingResult (..),+ newLendingResult,+ lendingResult_extractions,+ lendingResult_page,+ lendingResult_pageClassification,++ -- * LendingSummary+ LendingSummary (..),+ newLendingSummary,+ lendingSummary_documentGroups,+ lendingSummary_undetectedDocumentTypes,++ -- * LineItemFields+ LineItemFields (..),+ newLineItemFields,+ lineItemFields_lineItemExpenseFields,++ -- * LineItemGroup+ LineItemGroup (..),+ newLineItemGroup,+ lineItemGroup_lineItemGroupIndex,+ lineItemGroup_lineItems,++ -- * NormalizedValue+ NormalizedValue (..),+ newNormalizedValue,+ normalizedValue_value,+ normalizedValue_valueType,++ -- * NotificationChannel+ NotificationChannel (..),+ newNotificationChannel,+ notificationChannel_sNSTopicArn,+ notificationChannel_roleArn,++ -- * OutputConfig+ OutputConfig (..),+ newOutputConfig,+ outputConfig_s3Prefix,+ outputConfig_s3Bucket,++ -- * PageClassification+ PageClassification (..),+ newPageClassification,+ pageClassification_pageType,+ pageClassification_pageNumber,++ -- * Point+ Point (..),+ newPoint,+ point_x,+ point_y,++ -- * Prediction+ Prediction (..),+ newPrediction,+ prediction_confidence,+ prediction_value,++ -- * QueriesConfig+ QueriesConfig (..),+ newQueriesConfig,+ queriesConfig_queries,++ -- * Query+ Query (..),+ newQuery,+ query_alias,+ query_pages,+ query_text,++ -- * Relationship+ Relationship (..),+ newRelationship,+ relationship_ids,+ relationship_type,++ -- * S3Object+ S3Object (..),+ newS3Object,+ s3Object_bucket,+ s3Object_name,+ s3Object_version,++ -- * SignatureDetection+ SignatureDetection (..),+ newSignatureDetection,+ signatureDetection_confidence,+ signatureDetection_geometry,++ -- * SplitDocument+ SplitDocument (..),+ newSplitDocument,+ splitDocument_index,+ splitDocument_pages,++ -- * UndetectedSignature+ UndetectedSignature (..),+ newUndetectedSignature,+ undetectedSignature_page,++ -- * Warning+ Warning (..),+ newWarning,+ warning_errorCode,+ warning_pages,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign+import Amazonka.Textract.Types.AnalyzeIDDetections+import Amazonka.Textract.Types.Block+import Amazonka.Textract.Types.BlockType+import Amazonka.Textract.Types.BoundingBox+import Amazonka.Textract.Types.ContentClassifier+import Amazonka.Textract.Types.DetectedSignature+import Amazonka.Textract.Types.Document+import Amazonka.Textract.Types.DocumentGroup+import Amazonka.Textract.Types.DocumentLocation+import Amazonka.Textract.Types.DocumentMetadata+import Amazonka.Textract.Types.EntityType+import Amazonka.Textract.Types.ExpenseCurrency+import Amazonka.Textract.Types.ExpenseDetection+import Amazonka.Textract.Types.ExpenseDocument+import Amazonka.Textract.Types.ExpenseField+import Amazonka.Textract.Types.ExpenseGroupProperty+import Amazonka.Textract.Types.ExpenseType+import Amazonka.Textract.Types.Extraction+import Amazonka.Textract.Types.FeatureType+import Amazonka.Textract.Types.Geometry+import Amazonka.Textract.Types.HumanLoopActivationOutput+import Amazonka.Textract.Types.HumanLoopConfig+import Amazonka.Textract.Types.HumanLoopDataAttributes+import Amazonka.Textract.Types.IdentityDocument+import Amazonka.Textract.Types.IdentityDocumentField+import Amazonka.Textract.Types.JobStatus+import Amazonka.Textract.Types.LendingDetection+import Amazonka.Textract.Types.LendingDocument+import Amazonka.Textract.Types.LendingField+import Amazonka.Textract.Types.LendingResult+import Amazonka.Textract.Types.LendingSummary+import Amazonka.Textract.Types.LineItemFields+import Amazonka.Textract.Types.LineItemGroup+import Amazonka.Textract.Types.NormalizedValue+import Amazonka.Textract.Types.NotificationChannel+import Amazonka.Textract.Types.OutputConfig+import Amazonka.Textract.Types.PageClassification+import Amazonka.Textract.Types.Point+import Amazonka.Textract.Types.Prediction+import Amazonka.Textract.Types.QueriesConfig+import Amazonka.Textract.Types.Query+import Amazonka.Textract.Types.Relationship+import Amazonka.Textract.Types.RelationshipType+import Amazonka.Textract.Types.S3Object+import Amazonka.Textract.Types.SelectionStatus+import Amazonka.Textract.Types.SignatureDetection+import Amazonka.Textract.Types.SplitDocument+import Amazonka.Textract.Types.TextType+import Amazonka.Textract.Types.UndetectedSignature+import Amazonka.Textract.Types.ValueType+import Amazonka.Textract.Types.Warning++-- | API version @2018-06-27@ of the Amazon Textract SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "Textract",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "textract",+ Core.signingName = "textract",+ Core.version = "2018-06-27",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "Textract",+ Core.retry = retry+ }+ where+ retry =+ Core.Exponential+ { Core.base = 5.0e-2,+ Core.growth = 2,+ Core.attempts = 5,+ Core.check = check+ }+ check e+ | Lens.has (Core.hasStatus 502) e =+ Prelude.Just "bad_gateway"+ | Lens.has (Core.hasStatus 504) e =+ Prelude.Just "gateway_timeout"+ | Lens.has (Core.hasStatus 500) e =+ Prelude.Just "general_server_error"+ | Lens.has (Core.hasStatus 509) e =+ Prelude.Just "limit_exceeded"+ | Lens.has+ ( Core.hasCode "RequestThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "request_throttled_exception"+ | Lens.has (Core.hasStatus 503) e =+ Prelude.Just "service_unavailable"+ | Lens.has+ ( Core.hasCode "ThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttled_exception"+ | Lens.has+ ( Core.hasCode "Throttling"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling"+ | Lens.has+ ( Core.hasCode "ThrottlingException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling_exception"+ | Lens.has+ ( Core.hasCode+ "ProvisionedThroughputExceededException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throughput_exceeded"+ | Lens.has (Core.hasStatus 429) e =+ Prelude.Just "too_many_requests"+ | Prelude.otherwise = Prelude.Nothing++-- | You aren\'t authorized to perform the action. Use the Amazon Resource+-- Name (ARN) of an authorized user or IAM role to perform the operation.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+ Core._MatchServiceError+ defaultService+ "AccessDeniedException"++-- | Amazon Textract isn\'t able to read the document. For more information+-- on the document limits in Amazon Textract, see limits.+_BadDocumentException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BadDocumentException =+ Core._MatchServiceError+ defaultService+ "BadDocumentException"++-- | The document can\'t be processed because it\'s too large. The maximum+-- document size for synchronous operations 10 MB. The maximum document+-- size for asynchronous operations is 500 MB for PDF files.+_DocumentTooLargeException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DocumentTooLargeException =+ Core._MatchServiceError+ defaultService+ "DocumentTooLargeException"++-- | Indicates you have exceeded the maximum number of active human in the+-- loop workflows available+_HumanLoopQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_HumanLoopQuotaExceededException =+ Core._MatchServiceError+ defaultService+ "HumanLoopQuotaExceededException"++-- | A @ClientRequestToken@ input parameter was reused with an operation, but+-- at least one of the other input parameters is different from the+-- previous call to the operation.+_IdempotentParameterMismatchException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_IdempotentParameterMismatchException =+ Core._MatchServiceError+ defaultService+ "IdempotentParameterMismatchException"++-- | Amazon Textract experienced a service issue. Try your call again.+_InternalServerError :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerError =+ Core._MatchServiceError+ defaultService+ "InternalServerError"++-- | An invalid job identifier was passed to an asynchronous analysis+-- operation.+_InvalidJobIdException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidJobIdException =+ Core._MatchServiceError+ defaultService+ "InvalidJobIdException"++-- | Indicates you do not have decrypt permissions with the KMS key entered,+-- or the KMS key was entered incorrectly.+_InvalidKMSKeyException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidKMSKeyException =+ Core._MatchServiceError+ defaultService+ "InvalidKMSKeyException"++-- | An input parameter violated a constraint. For example, in synchronous+-- operations, an @InvalidParameterException@ exception occurs when neither+-- of the @S3Object@ or @Bytes@ values are supplied in the @Document@+-- request parameter. Validate your parameter before calling the API+-- operation again.+_InvalidParameterException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidParameterException =+ Core._MatchServiceError+ defaultService+ "InvalidParameterException"++-- | Amazon Textract is unable to access the S3 object that\'s specified in+-- the request. for more information,+-- <https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html Configure Access to Amazon S3>+-- For troubleshooting information, see+-- <https://docs.aws.amazon.com/AmazonS3/latest/dev/troubleshooting.html Troubleshooting Amazon S3>+_InvalidS3ObjectException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidS3ObjectException =+ Core._MatchServiceError+ defaultService+ "InvalidS3ObjectException"++-- | An Amazon Textract service limit was exceeded. For example, if you start+-- too many asynchronous jobs concurrently, calls to start operations+-- (@StartDocumentTextDetection@, for example) raise a+-- LimitExceededException exception (HTTP status code: 400) until the+-- number of concurrently running jobs is below the Amazon Textract service+-- limit.+_LimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LimitExceededException =+ Core._MatchServiceError+ defaultService+ "LimitExceededException"++-- | The number of requests exceeded your throughput limit. If you want to+-- increase this limit, contact Amazon Textract.+_ProvisionedThroughputExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ProvisionedThroughputExceededException =+ Core._MatchServiceError+ defaultService+ "ProvisionedThroughputExceededException"++-- | Amazon Textract is temporarily unable to process the request. Try your+-- call again.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+ Core._MatchServiceError+ defaultService+ "ThrottlingException"++-- | The format of the input document isn\'t supported. Documents for+-- operations can be in PNG, JPEG, PDF, or TIFF format.+_UnsupportedDocumentException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UnsupportedDocumentException =+ Core._MatchServiceError+ defaultService+ "UnsupportedDocumentException"
+ gen/Amazonka/Textract/Types/AnalyzeIDDetections.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.Textract.Types.AnalyzeIDDetections+-- Copyright : (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.Textract.Types.AnalyzeIDDetections 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+import Amazonka.Textract.Types.NormalizedValue++-- | Used to contain the information detected by an AnalyzeID operation.+--+-- /See:/ 'newAnalyzeIDDetections' smart constructor.+data AnalyzeIDDetections = AnalyzeIDDetections'+ { -- | The confidence score of the detected text.+ confidence :: Prelude.Maybe Prelude.Double,+ -- | Only returned for dates, returns the type of value detected and the date+ -- written in a more machine readable way.+ normalizedValue :: Prelude.Maybe NormalizedValue,+ -- | Text of either the normalized field or value associated with it.+ text :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnalyzeIDDetections' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'confidence', 'analyzeIDDetections_confidence' - The confidence score of the detected text.+--+-- 'normalizedValue', 'analyzeIDDetections_normalizedValue' - Only returned for dates, returns the type of value detected and the date+-- written in a more machine readable way.+--+-- 'text', 'analyzeIDDetections_text' - Text of either the normalized field or value associated with it.+newAnalyzeIDDetections ::+ -- | 'text'+ Prelude.Text ->+ AnalyzeIDDetections+newAnalyzeIDDetections pText_ =+ AnalyzeIDDetections'+ { confidence = Prelude.Nothing,+ normalizedValue = Prelude.Nothing,+ text = pText_+ }++-- | The confidence score of the detected text.+analyzeIDDetections_confidence :: Lens.Lens' AnalyzeIDDetections (Prelude.Maybe Prelude.Double)+analyzeIDDetections_confidence = Lens.lens (\AnalyzeIDDetections' {confidence} -> confidence) (\s@AnalyzeIDDetections' {} a -> s {confidence = a} :: AnalyzeIDDetections)++-- | Only returned for dates, returns the type of value detected and the date+-- written in a more machine readable way.+analyzeIDDetections_normalizedValue :: Lens.Lens' AnalyzeIDDetections (Prelude.Maybe NormalizedValue)+analyzeIDDetections_normalizedValue = Lens.lens (\AnalyzeIDDetections' {normalizedValue} -> normalizedValue) (\s@AnalyzeIDDetections' {} a -> s {normalizedValue = a} :: AnalyzeIDDetections)++-- | Text of either the normalized field or value associated with it.+analyzeIDDetections_text :: Lens.Lens' AnalyzeIDDetections Prelude.Text+analyzeIDDetections_text = Lens.lens (\AnalyzeIDDetections' {text} -> text) (\s@AnalyzeIDDetections' {} a -> s {text = a} :: AnalyzeIDDetections)++instance Data.FromJSON AnalyzeIDDetections where+ parseJSON =+ Data.withObject+ "AnalyzeIDDetections"+ ( \x ->+ AnalyzeIDDetections'+ Prelude.<$> (x Data..:? "Confidence")+ Prelude.<*> (x Data..:? "NormalizedValue")+ Prelude.<*> (x Data..: "Text")+ )++instance Prelude.Hashable AnalyzeIDDetections where+ hashWithSalt _salt AnalyzeIDDetections' {..} =+ _salt+ `Prelude.hashWithSalt` confidence+ `Prelude.hashWithSalt` normalizedValue+ `Prelude.hashWithSalt` text++instance Prelude.NFData AnalyzeIDDetections where+ rnf AnalyzeIDDetections' {..} =+ Prelude.rnf confidence+ `Prelude.seq` Prelude.rnf normalizedValue+ `Prelude.seq` Prelude.rnf text
+ gen/Amazonka/Textract/Types/Block.hs view
@@ -0,0 +1,530 @@+{-# 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.Textract.Types.Block+-- Copyright : (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.Textract.Types.Block 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+import Amazonka.Textract.Types.BlockType+import Amazonka.Textract.Types.EntityType+import Amazonka.Textract.Types.Geometry+import Amazonka.Textract.Types.Query+import Amazonka.Textract.Types.Relationship+import Amazonka.Textract.Types.SelectionStatus+import Amazonka.Textract.Types.TextType++-- | A @Block@ represents items that are recognized in a document within a+-- group of pixels close to each other. The information returned in a+-- @Block@ object depends on the type of operation. In text detection for+-- documents (for example DetectDocumentText), you get information about+-- the detected words and lines of text. In text analysis (for example+-- AnalyzeDocument), you can also get information about the fields, tables,+-- and selection elements that are detected in the document.+--+-- An array of @Block@ objects is returned by both synchronous and+-- asynchronous operations. In synchronous operations, such as+-- DetectDocumentText, the array of @Block@ objects is the entire set of+-- results. In asynchronous operations, such as GetDocumentAnalysis, the+-- array is returned over one or more responses.+--+-- For more information, see+-- <https://docs.aws.amazon.com/textract/latest/dg/how-it-works.html How Amazon Textract Works>.+--+-- /See:/ 'newBlock' smart constructor.+data Block = Block'+ { -- | The type of text item that\'s recognized. In operations for text+ -- detection, the following types are returned:+ --+ -- - /PAGE/ - Contains a list of the LINE @Block@ objects that are+ -- detected on a document page.+ --+ -- - /WORD/ - A word detected on a document page. A word is one or more+ -- ISO basic Latin script characters that aren\'t separated by spaces.+ --+ -- - /LINE/ - A string of tab-delimited, contiguous words that are+ -- detected on a document page.+ --+ -- In text analysis operations, the following types are returned:+ --+ -- - /PAGE/ - Contains a list of child @Block@ objects that are detected+ -- on a document page.+ --+ -- - /KEY_VALUE_SET/ - Stores the KEY and VALUE @Block@ objects for+ -- linked text that\'s detected on a document page. Use the+ -- @EntityType@ field to determine if a KEY_VALUE_SET object is a KEY+ -- @Block@ object or a VALUE @Block@ object.+ --+ -- - /WORD/ - A word that\'s detected on a document page. A word is one+ -- or more ISO basic Latin script characters that aren\'t separated by+ -- spaces.+ --+ -- - /LINE/ - A string of tab-delimited, contiguous words that are+ -- detected on a document page.+ --+ -- - /TABLE/ - A table that\'s detected on a document page. A table is+ -- grid-based information with two or more rows or columns, with a cell+ -- span of one row and one column each.+ --+ -- - /CELL/ - A cell within a detected table. The cell is the parent of+ -- the block that contains the text in the cell.+ --+ -- - /SELECTION_ELEMENT/ - A selection element such as an option button+ -- (radio button) or a check box that\'s detected on a document page.+ -- Use the value of @SelectionStatus@ to determine the status of the+ -- selection element.+ --+ -- - /SIGNATURE/ - The location and confidene score of a signature+ -- detected on a document page. Can be returned as part of a Key-Value+ -- pair or a detected cell.+ --+ -- - /QUERY/ - A question asked during the call of AnalyzeDocument.+ -- Contains an alias and an ID that attaches it to its answer.+ --+ -- - /QUERY_RESULT/ - A response to a question asked during the call of+ -- analyze document. Comes with an alias and ID for ease of locating in+ -- a response. Also contains location and confidence score.+ blockType :: Prelude.Maybe BlockType,+ -- | The column in which a table cell appears. The first column position is+ -- 1. @ColumnIndex@ isn\'t returned by @DetectDocumentText@ and+ -- @GetDocumentTextDetection@.+ columnIndex :: Prelude.Maybe Prelude.Natural,+ -- | The number of columns that a table cell spans. Currently this value is+ -- always 1, even if the number of columns spanned is greater than 1.+ -- @ColumnSpan@ isn\'t returned by @DetectDocumentText@ and+ -- @GetDocumentTextDetection@.+ columnSpan :: Prelude.Maybe Prelude.Natural,+ -- | The confidence score that Amazon Textract has in the accuracy of the+ -- recognized text and the accuracy of the geometry points around the+ -- recognized text.+ confidence :: Prelude.Maybe Prelude.Double,+ -- | The type of entity. The following can be returned:+ --+ -- - /KEY/ - An identifier for a field on the document.+ --+ -- - /VALUE/ - The field text.+ --+ -- @EntityTypes@ isn\'t returned by @DetectDocumentText@ and+ -- @GetDocumentTextDetection@.+ entityTypes :: Prelude.Maybe [EntityType],+ -- | The location of the recognized text on the image. It includes an+ -- axis-aligned, coarse bounding box that surrounds the text, and a+ -- finer-grain polygon for more accurate spatial information.+ geometry :: Prelude.Maybe Geometry,+ -- | The identifier for the recognized text. The identifier is only unique+ -- for a single operation.+ id :: Prelude.Maybe Prelude.Text,+ -- | The page on which a block was detected. @Page@ is returned by+ -- synchronous and asynchronous operations. Page values greater than 1 are+ -- only returned for multipage documents that are in PDF or TIFF format. A+ -- scanned image (JPEG\/PNG) provided to an asynchronous operation, even if+ -- it contains multiple document pages, is considered a single-page+ -- document. This means that for scanned images the value of @Page@ is+ -- always 1. Synchronous operations operations will also return a @Page@+ -- value of 1 because every input document is considered to be a+ -- single-page document.+ page :: Prelude.Maybe Prelude.Natural,+ query :: Prelude.Maybe Query,+ -- | A list of child blocks of the current block. For example, a LINE object+ -- has child blocks for each WORD block that\'s part of the line of text.+ -- There aren\'t Relationship objects in the list for relationships that+ -- don\'t exist, such as when the current block has no child blocks. The+ -- list size can be the following:+ --+ -- - 0 - The block has no child blocks.+ --+ -- - 1 - The block has child blocks.+ relationships :: Prelude.Maybe [Relationship],+ -- | The row in which a table cell is located. The first row position is 1.+ -- @RowIndex@ isn\'t returned by @DetectDocumentText@ and+ -- @GetDocumentTextDetection@.+ rowIndex :: Prelude.Maybe Prelude.Natural,+ -- | The number of rows that a table cell spans. Currently this value is+ -- always 1, even if the number of rows spanned is greater than 1.+ -- @RowSpan@ isn\'t returned by @DetectDocumentText@ and+ -- @GetDocumentTextDetection@.+ rowSpan :: Prelude.Maybe Prelude.Natural,+ -- | The selection status of a selection element, such as an option button or+ -- check box.+ selectionStatus :: Prelude.Maybe SelectionStatus,+ -- | The word or line of text that\'s recognized by Amazon Textract.+ text :: Prelude.Maybe Prelude.Text,+ -- | The kind of text that Amazon Textract has detected. Can check for+ -- handwritten text and printed text.+ textType :: Prelude.Maybe TextType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Block' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'blockType', 'block_blockType' - The type of text item that\'s recognized. In operations for text+-- detection, the following types are returned:+--+-- - /PAGE/ - Contains a list of the LINE @Block@ objects that are+-- detected on a document page.+--+-- - /WORD/ - A word detected on a document page. A word is one or more+-- ISO basic Latin script characters that aren\'t separated by spaces.+--+-- - /LINE/ - A string of tab-delimited, contiguous words that are+-- detected on a document page.+--+-- In text analysis operations, the following types are returned:+--+-- - /PAGE/ - Contains a list of child @Block@ objects that are detected+-- on a document page.+--+-- - /KEY_VALUE_SET/ - Stores the KEY and VALUE @Block@ objects for+-- linked text that\'s detected on a document page. Use the+-- @EntityType@ field to determine if a KEY_VALUE_SET object is a KEY+-- @Block@ object or a VALUE @Block@ object.+--+-- - /WORD/ - A word that\'s detected on a document page. A word is one+-- or more ISO basic Latin script characters that aren\'t separated by+-- spaces.+--+-- - /LINE/ - A string of tab-delimited, contiguous words that are+-- detected on a document page.+--+-- - /TABLE/ - A table that\'s detected on a document page. A table is+-- grid-based information with two or more rows or columns, with a cell+-- span of one row and one column each.+--+-- - /CELL/ - A cell within a detected table. The cell is the parent of+-- the block that contains the text in the cell.+--+-- - /SELECTION_ELEMENT/ - A selection element such as an option button+-- (radio button) or a check box that\'s detected on a document page.+-- Use the value of @SelectionStatus@ to determine the status of the+-- selection element.+--+-- - /SIGNATURE/ - The location and confidene score of a signature+-- detected on a document page. Can be returned as part of a Key-Value+-- pair or a detected cell.+--+-- - /QUERY/ - A question asked during the call of AnalyzeDocument.+-- Contains an alias and an ID that attaches it to its answer.+--+-- - /QUERY_RESULT/ - A response to a question asked during the call of+-- analyze document. Comes with an alias and ID for ease of locating in+-- a response. Also contains location and confidence score.+--+-- 'columnIndex', 'block_columnIndex' - The column in which a table cell appears. The first column position is+-- 1. @ColumnIndex@ isn\'t returned by @DetectDocumentText@ and+-- @GetDocumentTextDetection@.+--+-- 'columnSpan', 'block_columnSpan' - The number of columns that a table cell spans. Currently this value is+-- always 1, even if the number of columns spanned is greater than 1.+-- @ColumnSpan@ isn\'t returned by @DetectDocumentText@ and+-- @GetDocumentTextDetection@.+--+-- 'confidence', 'block_confidence' - The confidence score that Amazon Textract has in the accuracy of the+-- recognized text and the accuracy of the geometry points around the+-- recognized text.+--+-- 'entityTypes', 'block_entityTypes' - The type of entity. The following can be returned:+--+-- - /KEY/ - An identifier for a field on the document.+--+-- - /VALUE/ - The field text.+--+-- @EntityTypes@ isn\'t returned by @DetectDocumentText@ and+-- @GetDocumentTextDetection@.+--+-- 'geometry', 'block_geometry' - The location of the recognized text on the image. It includes an+-- axis-aligned, coarse bounding box that surrounds the text, and a+-- finer-grain polygon for more accurate spatial information.+--+-- 'id', 'block_id' - The identifier for the recognized text. The identifier is only unique+-- for a single operation.+--+-- 'page', 'block_page' - The page on which a block was detected. @Page@ is returned by+-- synchronous and asynchronous operations. Page values greater than 1 are+-- only returned for multipage documents that are in PDF or TIFF format. A+-- scanned image (JPEG\/PNG) provided to an asynchronous operation, even if+-- it contains multiple document pages, is considered a single-page+-- document. This means that for scanned images the value of @Page@ is+-- always 1. Synchronous operations operations will also return a @Page@+-- value of 1 because every input document is considered to be a+-- single-page document.+--+-- 'query', 'block_query' -+--+-- 'relationships', 'block_relationships' - A list of child blocks of the current block. For example, a LINE object+-- has child blocks for each WORD block that\'s part of the line of text.+-- There aren\'t Relationship objects in the list for relationships that+-- don\'t exist, such as when the current block has no child blocks. The+-- list size can be the following:+--+-- - 0 - The block has no child blocks.+--+-- - 1 - The block has child blocks.+--+-- 'rowIndex', 'block_rowIndex' - The row in which a table cell is located. The first row position is 1.+-- @RowIndex@ isn\'t returned by @DetectDocumentText@ and+-- @GetDocumentTextDetection@.+--+-- 'rowSpan', 'block_rowSpan' - The number of rows that a table cell spans. Currently this value is+-- always 1, even if the number of rows spanned is greater than 1.+-- @RowSpan@ isn\'t returned by @DetectDocumentText@ and+-- @GetDocumentTextDetection@.+--+-- 'selectionStatus', 'block_selectionStatus' - The selection status of a selection element, such as an option button or+-- check box.+--+-- 'text', 'block_text' - The word or line of text that\'s recognized by Amazon Textract.+--+-- 'textType', 'block_textType' - The kind of text that Amazon Textract has detected. Can check for+-- handwritten text and printed text.+newBlock ::+ Block+newBlock =+ Block'+ { blockType = Prelude.Nothing,+ columnIndex = Prelude.Nothing,+ columnSpan = Prelude.Nothing,+ confidence = Prelude.Nothing,+ entityTypes = Prelude.Nothing,+ geometry = Prelude.Nothing,+ id = Prelude.Nothing,+ page = Prelude.Nothing,+ query = Prelude.Nothing,+ relationships = Prelude.Nothing,+ rowIndex = Prelude.Nothing,+ rowSpan = Prelude.Nothing,+ selectionStatus = Prelude.Nothing,+ text = Prelude.Nothing,+ textType = Prelude.Nothing+ }++-- | The type of text item that\'s recognized. In operations for text+-- detection, the following types are returned:+--+-- - /PAGE/ - Contains a list of the LINE @Block@ objects that are+-- detected on a document page.+--+-- - /WORD/ - A word detected on a document page. A word is one or more+-- ISO basic Latin script characters that aren\'t separated by spaces.+--+-- - /LINE/ - A string of tab-delimited, contiguous words that are+-- detected on a document page.+--+-- In text analysis operations, the following types are returned:+--+-- - /PAGE/ - Contains a list of child @Block@ objects that are detected+-- on a document page.+--+-- - /KEY_VALUE_SET/ - Stores the KEY and VALUE @Block@ objects for+-- linked text that\'s detected on a document page. Use the+-- @EntityType@ field to determine if a KEY_VALUE_SET object is a KEY+-- @Block@ object or a VALUE @Block@ object.+--+-- - /WORD/ - A word that\'s detected on a document page. A word is one+-- or more ISO basic Latin script characters that aren\'t separated by+-- spaces.+--+-- - /LINE/ - A string of tab-delimited, contiguous words that are+-- detected on a document page.+--+-- - /TABLE/ - A table that\'s detected on a document page. A table is+-- grid-based information with two or more rows or columns, with a cell+-- span of one row and one column each.+--+-- - /CELL/ - A cell within a detected table. The cell is the parent of+-- the block that contains the text in the cell.+--+-- - /SELECTION_ELEMENT/ - A selection element such as an option button+-- (radio button) or a check box that\'s detected on a document page.+-- Use the value of @SelectionStatus@ to determine the status of the+-- selection element.+--+-- - /SIGNATURE/ - The location and confidene score of a signature+-- detected on a document page. Can be returned as part of a Key-Value+-- pair or a detected cell.+--+-- - /QUERY/ - A question asked during the call of AnalyzeDocument.+-- Contains an alias and an ID that attaches it to its answer.+--+-- - /QUERY_RESULT/ - A response to a question asked during the call of+-- analyze document. Comes with an alias and ID for ease of locating in+-- a response. Also contains location and confidence score.+block_blockType :: Lens.Lens' Block (Prelude.Maybe BlockType)+block_blockType = Lens.lens (\Block' {blockType} -> blockType) (\s@Block' {} a -> s {blockType = a} :: Block)++-- | The column in which a table cell appears. The first column position is+-- 1. @ColumnIndex@ isn\'t returned by @DetectDocumentText@ and+-- @GetDocumentTextDetection@.+block_columnIndex :: Lens.Lens' Block (Prelude.Maybe Prelude.Natural)+block_columnIndex = Lens.lens (\Block' {columnIndex} -> columnIndex) (\s@Block' {} a -> s {columnIndex = a} :: Block)++-- | The number of columns that a table cell spans. Currently this value is+-- always 1, even if the number of columns spanned is greater than 1.+-- @ColumnSpan@ isn\'t returned by @DetectDocumentText@ and+-- @GetDocumentTextDetection@.+block_columnSpan :: Lens.Lens' Block (Prelude.Maybe Prelude.Natural)+block_columnSpan = Lens.lens (\Block' {columnSpan} -> columnSpan) (\s@Block' {} a -> s {columnSpan = a} :: Block)++-- | The confidence score that Amazon Textract has in the accuracy of the+-- recognized text and the accuracy of the geometry points around the+-- recognized text.+block_confidence :: Lens.Lens' Block (Prelude.Maybe Prelude.Double)+block_confidence = Lens.lens (\Block' {confidence} -> confidence) (\s@Block' {} a -> s {confidence = a} :: Block)++-- | The type of entity. The following can be returned:+--+-- - /KEY/ - An identifier for a field on the document.+--+-- - /VALUE/ - The field text.+--+-- @EntityTypes@ isn\'t returned by @DetectDocumentText@ and+-- @GetDocumentTextDetection@.+block_entityTypes :: Lens.Lens' Block (Prelude.Maybe [EntityType])+block_entityTypes = Lens.lens (\Block' {entityTypes} -> entityTypes) (\s@Block' {} a -> s {entityTypes = a} :: Block) Prelude.. Lens.mapping Lens.coerced++-- | The location of the recognized text on the image. It includes an+-- axis-aligned, coarse bounding box that surrounds the text, and a+-- finer-grain polygon for more accurate spatial information.+block_geometry :: Lens.Lens' Block (Prelude.Maybe Geometry)+block_geometry = Lens.lens (\Block' {geometry} -> geometry) (\s@Block' {} a -> s {geometry = a} :: Block)++-- | The identifier for the recognized text. The identifier is only unique+-- for a single operation.+block_id :: Lens.Lens' Block (Prelude.Maybe Prelude.Text)+block_id = Lens.lens (\Block' {id} -> id) (\s@Block' {} a -> s {id = a} :: Block)++-- | The page on which a block was detected. @Page@ is returned by+-- synchronous and asynchronous operations. Page values greater than 1 are+-- only returned for multipage documents that are in PDF or TIFF format. A+-- scanned image (JPEG\/PNG) provided to an asynchronous operation, even if+-- it contains multiple document pages, is considered a single-page+-- document. This means that for scanned images the value of @Page@ is+-- always 1. Synchronous operations operations will also return a @Page@+-- value of 1 because every input document is considered to be a+-- single-page document.+block_page :: Lens.Lens' Block (Prelude.Maybe Prelude.Natural)+block_page = Lens.lens (\Block' {page} -> page) (\s@Block' {} a -> s {page = a} :: Block)++block_query :: Lens.Lens' Block (Prelude.Maybe Query)+block_query = Lens.lens (\Block' {query} -> query) (\s@Block' {} a -> s {query = a} :: Block)++-- | A list of child blocks of the current block. For example, a LINE object+-- has child blocks for each WORD block that\'s part of the line of text.+-- There aren\'t Relationship objects in the list for relationships that+-- don\'t exist, such as when the current block has no child blocks. The+-- list size can be the following:+--+-- - 0 - The block has no child blocks.+--+-- - 1 - The block has child blocks.+block_relationships :: Lens.Lens' Block (Prelude.Maybe [Relationship])+block_relationships = Lens.lens (\Block' {relationships} -> relationships) (\s@Block' {} a -> s {relationships = a} :: Block) Prelude.. Lens.mapping Lens.coerced++-- | The row in which a table cell is located. The first row position is 1.+-- @RowIndex@ isn\'t returned by @DetectDocumentText@ and+-- @GetDocumentTextDetection@.+block_rowIndex :: Lens.Lens' Block (Prelude.Maybe Prelude.Natural)+block_rowIndex = Lens.lens (\Block' {rowIndex} -> rowIndex) (\s@Block' {} a -> s {rowIndex = a} :: Block)++-- | The number of rows that a table cell spans. Currently this value is+-- always 1, even if the number of rows spanned is greater than 1.+-- @RowSpan@ isn\'t returned by @DetectDocumentText@ and+-- @GetDocumentTextDetection@.+block_rowSpan :: Lens.Lens' Block (Prelude.Maybe Prelude.Natural)+block_rowSpan = Lens.lens (\Block' {rowSpan} -> rowSpan) (\s@Block' {} a -> s {rowSpan = a} :: Block)++-- | The selection status of a selection element, such as an option button or+-- check box.+block_selectionStatus :: Lens.Lens' Block (Prelude.Maybe SelectionStatus)+block_selectionStatus = Lens.lens (\Block' {selectionStatus} -> selectionStatus) (\s@Block' {} a -> s {selectionStatus = a} :: Block)++-- | The word or line of text that\'s recognized by Amazon Textract.+block_text :: Lens.Lens' Block (Prelude.Maybe Prelude.Text)+block_text = Lens.lens (\Block' {text} -> text) (\s@Block' {} a -> s {text = a} :: Block)++-- | The kind of text that Amazon Textract has detected. Can check for+-- handwritten text and printed text.+block_textType :: Lens.Lens' Block (Prelude.Maybe TextType)+block_textType = Lens.lens (\Block' {textType} -> textType) (\s@Block' {} a -> s {textType = a} :: Block)++instance Data.FromJSON Block where+ parseJSON =+ Data.withObject+ "Block"+ ( \x ->+ Block'+ Prelude.<$> (x Data..:? "BlockType")+ Prelude.<*> (x Data..:? "ColumnIndex")+ Prelude.<*> (x Data..:? "ColumnSpan")+ Prelude.<*> (x Data..:? "Confidence")+ Prelude.<*> (x Data..:? "EntityTypes" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "Geometry")+ Prelude.<*> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "Page")+ Prelude.<*> (x Data..:? "Query")+ Prelude.<*> (x Data..:? "Relationships" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "RowIndex")+ Prelude.<*> (x Data..:? "RowSpan")+ Prelude.<*> (x Data..:? "SelectionStatus")+ Prelude.<*> (x Data..:? "Text")+ Prelude.<*> (x Data..:? "TextType")+ )++instance Prelude.Hashable Block where+ hashWithSalt _salt Block' {..} =+ _salt+ `Prelude.hashWithSalt` blockType+ `Prelude.hashWithSalt` columnIndex+ `Prelude.hashWithSalt` columnSpan+ `Prelude.hashWithSalt` confidence+ `Prelude.hashWithSalt` entityTypes+ `Prelude.hashWithSalt` geometry+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` page+ `Prelude.hashWithSalt` query+ `Prelude.hashWithSalt` relationships+ `Prelude.hashWithSalt` rowIndex+ `Prelude.hashWithSalt` rowSpan+ `Prelude.hashWithSalt` selectionStatus+ `Prelude.hashWithSalt` text+ `Prelude.hashWithSalt` textType++instance Prelude.NFData Block where+ rnf Block' {..} =+ Prelude.rnf blockType+ `Prelude.seq` Prelude.rnf columnIndex+ `Prelude.seq` Prelude.rnf columnSpan+ `Prelude.seq` Prelude.rnf confidence+ `Prelude.seq` Prelude.rnf entityTypes+ `Prelude.seq` Prelude.rnf geometry+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf page+ `Prelude.seq` Prelude.rnf query+ `Prelude.seq` Prelude.rnf relationships+ `Prelude.seq` Prelude.rnf rowIndex+ `Prelude.seq` Prelude.rnf rowSpan+ `Prelude.seq` Prelude.rnf selectionStatus+ `Prelude.seq` Prelude.rnf text+ `Prelude.seq` Prelude.rnf textType
+ gen/Amazonka/Textract/Types/BlockType.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.Textract.Types.BlockType+-- Copyright : (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.Textract.Types.BlockType+ ( BlockType+ ( ..,+ BlockType_CELL,+ BlockType_KEY_VALUE_SET,+ BlockType_LINE,+ BlockType_MERGED_CELL,+ BlockType_PAGE,+ BlockType_QUERY,+ BlockType_QUERY_RESULT,+ BlockType_SELECTION_ELEMENT,+ BlockType_SIGNATURE,+ BlockType_TABLE,+ BlockType_TITLE,+ BlockType_WORD+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BlockType = BlockType'+ { fromBlockType ::+ 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 BlockType_CELL :: BlockType+pattern BlockType_CELL = BlockType' "CELL"++pattern BlockType_KEY_VALUE_SET :: BlockType+pattern BlockType_KEY_VALUE_SET = BlockType' "KEY_VALUE_SET"++pattern BlockType_LINE :: BlockType+pattern BlockType_LINE = BlockType' "LINE"++pattern BlockType_MERGED_CELL :: BlockType+pattern BlockType_MERGED_CELL = BlockType' "MERGED_CELL"++pattern BlockType_PAGE :: BlockType+pattern BlockType_PAGE = BlockType' "PAGE"++pattern BlockType_QUERY :: BlockType+pattern BlockType_QUERY = BlockType' "QUERY"++pattern BlockType_QUERY_RESULT :: BlockType+pattern BlockType_QUERY_RESULT = BlockType' "QUERY_RESULT"++pattern BlockType_SELECTION_ELEMENT :: BlockType+pattern BlockType_SELECTION_ELEMENT = BlockType' "SELECTION_ELEMENT"++pattern BlockType_SIGNATURE :: BlockType+pattern BlockType_SIGNATURE = BlockType' "SIGNATURE"++pattern BlockType_TABLE :: BlockType+pattern BlockType_TABLE = BlockType' "TABLE"++pattern BlockType_TITLE :: BlockType+pattern BlockType_TITLE = BlockType' "TITLE"++pattern BlockType_WORD :: BlockType+pattern BlockType_WORD = BlockType' "WORD"++{-# COMPLETE+ BlockType_CELL,+ BlockType_KEY_VALUE_SET,+ BlockType_LINE,+ BlockType_MERGED_CELL,+ BlockType_PAGE,+ BlockType_QUERY,+ BlockType_QUERY_RESULT,+ BlockType_SELECTION_ELEMENT,+ BlockType_SIGNATURE,+ BlockType_TABLE,+ BlockType_TITLE,+ BlockType_WORD,+ BlockType'+ #-}
+ gen/Amazonka/Textract/Types/BoundingBox.hs view
@@ -0,0 +1,135 @@+{-# 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.Textract.Types.BoundingBox+-- Copyright : (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.Textract.Types.BoundingBox 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 bounding box around the detected page, text, key-value pair, table,+-- table cell, or selection element on a document page. The @left@+-- (x-coordinate) and @top@ (y-coordinate) are coordinates that represent+-- the top and left sides of the bounding box. Note that the upper-left+-- corner of the image is the origin (0,0).+--+-- The @top@ and @left@ values returned are ratios of the overall document+-- page size. For example, if the input image is 700 x 200 pixels, and the+-- top-left coordinate of the bounding box is 350 x 50 pixels, the API+-- returns a @left@ value of 0.5 (350\/700) and a @top@ value of 0.25+-- (50\/200).+--+-- The @width@ and @height@ values represent the dimensions of the bounding+-- box as a ratio of the overall document page dimension. For example, if+-- the document page size is 700 x 200 pixels, and the bounding box width+-- is 70 pixels, the width returned is 0.1.+--+-- /See:/ 'newBoundingBox' smart constructor.+data BoundingBox = BoundingBox'+ { -- | The height of the bounding box as a ratio of the overall document page+ -- height.+ height :: Prelude.Maybe Prelude.Double,+ -- | The left coordinate of the bounding box as a ratio of overall document+ -- page width.+ left :: Prelude.Maybe Prelude.Double,+ -- | The top coordinate of the bounding box as a ratio of overall document+ -- page height.+ top :: Prelude.Maybe Prelude.Double,+ -- | The width of the bounding box as a ratio of the overall document page+ -- width.+ width :: Prelude.Maybe Prelude.Double+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BoundingBox' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'height', 'boundingBox_height' - The height of the bounding box as a ratio of the overall document page+-- height.+--+-- 'left', 'boundingBox_left' - The left coordinate of the bounding box as a ratio of overall document+-- page width.+--+-- 'top', 'boundingBox_top' - The top coordinate of the bounding box as a ratio of overall document+-- page height.+--+-- 'width', 'boundingBox_width' - The width of the bounding box as a ratio of the overall document page+-- width.+newBoundingBox ::+ BoundingBox+newBoundingBox =+ BoundingBox'+ { height = Prelude.Nothing,+ left = Prelude.Nothing,+ top = Prelude.Nothing,+ width = Prelude.Nothing+ }++-- | The height of the bounding box as a ratio of the overall document page+-- height.+boundingBox_height :: Lens.Lens' BoundingBox (Prelude.Maybe Prelude.Double)+boundingBox_height = Lens.lens (\BoundingBox' {height} -> height) (\s@BoundingBox' {} a -> s {height = a} :: BoundingBox)++-- | The left coordinate of the bounding box as a ratio of overall document+-- page width.+boundingBox_left :: Lens.Lens' BoundingBox (Prelude.Maybe Prelude.Double)+boundingBox_left = Lens.lens (\BoundingBox' {left} -> left) (\s@BoundingBox' {} a -> s {left = a} :: BoundingBox)++-- | The top coordinate of the bounding box as a ratio of overall document+-- page height.+boundingBox_top :: Lens.Lens' BoundingBox (Prelude.Maybe Prelude.Double)+boundingBox_top = Lens.lens (\BoundingBox' {top} -> top) (\s@BoundingBox' {} a -> s {top = a} :: BoundingBox)++-- | The width of the bounding box as a ratio of the overall document page+-- width.+boundingBox_width :: Lens.Lens' BoundingBox (Prelude.Maybe Prelude.Double)+boundingBox_width = Lens.lens (\BoundingBox' {width} -> width) (\s@BoundingBox' {} a -> s {width = a} :: BoundingBox)++instance Data.FromJSON BoundingBox where+ parseJSON =+ Data.withObject+ "BoundingBox"+ ( \x ->+ BoundingBox'+ Prelude.<$> (x Data..:? "Height")+ Prelude.<*> (x Data..:? "Left")+ Prelude.<*> (x Data..:? "Top")+ Prelude.<*> (x Data..:? "Width")+ )++instance Prelude.Hashable BoundingBox where+ hashWithSalt _salt BoundingBox' {..} =+ _salt+ `Prelude.hashWithSalt` height+ `Prelude.hashWithSalt` left+ `Prelude.hashWithSalt` top+ `Prelude.hashWithSalt` width++instance Prelude.NFData BoundingBox where+ rnf BoundingBox' {..} =+ Prelude.rnf height+ `Prelude.seq` Prelude.rnf left+ `Prelude.seq` Prelude.rnf top+ `Prelude.seq` Prelude.rnf width
+ gen/Amazonka/Textract/Types/ContentClassifier.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.Textract.Types.ContentClassifier+-- Copyright : (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.Textract.Types.ContentClassifier+ ( ContentClassifier+ ( ..,+ ContentClassifier_FreeOfAdultContent,+ ContentClassifier_FreeOfPersonallyIdentifiableInformation+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ContentClassifier = ContentClassifier'+ { fromContentClassifier ::+ 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 ContentClassifier_FreeOfAdultContent :: ContentClassifier+pattern ContentClassifier_FreeOfAdultContent = ContentClassifier' "FreeOfAdultContent"++pattern ContentClassifier_FreeOfPersonallyIdentifiableInformation :: ContentClassifier+pattern ContentClassifier_FreeOfPersonallyIdentifiableInformation = ContentClassifier' "FreeOfPersonallyIdentifiableInformation"++{-# COMPLETE+ ContentClassifier_FreeOfAdultContent,+ ContentClassifier_FreeOfPersonallyIdentifiableInformation,+ ContentClassifier'+ #-}
+ gen/Amazonka/Textract/Types/DetectedSignature.hs view
@@ -0,0 +1,68 @@+{-# 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.Textract.Types.DetectedSignature+-- Copyright : (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.Textract.Types.DetectedSignature 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 holds information regarding a detected signature on a+-- page.+--+-- /See:/ 'newDetectedSignature' smart constructor.+data DetectedSignature = DetectedSignature'+ { -- | The page a detected signature was found on.+ page :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectedSignature' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'page', 'detectedSignature_page' - The page a detected signature was found on.+newDetectedSignature ::+ DetectedSignature+newDetectedSignature =+ DetectedSignature' {page = Prelude.Nothing}++-- | The page a detected signature was found on.+detectedSignature_page :: Lens.Lens' DetectedSignature (Prelude.Maybe Prelude.Natural)+detectedSignature_page = Lens.lens (\DetectedSignature' {page} -> page) (\s@DetectedSignature' {} a -> s {page = a} :: DetectedSignature)++instance Data.FromJSON DetectedSignature where+ parseJSON =+ Data.withObject+ "DetectedSignature"+ ( \x ->+ DetectedSignature' Prelude.<$> (x Data..:? "Page")+ )++instance Prelude.Hashable DetectedSignature where+ hashWithSalt _salt DetectedSignature' {..} =+ _salt `Prelude.hashWithSalt` page++instance Prelude.NFData DetectedSignature where+ rnf DetectedSignature' {..} = Prelude.rnf page
+ gen/Amazonka/Textract/Types/Document.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.Textract.Types.Document+-- Copyright : (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.Textract.Types.Document 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+import Amazonka.Textract.Types.S3Object++-- | The input document, either as bytes or as an S3 object.+--+-- You pass image bytes to an Amazon Textract API operation by using the+-- @Bytes@ property. For example, you would use the @Bytes@ property to+-- pass a document loaded from a local file system. Image bytes passed by+-- using the @Bytes@ property must be base64 encoded. Your code might not+-- need to encode document file bytes if you\'re using an AWS SDK to call+-- Amazon Textract API operations.+--+-- You pass images stored in an S3 bucket to an Amazon Textract API+-- operation by using the @S3Object@ property. Documents stored in an S3+-- bucket don\'t need to be base64 encoded.+--+-- The AWS Region for the S3 bucket that contains the S3 object must match+-- the AWS Region that you use for Amazon Textract operations.+--+-- If you use the AWS CLI to call Amazon Textract operations, passing image+-- bytes using the Bytes property isn\'t supported. You must first upload+-- the document to an Amazon S3 bucket, and then call the operation using+-- the S3Object property.+--+-- For Amazon Textract to process an S3 object, the user must have+-- permission to access the S3 object.+--+-- /See:/ 'newDocument' smart constructor.+data Document = Document'+ { -- | A blob of base64-encoded document bytes. The maximum size of a document+ -- that\'s provided in a blob of bytes is 5 MB. The document bytes must be+ -- in PNG or JPEG format.+ --+ -- If you\'re using an AWS SDK to call Amazon Textract, you might not need+ -- to base64-encode image bytes passed using the @Bytes@ field.+ bytes :: Prelude.Maybe Data.Base64,+ -- | Identifies an S3 object as the document source. The maximum size of a+ -- document that\'s stored in an S3 bucket is 5 MB.+ s3Object :: Prelude.Maybe S3Object+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Document' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bytes', 'document_bytes' - A blob of base64-encoded document bytes. The maximum size of a document+-- that\'s provided in a blob of bytes is 5 MB. The document bytes must be+-- in PNG or JPEG format.+--+-- If you\'re using an AWS SDK to call Amazon Textract, you might not need+-- to base64-encode image bytes passed using the @Bytes@ field.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+--+-- 's3Object', 'document_s3Object' - Identifies an S3 object as the document source. The maximum size of a+-- document that\'s stored in an S3 bucket is 5 MB.+newDocument ::+ Document+newDocument =+ Document'+ { bytes = Prelude.Nothing,+ s3Object = Prelude.Nothing+ }++-- | A blob of base64-encoded document bytes. The maximum size of a document+-- that\'s provided in a blob of bytes is 5 MB. The document bytes must be+-- in PNG or JPEG format.+--+-- If you\'re using an AWS SDK to call Amazon Textract, you might not need+-- to base64-encode image bytes passed using the @Bytes@ field.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+document_bytes :: Lens.Lens' Document (Prelude.Maybe Prelude.ByteString)+document_bytes = Lens.lens (\Document' {bytes} -> bytes) (\s@Document' {} a -> s {bytes = a} :: Document) Prelude.. Lens.mapping Data._Base64++-- | Identifies an S3 object as the document source. The maximum size of a+-- document that\'s stored in an S3 bucket is 5 MB.+document_s3Object :: Lens.Lens' Document (Prelude.Maybe S3Object)+document_s3Object = Lens.lens (\Document' {s3Object} -> s3Object) (\s@Document' {} a -> s {s3Object = a} :: Document)++instance Prelude.Hashable Document where+ hashWithSalt _salt Document' {..} =+ _salt+ `Prelude.hashWithSalt` bytes+ `Prelude.hashWithSalt` s3Object++instance Prelude.NFData Document where+ rnf Document' {..} =+ Prelude.rnf bytes+ `Prelude.seq` Prelude.rnf s3Object++instance Data.ToJSON Document where+ toJSON Document' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Bytes" Data..=) Prelude.<$> bytes,+ ("S3Object" Data..=) Prelude.<$> s3Object+ ]+ )
+ gen/Amazonka/Textract/Types/DocumentGroup.hs view
@@ -0,0 +1,124 @@+{-# 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.Textract.Types.DocumentGroup+-- Copyright : (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.Textract.Types.DocumentGroup 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+import Amazonka.Textract.Types.DetectedSignature+import Amazonka.Textract.Types.SplitDocument+import Amazonka.Textract.Types.UndetectedSignature++-- | Summary information about documents grouped by the same document type.+--+-- /See:/ 'newDocumentGroup' smart constructor.+data DocumentGroup = DocumentGroup'+ { -- | A list of the detected signatures found in a document group.+ detectedSignatures :: Prelude.Maybe [DetectedSignature],+ -- | An array that contains information about the pages of a document,+ -- defined by logical boundary.+ splitDocuments :: Prelude.Maybe [SplitDocument],+ -- | The type of document that Amazon Textract has detected. See LINK for a+ -- list of all types returned by Textract.+ type' :: Prelude.Maybe Prelude.Text,+ -- | A list of any expected signatures not found in a document group.+ undetectedSignatures :: Prelude.Maybe [UndetectedSignature]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DocumentGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectedSignatures', 'documentGroup_detectedSignatures' - A list of the detected signatures found in a document group.+--+-- 'splitDocuments', 'documentGroup_splitDocuments' - An array that contains information about the pages of a document,+-- defined by logical boundary.+--+-- 'type'', 'documentGroup_type' - The type of document that Amazon Textract has detected. See LINK for a+-- list of all types returned by Textract.+--+-- 'undetectedSignatures', 'documentGroup_undetectedSignatures' - A list of any expected signatures not found in a document group.+newDocumentGroup ::+ DocumentGroup+newDocumentGroup =+ DocumentGroup'+ { detectedSignatures =+ Prelude.Nothing,+ splitDocuments = Prelude.Nothing,+ type' = Prelude.Nothing,+ undetectedSignatures = Prelude.Nothing+ }++-- | A list of the detected signatures found in a document group.+documentGroup_detectedSignatures :: Lens.Lens' DocumentGroup (Prelude.Maybe [DetectedSignature])+documentGroup_detectedSignatures = Lens.lens (\DocumentGroup' {detectedSignatures} -> detectedSignatures) (\s@DocumentGroup' {} a -> s {detectedSignatures = a} :: DocumentGroup) Prelude.. Lens.mapping Lens.coerced++-- | An array that contains information about the pages of a document,+-- defined by logical boundary.+documentGroup_splitDocuments :: Lens.Lens' DocumentGroup (Prelude.Maybe [SplitDocument])+documentGroup_splitDocuments = Lens.lens (\DocumentGroup' {splitDocuments} -> splitDocuments) (\s@DocumentGroup' {} a -> s {splitDocuments = a} :: DocumentGroup) Prelude.. Lens.mapping Lens.coerced++-- | The type of document that Amazon Textract has detected. See LINK for a+-- list of all types returned by Textract.+documentGroup_type :: Lens.Lens' DocumentGroup (Prelude.Maybe Prelude.Text)+documentGroup_type = Lens.lens (\DocumentGroup' {type'} -> type') (\s@DocumentGroup' {} a -> s {type' = a} :: DocumentGroup)++-- | A list of any expected signatures not found in a document group.+documentGroup_undetectedSignatures :: Lens.Lens' DocumentGroup (Prelude.Maybe [UndetectedSignature])+documentGroup_undetectedSignatures = Lens.lens (\DocumentGroup' {undetectedSignatures} -> undetectedSignatures) (\s@DocumentGroup' {} a -> s {undetectedSignatures = a} :: DocumentGroup) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DocumentGroup where+ parseJSON =+ Data.withObject+ "DocumentGroup"+ ( \x ->+ DocumentGroup'+ Prelude.<$> ( x+ Data..:? "DetectedSignatures"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "SplitDocuments" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "Type")+ Prelude.<*> ( x+ Data..:? "UndetectedSignatures"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable DocumentGroup where+ hashWithSalt _salt DocumentGroup' {..} =+ _salt+ `Prelude.hashWithSalt` detectedSignatures+ `Prelude.hashWithSalt` splitDocuments+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` undetectedSignatures++instance Prelude.NFData DocumentGroup where+ rnf DocumentGroup' {..} =+ Prelude.rnf detectedSignatures+ `Prelude.seq` Prelude.rnf splitDocuments+ `Prelude.seq` Prelude.rnf type'+ `Prelude.seq` Prelude.rnf undetectedSignatures
+ gen/Amazonka/Textract/Types/DocumentLocation.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.Textract.Types.DocumentLocation+-- Copyright : (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.Textract.Types.DocumentLocation 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+import Amazonka.Textract.Types.S3Object++-- | The Amazon S3 bucket that contains the document to be processed. It\'s+-- used by asynchronous operations.+--+-- The input document can be an image file in JPEG or PNG format. It can+-- also be a file in PDF format.+--+-- /See:/ 'newDocumentLocation' smart constructor.+data DocumentLocation = DocumentLocation'+ { -- | The Amazon S3 bucket that contains the input document.+ s3Object :: Prelude.Maybe S3Object+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DocumentLocation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Object', 'documentLocation_s3Object' - The Amazon S3 bucket that contains the input document.+newDocumentLocation ::+ DocumentLocation+newDocumentLocation =+ DocumentLocation' {s3Object = Prelude.Nothing}++-- | The Amazon S3 bucket that contains the input document.+documentLocation_s3Object :: Lens.Lens' DocumentLocation (Prelude.Maybe S3Object)+documentLocation_s3Object = Lens.lens (\DocumentLocation' {s3Object} -> s3Object) (\s@DocumentLocation' {} a -> s {s3Object = a} :: DocumentLocation)++instance Prelude.Hashable DocumentLocation where+ hashWithSalt _salt DocumentLocation' {..} =+ _salt `Prelude.hashWithSalt` s3Object++instance Prelude.NFData DocumentLocation where+ rnf DocumentLocation' {..} = Prelude.rnf s3Object++instance Data.ToJSON DocumentLocation where+ toJSON DocumentLocation' {..} =+ Data.object+ ( Prelude.catMaybes+ [("S3Object" Data..=) Prelude.<$> s3Object]+ )
+ gen/Amazonka/Textract/Types/DocumentMetadata.hs view
@@ -0,0 +1,67 @@+{-# 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.Textract.Types.DocumentMetadata+-- Copyright : (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.Textract.Types.DocumentMetadata where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the input document.+--+-- /See:/ 'newDocumentMetadata' smart constructor.+data DocumentMetadata = DocumentMetadata'+ { -- | The number of pages that are detected in the document.+ pages :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DocumentMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'pages', 'documentMetadata_pages' - The number of pages that are detected in the document.+newDocumentMetadata ::+ DocumentMetadata+newDocumentMetadata =+ DocumentMetadata' {pages = Prelude.Nothing}++-- | The number of pages that are detected in the document.+documentMetadata_pages :: Lens.Lens' DocumentMetadata (Prelude.Maybe Prelude.Natural)+documentMetadata_pages = Lens.lens (\DocumentMetadata' {pages} -> pages) (\s@DocumentMetadata' {} a -> s {pages = a} :: DocumentMetadata)++instance Data.FromJSON DocumentMetadata where+ parseJSON =+ Data.withObject+ "DocumentMetadata"+ ( \x ->+ DocumentMetadata' Prelude.<$> (x Data..:? "Pages")+ )++instance Prelude.Hashable DocumentMetadata where+ hashWithSalt _salt DocumentMetadata' {..} =+ _salt `Prelude.hashWithSalt` pages++instance Prelude.NFData DocumentMetadata where+ rnf DocumentMetadata' {..} = Prelude.rnf pages
+ gen/Amazonka/Textract/Types/EntityType.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.Textract.Types.EntityType+-- Copyright : (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.Textract.Types.EntityType+ ( EntityType+ ( ..,+ EntityType_COLUMN_HEADER,+ EntityType_KEY,+ EntityType_VALUE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EntityType = EntityType'+ { fromEntityType ::+ 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 EntityType_COLUMN_HEADER :: EntityType+pattern EntityType_COLUMN_HEADER = EntityType' "COLUMN_HEADER"++pattern EntityType_KEY :: EntityType+pattern EntityType_KEY = EntityType' "KEY"++pattern EntityType_VALUE :: EntityType+pattern EntityType_VALUE = EntityType' "VALUE"++{-# COMPLETE+ EntityType_COLUMN_HEADER,+ EntityType_KEY,+ EntityType_VALUE,+ EntityType'+ #-}
+ gen/Amazonka/Textract/Types/ExpenseCurrency.hs view
@@ -0,0 +1,156 @@+{-# 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.Textract.Types.ExpenseCurrency+-- Copyright : (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.Textract.Types.ExpenseCurrency 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++-- | Returns the kind of currency detected.+--+-- /See:/ 'newExpenseCurrency' smart constructor.+data ExpenseCurrency = ExpenseCurrency'+ { -- | Currency code for detected currency. the current supported codes are:+ --+ -- - USD+ --+ -- - EUR+ --+ -- - GBP+ --+ -- - CAD+ --+ -- - INR+ --+ -- - JPY+ --+ -- - CHF+ --+ -- - AUD+ --+ -- - CNY+ --+ -- - BZR+ --+ -- - SEK+ --+ -- - HKD+ code :: Prelude.Maybe Prelude.Text,+ -- | Percentage confideence in the detected currency.+ confidence :: Prelude.Maybe Prelude.Double+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExpenseCurrency' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'expenseCurrency_code' - Currency code for detected currency. the current supported codes are:+--+-- - USD+--+-- - EUR+--+-- - GBP+--+-- - CAD+--+-- - INR+--+-- - JPY+--+-- - CHF+--+-- - AUD+--+-- - CNY+--+-- - BZR+--+-- - SEK+--+-- - HKD+--+-- 'confidence', 'expenseCurrency_confidence' - Percentage confideence in the detected currency.+newExpenseCurrency ::+ ExpenseCurrency+newExpenseCurrency =+ ExpenseCurrency'+ { code = Prelude.Nothing,+ confidence = Prelude.Nothing+ }++-- | Currency code for detected currency. the current supported codes are:+--+-- - USD+--+-- - EUR+--+-- - GBP+--+-- - CAD+--+-- - INR+--+-- - JPY+--+-- - CHF+--+-- - AUD+--+-- - CNY+--+-- - BZR+--+-- - SEK+--+-- - HKD+expenseCurrency_code :: Lens.Lens' ExpenseCurrency (Prelude.Maybe Prelude.Text)+expenseCurrency_code = Lens.lens (\ExpenseCurrency' {code} -> code) (\s@ExpenseCurrency' {} a -> s {code = a} :: ExpenseCurrency)++-- | Percentage confideence in the detected currency.+expenseCurrency_confidence :: Lens.Lens' ExpenseCurrency (Prelude.Maybe Prelude.Double)+expenseCurrency_confidence = Lens.lens (\ExpenseCurrency' {confidence} -> confidence) (\s@ExpenseCurrency' {} a -> s {confidence = a} :: ExpenseCurrency)++instance Data.FromJSON ExpenseCurrency where+ parseJSON =+ Data.withObject+ "ExpenseCurrency"+ ( \x ->+ ExpenseCurrency'+ Prelude.<$> (x Data..:? "Code")+ Prelude.<*> (x Data..:? "Confidence")+ )++instance Prelude.Hashable ExpenseCurrency where+ hashWithSalt _salt ExpenseCurrency' {..} =+ _salt+ `Prelude.hashWithSalt` code+ `Prelude.hashWithSalt` confidence++instance Prelude.NFData ExpenseCurrency where+ rnf ExpenseCurrency' {..} =+ Prelude.rnf code+ `Prelude.seq` Prelude.rnf confidence
+ gen/Amazonka/Textract/Types/ExpenseDetection.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.Textract.Types.ExpenseDetection+-- Copyright : (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.Textract.Types.ExpenseDetection 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+import Amazonka.Textract.Types.Geometry++-- | An object used to store information about the Value or Label detected by+-- Amazon Textract.+--+-- /See:/ 'newExpenseDetection' smart constructor.+data ExpenseDetection = ExpenseDetection'+ { -- | The confidence in detection, as a percentage+ confidence :: Prelude.Maybe Prelude.Double,+ geometry :: Prelude.Maybe Geometry,+ -- | The word or line of text recognized by Amazon Textract+ text :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExpenseDetection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'confidence', 'expenseDetection_confidence' - The confidence in detection, as a percentage+--+-- 'geometry', 'expenseDetection_geometry' - Undocumented member.+--+-- 'text', 'expenseDetection_text' - The word or line of text recognized by Amazon Textract+newExpenseDetection ::+ ExpenseDetection+newExpenseDetection =+ ExpenseDetection'+ { confidence = Prelude.Nothing,+ geometry = Prelude.Nothing,+ text = Prelude.Nothing+ }++-- | The confidence in detection, as a percentage+expenseDetection_confidence :: Lens.Lens' ExpenseDetection (Prelude.Maybe Prelude.Double)+expenseDetection_confidence = Lens.lens (\ExpenseDetection' {confidence} -> confidence) (\s@ExpenseDetection' {} a -> s {confidence = a} :: ExpenseDetection)++-- | Undocumented member.+expenseDetection_geometry :: Lens.Lens' ExpenseDetection (Prelude.Maybe Geometry)+expenseDetection_geometry = Lens.lens (\ExpenseDetection' {geometry} -> geometry) (\s@ExpenseDetection' {} a -> s {geometry = a} :: ExpenseDetection)++-- | The word or line of text recognized by Amazon Textract+expenseDetection_text :: Lens.Lens' ExpenseDetection (Prelude.Maybe Prelude.Text)+expenseDetection_text = Lens.lens (\ExpenseDetection' {text} -> text) (\s@ExpenseDetection' {} a -> s {text = a} :: ExpenseDetection)++instance Data.FromJSON ExpenseDetection where+ parseJSON =+ Data.withObject+ "ExpenseDetection"+ ( \x ->+ ExpenseDetection'+ Prelude.<$> (x Data..:? "Confidence")+ Prelude.<*> (x Data..:? "Geometry")+ Prelude.<*> (x Data..:? "Text")+ )++instance Prelude.Hashable ExpenseDetection where+ hashWithSalt _salt ExpenseDetection' {..} =+ _salt+ `Prelude.hashWithSalt` confidence+ `Prelude.hashWithSalt` geometry+ `Prelude.hashWithSalt` text++instance Prelude.NFData ExpenseDetection where+ rnf ExpenseDetection' {..} =+ Prelude.rnf confidence+ `Prelude.seq` Prelude.rnf geometry+ `Prelude.seq` Prelude.rnf text
+ gen/Amazonka/Textract/Types/ExpenseDocument.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.ExpenseDocument+-- Copyright : (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.Textract.Types.ExpenseDocument 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+import Amazonka.Textract.Types.Block+import Amazonka.Textract.Types.ExpenseField+import Amazonka.Textract.Types.LineItemGroup++-- | The structure holding all the information returned by AnalyzeExpense+--+-- /See:/ 'newExpenseDocument' smart constructor.+data ExpenseDocument = ExpenseDocument'+ { -- | This is a block object, the same as reported when DetectDocumentText is+ -- run on a document. It provides word level recognition of text.+ blocks :: Prelude.Maybe [Block],+ -- | Denotes which invoice or receipt in the document the information is+ -- coming from. First document will be 1, the second 2, and so on.+ expenseIndex :: Prelude.Maybe Prelude.Natural,+ -- | Information detected on each table of a document, seperated into+ -- @LineItems@.+ lineItemGroups :: Prelude.Maybe [LineItemGroup],+ -- | Any information found outside of a table by Amazon Textract.+ summaryFields :: Prelude.Maybe [ExpenseField]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExpenseDocument' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'blocks', 'expenseDocument_blocks' - This is a block object, the same as reported when DetectDocumentText is+-- run on a document. It provides word level recognition of text.+--+-- 'expenseIndex', 'expenseDocument_expenseIndex' - Denotes which invoice or receipt in the document the information is+-- coming from. First document will be 1, the second 2, and so on.+--+-- 'lineItemGroups', 'expenseDocument_lineItemGroups' - Information detected on each table of a document, seperated into+-- @LineItems@.+--+-- 'summaryFields', 'expenseDocument_summaryFields' - Any information found outside of a table by Amazon Textract.+newExpenseDocument ::+ ExpenseDocument+newExpenseDocument =+ ExpenseDocument'+ { blocks = Prelude.Nothing,+ expenseIndex = Prelude.Nothing,+ lineItemGroups = Prelude.Nothing,+ summaryFields = Prelude.Nothing+ }++-- | This is a block object, the same as reported when DetectDocumentText is+-- run on a document. It provides word level recognition of text.+expenseDocument_blocks :: Lens.Lens' ExpenseDocument (Prelude.Maybe [Block])+expenseDocument_blocks = Lens.lens (\ExpenseDocument' {blocks} -> blocks) (\s@ExpenseDocument' {} a -> s {blocks = a} :: ExpenseDocument) Prelude.. Lens.mapping Lens.coerced++-- | Denotes which invoice or receipt in the document the information is+-- coming from. First document will be 1, the second 2, and so on.+expenseDocument_expenseIndex :: Lens.Lens' ExpenseDocument (Prelude.Maybe Prelude.Natural)+expenseDocument_expenseIndex = Lens.lens (\ExpenseDocument' {expenseIndex} -> expenseIndex) (\s@ExpenseDocument' {} a -> s {expenseIndex = a} :: ExpenseDocument)++-- | Information detected on each table of a document, seperated into+-- @LineItems@.+expenseDocument_lineItemGroups :: Lens.Lens' ExpenseDocument (Prelude.Maybe [LineItemGroup])+expenseDocument_lineItemGroups = Lens.lens (\ExpenseDocument' {lineItemGroups} -> lineItemGroups) (\s@ExpenseDocument' {} a -> s {lineItemGroups = a} :: ExpenseDocument) Prelude.. Lens.mapping Lens.coerced++-- | Any information found outside of a table by Amazon Textract.+expenseDocument_summaryFields :: Lens.Lens' ExpenseDocument (Prelude.Maybe [ExpenseField])+expenseDocument_summaryFields = Lens.lens (\ExpenseDocument' {summaryFields} -> summaryFields) (\s@ExpenseDocument' {} a -> s {summaryFields = a} :: ExpenseDocument) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ExpenseDocument where+ parseJSON =+ Data.withObject+ "ExpenseDocument"+ ( \x ->+ ExpenseDocument'+ Prelude.<$> (x Data..:? "Blocks" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "ExpenseIndex")+ Prelude.<*> (x Data..:? "LineItemGroups" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "SummaryFields" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ExpenseDocument where+ hashWithSalt _salt ExpenseDocument' {..} =+ _salt+ `Prelude.hashWithSalt` blocks+ `Prelude.hashWithSalt` expenseIndex+ `Prelude.hashWithSalt` lineItemGroups+ `Prelude.hashWithSalt` summaryFields++instance Prelude.NFData ExpenseDocument where+ rnf ExpenseDocument' {..} =+ Prelude.rnf blocks+ `Prelude.seq` Prelude.rnf expenseIndex+ `Prelude.seq` Prelude.rnf lineItemGroups+ `Prelude.seq` Prelude.rnf summaryFields
+ gen/Amazonka/Textract/Types/ExpenseField.hs view
@@ -0,0 +1,155 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.ExpenseField+-- Copyright : (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.Textract.Types.ExpenseField 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+import Amazonka.Textract.Types.ExpenseCurrency+import Amazonka.Textract.Types.ExpenseDetection+import Amazonka.Textract.Types.ExpenseGroupProperty+import Amazonka.Textract.Types.ExpenseType++-- | Breakdown of detected information, seperated into the catagories Type,+-- LabelDetection, and ValueDetection+--+-- /See:/ 'newExpenseField' smart constructor.+data ExpenseField = ExpenseField'+ { -- | Shows the kind of currency, both the code and confidence associated with+ -- any monatary value detected.+ currency :: Prelude.Maybe ExpenseCurrency,+ -- | Shows which group a response object belongs to, such as whether an+ -- address line belongs to the vendor\'s address or the recipent\'s+ -- address.+ groupProperties :: Prelude.Maybe [ExpenseGroupProperty],+ -- | The explicitly stated label of a detected element.+ labelDetection :: Prelude.Maybe ExpenseDetection,+ -- | The page number the value was detected on.+ pageNumber :: Prelude.Maybe Prelude.Natural,+ -- | The implied label of a detected element. Present alongside+ -- LabelDetection for explicit elements.+ type' :: Prelude.Maybe ExpenseType,+ -- | The value of a detected element. Present in explicit and implicit+ -- elements.+ valueDetection :: Prelude.Maybe ExpenseDetection+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExpenseField' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currency', 'expenseField_currency' - Shows the kind of currency, both the code and confidence associated with+-- any monatary value detected.+--+-- 'groupProperties', 'expenseField_groupProperties' - Shows which group a response object belongs to, such as whether an+-- address line belongs to the vendor\'s address or the recipent\'s+-- address.+--+-- 'labelDetection', 'expenseField_labelDetection' - The explicitly stated label of a detected element.+--+-- 'pageNumber', 'expenseField_pageNumber' - The page number the value was detected on.+--+-- 'type'', 'expenseField_type' - The implied label of a detected element. Present alongside+-- LabelDetection for explicit elements.+--+-- 'valueDetection', 'expenseField_valueDetection' - The value of a detected element. Present in explicit and implicit+-- elements.+newExpenseField ::+ ExpenseField+newExpenseField =+ ExpenseField'+ { currency = Prelude.Nothing,+ groupProperties = Prelude.Nothing,+ labelDetection = Prelude.Nothing,+ pageNumber = Prelude.Nothing,+ type' = Prelude.Nothing,+ valueDetection = Prelude.Nothing+ }++-- | Shows the kind of currency, both the code and confidence associated with+-- any monatary value detected.+expenseField_currency :: Lens.Lens' ExpenseField (Prelude.Maybe ExpenseCurrency)+expenseField_currency = Lens.lens (\ExpenseField' {currency} -> currency) (\s@ExpenseField' {} a -> s {currency = a} :: ExpenseField)++-- | Shows which group a response object belongs to, such as whether an+-- address line belongs to the vendor\'s address or the recipent\'s+-- address.+expenseField_groupProperties :: Lens.Lens' ExpenseField (Prelude.Maybe [ExpenseGroupProperty])+expenseField_groupProperties = Lens.lens (\ExpenseField' {groupProperties} -> groupProperties) (\s@ExpenseField' {} a -> s {groupProperties = a} :: ExpenseField) Prelude.. Lens.mapping Lens.coerced++-- | The explicitly stated label of a detected element.+expenseField_labelDetection :: Lens.Lens' ExpenseField (Prelude.Maybe ExpenseDetection)+expenseField_labelDetection = Lens.lens (\ExpenseField' {labelDetection} -> labelDetection) (\s@ExpenseField' {} a -> s {labelDetection = a} :: ExpenseField)++-- | The page number the value was detected on.+expenseField_pageNumber :: Lens.Lens' ExpenseField (Prelude.Maybe Prelude.Natural)+expenseField_pageNumber = Lens.lens (\ExpenseField' {pageNumber} -> pageNumber) (\s@ExpenseField' {} a -> s {pageNumber = a} :: ExpenseField)++-- | The implied label of a detected element. Present alongside+-- LabelDetection for explicit elements.+expenseField_type :: Lens.Lens' ExpenseField (Prelude.Maybe ExpenseType)+expenseField_type = Lens.lens (\ExpenseField' {type'} -> type') (\s@ExpenseField' {} a -> s {type' = a} :: ExpenseField)++-- | The value of a detected element. Present in explicit and implicit+-- elements.+expenseField_valueDetection :: Lens.Lens' ExpenseField (Prelude.Maybe ExpenseDetection)+expenseField_valueDetection = Lens.lens (\ExpenseField' {valueDetection} -> valueDetection) (\s@ExpenseField' {} a -> s {valueDetection = a} :: ExpenseField)++instance Data.FromJSON ExpenseField where+ parseJSON =+ Data.withObject+ "ExpenseField"+ ( \x ->+ ExpenseField'+ Prelude.<$> (x Data..:? "Currency")+ Prelude.<*> ( x+ Data..:? "GroupProperties"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "LabelDetection")+ Prelude.<*> (x Data..:? "PageNumber")+ Prelude.<*> (x Data..:? "Type")+ Prelude.<*> (x Data..:? "ValueDetection")+ )++instance Prelude.Hashable ExpenseField where+ hashWithSalt _salt ExpenseField' {..} =+ _salt+ `Prelude.hashWithSalt` currency+ `Prelude.hashWithSalt` groupProperties+ `Prelude.hashWithSalt` labelDetection+ `Prelude.hashWithSalt` pageNumber+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` valueDetection++instance Prelude.NFData ExpenseField where+ rnf ExpenseField' {..} =+ Prelude.rnf currency+ `Prelude.seq` Prelude.rnf groupProperties+ `Prelude.seq` Prelude.rnf labelDetection+ `Prelude.seq` Prelude.rnf pageNumber+ `Prelude.seq` Prelude.rnf type'+ `Prelude.seq` Prelude.rnf valueDetection
+ gen/Amazonka/Textract/Types/ExpenseGroupProperty.hs view
@@ -0,0 +1,88 @@+{-# 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.Textract.Types.ExpenseGroupProperty+-- Copyright : (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.Textract.Types.ExpenseGroupProperty 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++-- | Shows the group that a certain key belongs to. This helps differentiate+-- between names and addresses for different organizations, that can be+-- hard to determine via JSON response.+--+-- /See:/ 'newExpenseGroupProperty' smart constructor.+data ExpenseGroupProperty = ExpenseGroupProperty'+ { -- | Provides a group Id number, which will be the same for each in the+ -- group.+ id :: Prelude.Maybe Prelude.Text,+ -- | Informs you on whether the expense group is a name or an address.+ types :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExpenseGroupProperty' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'expenseGroupProperty_id' - Provides a group Id number, which will be the same for each in the+-- group.+--+-- 'types', 'expenseGroupProperty_types' - Informs you on whether the expense group is a name or an address.+newExpenseGroupProperty ::+ ExpenseGroupProperty+newExpenseGroupProperty =+ ExpenseGroupProperty'+ { id = Prelude.Nothing,+ types = Prelude.Nothing+ }++-- | Provides a group Id number, which will be the same for each in the+-- group.+expenseGroupProperty_id :: Lens.Lens' ExpenseGroupProperty (Prelude.Maybe Prelude.Text)+expenseGroupProperty_id = Lens.lens (\ExpenseGroupProperty' {id} -> id) (\s@ExpenseGroupProperty' {} a -> s {id = a} :: ExpenseGroupProperty)++-- | Informs you on whether the expense group is a name or an address.+expenseGroupProperty_types :: Lens.Lens' ExpenseGroupProperty (Prelude.Maybe [Prelude.Text])+expenseGroupProperty_types = Lens.lens (\ExpenseGroupProperty' {types} -> types) (\s@ExpenseGroupProperty' {} a -> s {types = a} :: ExpenseGroupProperty) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ExpenseGroupProperty where+ parseJSON =+ Data.withObject+ "ExpenseGroupProperty"+ ( \x ->+ ExpenseGroupProperty'+ Prelude.<$> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "Types" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ExpenseGroupProperty where+ hashWithSalt _salt ExpenseGroupProperty' {..} =+ _salt+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` types++instance Prelude.NFData ExpenseGroupProperty where+ rnf ExpenseGroupProperty' {..} =+ Prelude.rnf id `Prelude.seq` Prelude.rnf types
+ gen/Amazonka/Textract/Types/ExpenseType.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.Textract.Types.ExpenseType+-- Copyright : (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.Textract.Types.ExpenseType 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 used to store information about the Type detected by Amazon+-- Textract.+--+-- /See:/ 'newExpenseType' smart constructor.+data ExpenseType = ExpenseType'+ { -- | The confidence of accuracy, as a percentage.+ confidence :: Prelude.Maybe Prelude.Double,+ -- | The word or line of text detected by Amazon Textract.+ text :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExpenseType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'confidence', 'expenseType_confidence' - The confidence of accuracy, as a percentage.+--+-- 'text', 'expenseType_text' - The word or line of text detected by Amazon Textract.+newExpenseType ::+ ExpenseType+newExpenseType =+ ExpenseType'+ { confidence = Prelude.Nothing,+ text = Prelude.Nothing+ }++-- | The confidence of accuracy, as a percentage.+expenseType_confidence :: Lens.Lens' ExpenseType (Prelude.Maybe Prelude.Double)+expenseType_confidence = Lens.lens (\ExpenseType' {confidence} -> confidence) (\s@ExpenseType' {} a -> s {confidence = a} :: ExpenseType)++-- | The word or line of text detected by Amazon Textract.+expenseType_text :: Lens.Lens' ExpenseType (Prelude.Maybe Prelude.Text)+expenseType_text = Lens.lens (\ExpenseType' {text} -> text) (\s@ExpenseType' {} a -> s {text = a} :: ExpenseType)++instance Data.FromJSON ExpenseType where+ parseJSON =+ Data.withObject+ "ExpenseType"+ ( \x ->+ ExpenseType'+ Prelude.<$> (x Data..:? "Confidence")+ Prelude.<*> (x Data..:? "Text")+ )++instance Prelude.Hashable ExpenseType where+ hashWithSalt _salt ExpenseType' {..} =+ _salt+ `Prelude.hashWithSalt` confidence+ `Prelude.hashWithSalt` text++instance Prelude.NFData ExpenseType where+ rnf ExpenseType' {..} =+ Prelude.rnf confidence+ `Prelude.seq` Prelude.rnf text
+ gen/Amazonka/Textract/Types/Extraction.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.Textract.Types.Extraction+-- Copyright : (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.Textract.Types.Extraction 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+import Amazonka.Textract.Types.ExpenseDocument+import Amazonka.Textract.Types.IdentityDocument+import Amazonka.Textract.Types.LendingDocument++-- | Contains information extracted by an analysis operation after using+-- StartLendingAnalysis.+--+-- /See:/ 'newExtraction' smart constructor.+data Extraction = Extraction'+ { expenseDocument :: Prelude.Maybe ExpenseDocument,+ identityDocument :: Prelude.Maybe IdentityDocument,+ -- | Holds the structured data returned by AnalyzeDocument for lending+ -- documents.+ lendingDocument :: Prelude.Maybe LendingDocument+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Extraction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'expenseDocument', 'extraction_expenseDocument' - Undocumented member.+--+-- 'identityDocument', 'extraction_identityDocument' - Undocumented member.+--+-- 'lendingDocument', 'extraction_lendingDocument' - Holds the structured data returned by AnalyzeDocument for lending+-- documents.+newExtraction ::+ Extraction+newExtraction =+ Extraction'+ { expenseDocument = Prelude.Nothing,+ identityDocument = Prelude.Nothing,+ lendingDocument = Prelude.Nothing+ }++-- | Undocumented member.+extraction_expenseDocument :: Lens.Lens' Extraction (Prelude.Maybe ExpenseDocument)+extraction_expenseDocument = Lens.lens (\Extraction' {expenseDocument} -> expenseDocument) (\s@Extraction' {} a -> s {expenseDocument = a} :: Extraction)++-- | Undocumented member.+extraction_identityDocument :: Lens.Lens' Extraction (Prelude.Maybe IdentityDocument)+extraction_identityDocument = Lens.lens (\Extraction' {identityDocument} -> identityDocument) (\s@Extraction' {} a -> s {identityDocument = a} :: Extraction)++-- | Holds the structured data returned by AnalyzeDocument for lending+-- documents.+extraction_lendingDocument :: Lens.Lens' Extraction (Prelude.Maybe LendingDocument)+extraction_lendingDocument = Lens.lens (\Extraction' {lendingDocument} -> lendingDocument) (\s@Extraction' {} a -> s {lendingDocument = a} :: Extraction)++instance Data.FromJSON Extraction where+ parseJSON =+ Data.withObject+ "Extraction"+ ( \x ->+ Extraction'+ Prelude.<$> (x Data..:? "ExpenseDocument")+ Prelude.<*> (x Data..:? "IdentityDocument")+ Prelude.<*> (x Data..:? "LendingDocument")+ )++instance Prelude.Hashable Extraction where+ hashWithSalt _salt Extraction' {..} =+ _salt+ `Prelude.hashWithSalt` expenseDocument+ `Prelude.hashWithSalt` identityDocument+ `Prelude.hashWithSalt` lendingDocument++instance Prelude.NFData Extraction where+ rnf Extraction' {..} =+ Prelude.rnf expenseDocument+ `Prelude.seq` Prelude.rnf identityDocument+ `Prelude.seq` Prelude.rnf lendingDocument
+ gen/Amazonka/Textract/Types/FeatureType.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.Textract.Types.FeatureType+-- Copyright : (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.Textract.Types.FeatureType+ ( FeatureType+ ( ..,+ FeatureType_FORMS,+ FeatureType_QUERIES,+ FeatureType_SIGNATURES,+ FeatureType_TABLES+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FeatureType = FeatureType'+ { fromFeatureType ::+ 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 FeatureType_FORMS :: FeatureType+pattern FeatureType_FORMS = FeatureType' "FORMS"++pattern FeatureType_QUERIES :: FeatureType+pattern FeatureType_QUERIES = FeatureType' "QUERIES"++pattern FeatureType_SIGNATURES :: FeatureType+pattern FeatureType_SIGNATURES = FeatureType' "SIGNATURES"++pattern FeatureType_TABLES :: FeatureType+pattern FeatureType_TABLES = FeatureType' "TABLES"++{-# COMPLETE+ FeatureType_FORMS,+ FeatureType_QUERIES,+ FeatureType_SIGNATURES,+ FeatureType_TABLES,+ FeatureType'+ #-}
+ gen/Amazonka/Textract/Types/Geometry.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.Geometry+-- Copyright : (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.Textract.Types.Geometry 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+import Amazonka.Textract.Types.BoundingBox+import Amazonka.Textract.Types.Point++-- | Information about where the following items are located on a document+-- page: detected page, text, key-value pairs, tables, table cells, and+-- selection elements.+--+-- /See:/ 'newGeometry' smart constructor.+data Geometry = Geometry'+ { -- | An axis-aligned coarse representation of the location of the recognized+ -- item on the document page.+ boundingBox :: Prelude.Maybe BoundingBox,+ -- | Within the bounding box, a fine-grained polygon around the recognized+ -- item.+ polygon :: Prelude.Maybe [Point]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Geometry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'boundingBox', 'geometry_boundingBox' - An axis-aligned coarse representation of the location of the recognized+-- item on the document page.+--+-- 'polygon', 'geometry_polygon' - Within the bounding box, a fine-grained polygon around the recognized+-- item.+newGeometry ::+ Geometry+newGeometry =+ Geometry'+ { boundingBox = Prelude.Nothing,+ polygon = Prelude.Nothing+ }++-- | An axis-aligned coarse representation of the location of the recognized+-- item on the document page.+geometry_boundingBox :: Lens.Lens' Geometry (Prelude.Maybe BoundingBox)+geometry_boundingBox = Lens.lens (\Geometry' {boundingBox} -> boundingBox) (\s@Geometry' {} a -> s {boundingBox = a} :: Geometry)++-- | Within the bounding box, a fine-grained polygon around the recognized+-- item.+geometry_polygon :: Lens.Lens' Geometry (Prelude.Maybe [Point])+geometry_polygon = Lens.lens (\Geometry' {polygon} -> polygon) (\s@Geometry' {} a -> s {polygon = a} :: Geometry) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Geometry where+ parseJSON =+ Data.withObject+ "Geometry"+ ( \x ->+ Geometry'+ Prelude.<$> (x Data..:? "BoundingBox")+ Prelude.<*> (x Data..:? "Polygon" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable Geometry where+ hashWithSalt _salt Geometry' {..} =+ _salt+ `Prelude.hashWithSalt` boundingBox+ `Prelude.hashWithSalt` polygon++instance Prelude.NFData Geometry where+ rnf Geometry' {..} =+ Prelude.rnf boundingBox+ `Prelude.seq` Prelude.rnf polygon
+ gen/Amazonka/Textract/Types/HumanLoopActivationOutput.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.Textract.Types.HumanLoopActivationOutput+-- Copyright : (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.Textract.Types.HumanLoopActivationOutput 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++-- | Shows the results of the human in the loop evaluation. If there is no+-- HumanLoopArn, the input did not trigger human review.+--+-- /See:/ 'newHumanLoopActivationOutput' smart constructor.+data HumanLoopActivationOutput = HumanLoopActivationOutput'+ { -- | Shows the result of condition evaluations, including those conditions+ -- which activated a human review.+ humanLoopActivationConditionsEvaluationResults :: Prelude.Maybe Prelude.Text,+ -- | Shows if and why human review was needed.+ humanLoopActivationReasons :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | The Amazon Resource Name (ARN) of the HumanLoop created.+ humanLoopArn :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HumanLoopActivationOutput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'humanLoopActivationConditionsEvaluationResults', 'humanLoopActivationOutput_humanLoopActivationConditionsEvaluationResults' - Shows the result of condition evaluations, including those conditions+-- which activated a human review.+--+-- 'humanLoopActivationReasons', 'humanLoopActivationOutput_humanLoopActivationReasons' - Shows if and why human review was needed.+--+-- 'humanLoopArn', 'humanLoopActivationOutput_humanLoopArn' - The Amazon Resource Name (ARN) of the HumanLoop created.+newHumanLoopActivationOutput ::+ HumanLoopActivationOutput+newHumanLoopActivationOutput =+ HumanLoopActivationOutput'+ { humanLoopActivationConditionsEvaluationResults =+ Prelude.Nothing,+ humanLoopActivationReasons = Prelude.Nothing,+ humanLoopArn = Prelude.Nothing+ }++-- | Shows the result of condition evaluations, including those conditions+-- which activated a human review.+humanLoopActivationOutput_humanLoopActivationConditionsEvaluationResults :: Lens.Lens' HumanLoopActivationOutput (Prelude.Maybe Prelude.Text)+humanLoopActivationOutput_humanLoopActivationConditionsEvaluationResults = Lens.lens (\HumanLoopActivationOutput' {humanLoopActivationConditionsEvaluationResults} -> humanLoopActivationConditionsEvaluationResults) (\s@HumanLoopActivationOutput' {} a -> s {humanLoopActivationConditionsEvaluationResults = a} :: HumanLoopActivationOutput)++-- | Shows if and why human review was needed.+humanLoopActivationOutput_humanLoopActivationReasons :: Lens.Lens' HumanLoopActivationOutput (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+humanLoopActivationOutput_humanLoopActivationReasons = Lens.lens (\HumanLoopActivationOutput' {humanLoopActivationReasons} -> humanLoopActivationReasons) (\s@HumanLoopActivationOutput' {} a -> s {humanLoopActivationReasons = a} :: HumanLoopActivationOutput) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the HumanLoop created.+humanLoopActivationOutput_humanLoopArn :: Lens.Lens' HumanLoopActivationOutput (Prelude.Maybe Prelude.Text)+humanLoopActivationOutput_humanLoopArn = Lens.lens (\HumanLoopActivationOutput' {humanLoopArn} -> humanLoopArn) (\s@HumanLoopActivationOutput' {} a -> s {humanLoopArn = a} :: HumanLoopActivationOutput)++instance Data.FromJSON HumanLoopActivationOutput where+ parseJSON =+ Data.withObject+ "HumanLoopActivationOutput"+ ( \x ->+ HumanLoopActivationOutput'+ Prelude.<$> ( x+ Data..:? "HumanLoopActivationConditionsEvaluationResults"+ )+ Prelude.<*> (x Data..:? "HumanLoopActivationReasons")+ Prelude.<*> (x Data..:? "HumanLoopArn")+ )++instance Prelude.Hashable HumanLoopActivationOutput where+ hashWithSalt _salt HumanLoopActivationOutput' {..} =+ _salt+ `Prelude.hashWithSalt` humanLoopActivationConditionsEvaluationResults+ `Prelude.hashWithSalt` humanLoopActivationReasons+ `Prelude.hashWithSalt` humanLoopArn++instance Prelude.NFData HumanLoopActivationOutput where+ rnf HumanLoopActivationOutput' {..} =+ Prelude.rnf+ humanLoopActivationConditionsEvaluationResults+ `Prelude.seq` Prelude.rnf humanLoopActivationReasons+ `Prelude.seq` Prelude.rnf humanLoopArn
+ gen/Amazonka/Textract/Types/HumanLoopConfig.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.Textract.Types.HumanLoopConfig+-- Copyright : (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.Textract.Types.HumanLoopConfig 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+import Amazonka.Textract.Types.HumanLoopDataAttributes++-- | Sets up the human review workflow the document will be sent to if one of+-- the conditions is met. You can also set certain attributes of the image+-- before review.+--+-- /See:/ 'newHumanLoopConfig' smart constructor.+data HumanLoopConfig = HumanLoopConfig'+ { -- | Sets attributes of the input data.+ dataAttributes :: Prelude.Maybe HumanLoopDataAttributes,+ -- | The name of the human workflow used for this image. This should be kept+ -- unique within a region.+ humanLoopName :: Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the flow definition.+ flowDefinitionArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HumanLoopConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataAttributes', 'humanLoopConfig_dataAttributes' - Sets attributes of the input data.+--+-- 'humanLoopName', 'humanLoopConfig_humanLoopName' - The name of the human workflow used for this image. This should be kept+-- unique within a region.+--+-- 'flowDefinitionArn', 'humanLoopConfig_flowDefinitionArn' - The Amazon Resource Name (ARN) of the flow definition.+newHumanLoopConfig ::+ -- | 'humanLoopName'+ Prelude.Text ->+ -- | 'flowDefinitionArn'+ Prelude.Text ->+ HumanLoopConfig+newHumanLoopConfig+ pHumanLoopName_+ pFlowDefinitionArn_ =+ HumanLoopConfig'+ { dataAttributes = Prelude.Nothing,+ humanLoopName = pHumanLoopName_,+ flowDefinitionArn = pFlowDefinitionArn_+ }++-- | Sets attributes of the input data.+humanLoopConfig_dataAttributes :: Lens.Lens' HumanLoopConfig (Prelude.Maybe HumanLoopDataAttributes)+humanLoopConfig_dataAttributes = Lens.lens (\HumanLoopConfig' {dataAttributes} -> dataAttributes) (\s@HumanLoopConfig' {} a -> s {dataAttributes = a} :: HumanLoopConfig)++-- | The name of the human workflow used for this image. This should be kept+-- unique within a region.+humanLoopConfig_humanLoopName :: Lens.Lens' HumanLoopConfig Prelude.Text+humanLoopConfig_humanLoopName = Lens.lens (\HumanLoopConfig' {humanLoopName} -> humanLoopName) (\s@HumanLoopConfig' {} a -> s {humanLoopName = a} :: HumanLoopConfig)++-- | The Amazon Resource Name (ARN) of the flow definition.+humanLoopConfig_flowDefinitionArn :: Lens.Lens' HumanLoopConfig Prelude.Text+humanLoopConfig_flowDefinitionArn = Lens.lens (\HumanLoopConfig' {flowDefinitionArn} -> flowDefinitionArn) (\s@HumanLoopConfig' {} a -> s {flowDefinitionArn = a} :: HumanLoopConfig)++instance Prelude.Hashable HumanLoopConfig where+ hashWithSalt _salt HumanLoopConfig' {..} =+ _salt+ `Prelude.hashWithSalt` dataAttributes+ `Prelude.hashWithSalt` humanLoopName+ `Prelude.hashWithSalt` flowDefinitionArn++instance Prelude.NFData HumanLoopConfig where+ rnf HumanLoopConfig' {..} =+ Prelude.rnf dataAttributes+ `Prelude.seq` Prelude.rnf humanLoopName+ `Prelude.seq` Prelude.rnf flowDefinitionArn++instance Data.ToJSON HumanLoopConfig where+ toJSON HumanLoopConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DataAttributes" Data..=)+ Prelude.<$> dataAttributes,+ Prelude.Just ("HumanLoopName" Data..= humanLoopName),+ Prelude.Just+ ("FlowDefinitionArn" Data..= flowDefinitionArn)+ ]+ )
+ gen/Amazonka/Textract/Types/HumanLoopDataAttributes.hs view
@@ -0,0 +1,77 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.HumanLoopDataAttributes+-- Copyright : (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.Textract.Types.HumanLoopDataAttributes 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+import Amazonka.Textract.Types.ContentClassifier++-- | Allows you to set attributes of the image. Currently, you can declare an+-- image as free of personally identifiable information and adult content.+--+-- /See:/ 'newHumanLoopDataAttributes' smart constructor.+data HumanLoopDataAttributes = HumanLoopDataAttributes'+ { -- | Sets whether the input image is free of personally identifiable+ -- information or adult content.+ contentClassifiers :: Prelude.Maybe [ContentClassifier]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HumanLoopDataAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentClassifiers', 'humanLoopDataAttributes_contentClassifiers' - Sets whether the input image is free of personally identifiable+-- information or adult content.+newHumanLoopDataAttributes ::+ HumanLoopDataAttributes+newHumanLoopDataAttributes =+ HumanLoopDataAttributes'+ { contentClassifiers =+ Prelude.Nothing+ }++-- | Sets whether the input image is free of personally identifiable+-- information or adult content.+humanLoopDataAttributes_contentClassifiers :: Lens.Lens' HumanLoopDataAttributes (Prelude.Maybe [ContentClassifier])+humanLoopDataAttributes_contentClassifiers = Lens.lens (\HumanLoopDataAttributes' {contentClassifiers} -> contentClassifiers) (\s@HumanLoopDataAttributes' {} a -> s {contentClassifiers = a} :: HumanLoopDataAttributes) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable HumanLoopDataAttributes where+ hashWithSalt _salt HumanLoopDataAttributes' {..} =+ _salt `Prelude.hashWithSalt` contentClassifiers++instance Prelude.NFData HumanLoopDataAttributes where+ rnf HumanLoopDataAttributes' {..} =+ Prelude.rnf contentClassifiers++instance Data.ToJSON HumanLoopDataAttributes where+ toJSON HumanLoopDataAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ContentClassifiers" Data..=)+ Prelude.<$> contentClassifiers+ ]+ )
+ gen/Amazonka/Textract/Types/IdentityDocument.hs view
@@ -0,0 +1,111 @@+{-# 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.Textract.Types.IdentityDocument+-- Copyright : (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.Textract.Types.IdentityDocument 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+import Amazonka.Textract.Types.Block+import Amazonka.Textract.Types.IdentityDocumentField++-- | The structure that lists each document processed in an AnalyzeID+-- operation.+--+-- /See:/ 'newIdentityDocument' smart constructor.+data IdentityDocument = IdentityDocument'+ { -- | Individual word recognition, as returned by document detection.+ blocks :: Prelude.Maybe [Block],+ -- | Denotes the placement of a document in the IdentityDocument list. The+ -- first document is marked 1, the second 2 and so on.+ documentIndex :: Prelude.Maybe Prelude.Natural,+ -- | The structure used to record information extracted from identity+ -- documents. Contains both normalized field and value of the extracted+ -- text.+ identityDocumentFields :: Prelude.Maybe [IdentityDocumentField]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IdentityDocument' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'blocks', 'identityDocument_blocks' - Individual word recognition, as returned by document detection.+--+-- 'documentIndex', 'identityDocument_documentIndex' - Denotes the placement of a document in the IdentityDocument list. The+-- first document is marked 1, the second 2 and so on.+--+-- 'identityDocumentFields', 'identityDocument_identityDocumentFields' - The structure used to record information extracted from identity+-- documents. Contains both normalized field and value of the extracted+-- text.+newIdentityDocument ::+ IdentityDocument+newIdentityDocument =+ IdentityDocument'+ { blocks = Prelude.Nothing,+ documentIndex = Prelude.Nothing,+ identityDocumentFields = Prelude.Nothing+ }++-- | Individual word recognition, as returned by document detection.+identityDocument_blocks :: Lens.Lens' IdentityDocument (Prelude.Maybe [Block])+identityDocument_blocks = Lens.lens (\IdentityDocument' {blocks} -> blocks) (\s@IdentityDocument' {} a -> s {blocks = a} :: IdentityDocument) Prelude.. Lens.mapping Lens.coerced++-- | Denotes the placement of a document in the IdentityDocument list. The+-- first document is marked 1, the second 2 and so on.+identityDocument_documentIndex :: Lens.Lens' IdentityDocument (Prelude.Maybe Prelude.Natural)+identityDocument_documentIndex = Lens.lens (\IdentityDocument' {documentIndex} -> documentIndex) (\s@IdentityDocument' {} a -> s {documentIndex = a} :: IdentityDocument)++-- | The structure used to record information extracted from identity+-- documents. Contains both normalized field and value of the extracted+-- text.+identityDocument_identityDocumentFields :: Lens.Lens' IdentityDocument (Prelude.Maybe [IdentityDocumentField])+identityDocument_identityDocumentFields = Lens.lens (\IdentityDocument' {identityDocumentFields} -> identityDocumentFields) (\s@IdentityDocument' {} a -> s {identityDocumentFields = a} :: IdentityDocument) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON IdentityDocument where+ parseJSON =+ Data.withObject+ "IdentityDocument"+ ( \x ->+ IdentityDocument'+ Prelude.<$> (x Data..:? "Blocks" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "DocumentIndex")+ Prelude.<*> ( x+ Data..:? "IdentityDocumentFields"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable IdentityDocument where+ hashWithSalt _salt IdentityDocument' {..} =+ _salt+ `Prelude.hashWithSalt` blocks+ `Prelude.hashWithSalt` documentIndex+ `Prelude.hashWithSalt` identityDocumentFields++instance Prelude.NFData IdentityDocument where+ rnf IdentityDocument' {..} =+ Prelude.rnf blocks+ `Prelude.seq` Prelude.rnf documentIndex+ `Prelude.seq` Prelude.rnf identityDocumentFields
+ gen/Amazonka/Textract/Types/IdentityDocumentField.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.Textract.Types.IdentityDocumentField+-- Copyright : (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.Textract.Types.IdentityDocumentField 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+import Amazonka.Textract.Types.AnalyzeIDDetections++-- | Structure containing both the normalized type of the extracted+-- information and the text associated with it. These are extracted as Type+-- and Value respectively.+--+-- /See:/ 'newIdentityDocumentField' smart constructor.+data IdentityDocumentField = IdentityDocumentField'+ { type' :: Prelude.Maybe AnalyzeIDDetections,+ valueDetection :: Prelude.Maybe AnalyzeIDDetections+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IdentityDocumentField' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'type'', 'identityDocumentField_type' - Undocumented member.+--+-- 'valueDetection', 'identityDocumentField_valueDetection' - Undocumented member.+newIdentityDocumentField ::+ IdentityDocumentField+newIdentityDocumentField =+ IdentityDocumentField'+ { type' = Prelude.Nothing,+ valueDetection = Prelude.Nothing+ }++-- | Undocumented member.+identityDocumentField_type :: Lens.Lens' IdentityDocumentField (Prelude.Maybe AnalyzeIDDetections)+identityDocumentField_type = Lens.lens (\IdentityDocumentField' {type'} -> type') (\s@IdentityDocumentField' {} a -> s {type' = a} :: IdentityDocumentField)++-- | Undocumented member.+identityDocumentField_valueDetection :: Lens.Lens' IdentityDocumentField (Prelude.Maybe AnalyzeIDDetections)+identityDocumentField_valueDetection = Lens.lens (\IdentityDocumentField' {valueDetection} -> valueDetection) (\s@IdentityDocumentField' {} a -> s {valueDetection = a} :: IdentityDocumentField)++instance Data.FromJSON IdentityDocumentField where+ parseJSON =+ Data.withObject+ "IdentityDocumentField"+ ( \x ->+ IdentityDocumentField'+ Prelude.<$> (x Data..:? "Type")+ Prelude.<*> (x Data..:? "ValueDetection")+ )++instance Prelude.Hashable IdentityDocumentField where+ hashWithSalt _salt IdentityDocumentField' {..} =+ _salt+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` valueDetection++instance Prelude.NFData IdentityDocumentField where+ rnf IdentityDocumentField' {..} =+ Prelude.rnf type'+ `Prelude.seq` Prelude.rnf valueDetection
+ gen/Amazonka/Textract/Types/JobStatus.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.Textract.Types.JobStatus+-- Copyright : (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.Textract.Types.JobStatus+ ( JobStatus+ ( ..,+ JobStatus_FAILED,+ JobStatus_IN_PROGRESS,+ JobStatus_PARTIAL_SUCCESS,+ JobStatus_SUCCEEDED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype JobStatus = JobStatus'+ { fromJobStatus ::+ 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 JobStatus_FAILED :: JobStatus+pattern JobStatus_FAILED = JobStatus' "FAILED"++pattern JobStatus_IN_PROGRESS :: JobStatus+pattern JobStatus_IN_PROGRESS = JobStatus' "IN_PROGRESS"++pattern JobStatus_PARTIAL_SUCCESS :: JobStatus+pattern JobStatus_PARTIAL_SUCCESS = JobStatus' "PARTIAL_SUCCESS"++pattern JobStatus_SUCCEEDED :: JobStatus+pattern JobStatus_SUCCEEDED = JobStatus' "SUCCEEDED"++{-# COMPLETE+ JobStatus_FAILED,+ JobStatus_IN_PROGRESS,+ JobStatus_PARTIAL_SUCCESS,+ JobStatus_SUCCEEDED,+ JobStatus'+ #-}
+ gen/Amazonka/Textract/Types/LendingDetection.hs view
@@ -0,0 +1,115 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.LendingDetection+-- Copyright : (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.Textract.Types.LendingDetection 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+import Amazonka.Textract.Types.Geometry+import Amazonka.Textract.Types.SelectionStatus++-- | The results extracted for a lending document.+--+-- /See:/ 'newLendingDetection' smart constructor.+data LendingDetection = LendingDetection'+ { -- | The confidence level for the text of a detected value in a lending+ -- document.+ confidence :: Prelude.Maybe Prelude.Double,+ geometry :: Prelude.Maybe Geometry,+ -- | The selection status of a selection element, such as an option button or+ -- check box.+ selectionStatus :: Prelude.Maybe SelectionStatus,+ -- | The text extracted for a detected value in a lending document.+ text :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LendingDetection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'confidence', 'lendingDetection_confidence' - The confidence level for the text of a detected value in a lending+-- document.+--+-- 'geometry', 'lendingDetection_geometry' - Undocumented member.+--+-- 'selectionStatus', 'lendingDetection_selectionStatus' - The selection status of a selection element, such as an option button or+-- check box.+--+-- 'text', 'lendingDetection_text' - The text extracted for a detected value in a lending document.+newLendingDetection ::+ LendingDetection+newLendingDetection =+ LendingDetection'+ { confidence = Prelude.Nothing,+ geometry = Prelude.Nothing,+ selectionStatus = Prelude.Nothing,+ text = Prelude.Nothing+ }++-- | The confidence level for the text of a detected value in a lending+-- document.+lendingDetection_confidence :: Lens.Lens' LendingDetection (Prelude.Maybe Prelude.Double)+lendingDetection_confidence = Lens.lens (\LendingDetection' {confidence} -> confidence) (\s@LendingDetection' {} a -> s {confidence = a} :: LendingDetection)++-- | Undocumented member.+lendingDetection_geometry :: Lens.Lens' LendingDetection (Prelude.Maybe Geometry)+lendingDetection_geometry = Lens.lens (\LendingDetection' {geometry} -> geometry) (\s@LendingDetection' {} a -> s {geometry = a} :: LendingDetection)++-- | The selection status of a selection element, such as an option button or+-- check box.+lendingDetection_selectionStatus :: Lens.Lens' LendingDetection (Prelude.Maybe SelectionStatus)+lendingDetection_selectionStatus = Lens.lens (\LendingDetection' {selectionStatus} -> selectionStatus) (\s@LendingDetection' {} a -> s {selectionStatus = a} :: LendingDetection)++-- | The text extracted for a detected value in a lending document.+lendingDetection_text :: Lens.Lens' LendingDetection (Prelude.Maybe Prelude.Text)+lendingDetection_text = Lens.lens (\LendingDetection' {text} -> text) (\s@LendingDetection' {} a -> s {text = a} :: LendingDetection)++instance Data.FromJSON LendingDetection where+ parseJSON =+ Data.withObject+ "LendingDetection"+ ( \x ->+ LendingDetection'+ Prelude.<$> (x Data..:? "Confidence")+ Prelude.<*> (x Data..:? "Geometry")+ Prelude.<*> (x Data..:? "SelectionStatus")+ Prelude.<*> (x Data..:? "Text")+ )++instance Prelude.Hashable LendingDetection where+ hashWithSalt _salt LendingDetection' {..} =+ _salt+ `Prelude.hashWithSalt` confidence+ `Prelude.hashWithSalt` geometry+ `Prelude.hashWithSalt` selectionStatus+ `Prelude.hashWithSalt` text++instance Prelude.NFData LendingDetection where+ rnf LendingDetection' {..} =+ Prelude.rnf confidence+ `Prelude.seq` Prelude.rnf geometry+ `Prelude.seq` Prelude.rnf selectionStatus+ `Prelude.seq` Prelude.rnf text
+ gen/Amazonka/Textract/Types/LendingDocument.hs view
@@ -0,0 +1,90 @@+{-# 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.Textract.Types.LendingDocument+-- Copyright : (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.Textract.Types.LendingDocument 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+import Amazonka.Textract.Types.LendingField+import Amazonka.Textract.Types.SignatureDetection++-- | Holds the structured data returned by AnalyzeDocument for lending+-- documents.+--+-- /See:/ 'newLendingDocument' smart constructor.+data LendingDocument = LendingDocument'+ { -- | An array of LendingField objects.+ lendingFields :: Prelude.Maybe [LendingField],+ -- | A list of signatures detected in a lending document.+ signatureDetections :: Prelude.Maybe [SignatureDetection]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LendingDocument' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lendingFields', 'lendingDocument_lendingFields' - An array of LendingField objects.+--+-- 'signatureDetections', 'lendingDocument_signatureDetections' - A list of signatures detected in a lending document.+newLendingDocument ::+ LendingDocument+newLendingDocument =+ LendingDocument'+ { lendingFields = Prelude.Nothing,+ signatureDetections = Prelude.Nothing+ }++-- | An array of LendingField objects.+lendingDocument_lendingFields :: Lens.Lens' LendingDocument (Prelude.Maybe [LendingField])+lendingDocument_lendingFields = Lens.lens (\LendingDocument' {lendingFields} -> lendingFields) (\s@LendingDocument' {} a -> s {lendingFields = a} :: LendingDocument) Prelude.. Lens.mapping Lens.coerced++-- | A list of signatures detected in a lending document.+lendingDocument_signatureDetections :: Lens.Lens' LendingDocument (Prelude.Maybe [SignatureDetection])+lendingDocument_signatureDetections = Lens.lens (\LendingDocument' {signatureDetections} -> signatureDetections) (\s@LendingDocument' {} a -> s {signatureDetections = a} :: LendingDocument) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON LendingDocument where+ parseJSON =+ Data.withObject+ "LendingDocument"+ ( \x ->+ LendingDocument'+ Prelude.<$> (x Data..:? "LendingFields" Data..!= Prelude.mempty)+ Prelude.<*> ( x+ Data..:? "SignatureDetections"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable LendingDocument where+ hashWithSalt _salt LendingDocument' {..} =+ _salt+ `Prelude.hashWithSalt` lendingFields+ `Prelude.hashWithSalt` signatureDetections++instance Prelude.NFData LendingDocument where+ rnf LendingDocument' {..} =+ Prelude.rnf lendingFields+ `Prelude.seq` Prelude.rnf signatureDetections
+ gen/Amazonka/Textract/Types/LendingField.hs view
@@ -0,0 +1,100 @@+{-# 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.Textract.Types.LendingField+-- Copyright : (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.Textract.Types.LendingField 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+import Amazonka.Textract.Types.LendingDetection++-- | Holds the normalized key-value pairs returned by AnalyzeDocument,+-- including the document type, detected text, and geometry.+--+-- /See:/ 'newLendingField' smart constructor.+data LendingField = LendingField'+ { keyDetection :: Prelude.Maybe LendingDetection,+ -- | The type of the lending document.+ type' :: Prelude.Maybe Prelude.Text,+ -- | An array of LendingDetection objects.+ valueDetections :: Prelude.Maybe [LendingDetection]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LendingField' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyDetection', 'lendingField_keyDetection' - Undocumented member.+--+-- 'type'', 'lendingField_type' - The type of the lending document.+--+-- 'valueDetections', 'lendingField_valueDetections' - An array of LendingDetection objects.+newLendingField ::+ LendingField+newLendingField =+ LendingField'+ { keyDetection = Prelude.Nothing,+ type' = Prelude.Nothing,+ valueDetections = Prelude.Nothing+ }++-- | Undocumented member.+lendingField_keyDetection :: Lens.Lens' LendingField (Prelude.Maybe LendingDetection)+lendingField_keyDetection = Lens.lens (\LendingField' {keyDetection} -> keyDetection) (\s@LendingField' {} a -> s {keyDetection = a} :: LendingField)++-- | The type of the lending document.+lendingField_type :: Lens.Lens' LendingField (Prelude.Maybe Prelude.Text)+lendingField_type = Lens.lens (\LendingField' {type'} -> type') (\s@LendingField' {} a -> s {type' = a} :: LendingField)++-- | An array of LendingDetection objects.+lendingField_valueDetections :: Lens.Lens' LendingField (Prelude.Maybe [LendingDetection])+lendingField_valueDetections = Lens.lens (\LendingField' {valueDetections} -> valueDetections) (\s@LendingField' {} a -> s {valueDetections = a} :: LendingField) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON LendingField where+ parseJSON =+ Data.withObject+ "LendingField"+ ( \x ->+ LendingField'+ Prelude.<$> (x Data..:? "KeyDetection")+ Prelude.<*> (x Data..:? "Type")+ Prelude.<*> ( x+ Data..:? "ValueDetections"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable LendingField where+ hashWithSalt _salt LendingField' {..} =+ _salt+ `Prelude.hashWithSalt` keyDetection+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` valueDetections++instance Prelude.NFData LendingField where+ rnf LendingField' {..} =+ Prelude.rnf keyDetection+ `Prelude.seq` Prelude.rnf type'+ `Prelude.seq` Prelude.rnf valueDetections
+ gen/Amazonka/Textract/Types/LendingResult.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.Textract.Types.LendingResult+-- Copyright : (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.Textract.Types.LendingResult 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+import Amazonka.Textract.Types.Extraction+import Amazonka.Textract.Types.PageClassification++-- | Contains the detections for each page analyzed through the Analyze+-- Lending API.+--+-- /See:/ 'newLendingResult' smart constructor.+data LendingResult = LendingResult'+ { -- | An array of Extraction to hold structured data. e.g. normalized key+ -- value pairs instead of raw OCR detections .+ extractions :: Prelude.Maybe [Extraction],+ -- | The page number for a page, with regard to whole submission.+ page :: Prelude.Maybe Prelude.Natural,+ -- | The classifier result for a given page.+ pageClassification :: Prelude.Maybe PageClassification+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LendingResult' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'extractions', 'lendingResult_extractions' - An array of Extraction to hold structured data. e.g. normalized key+-- value pairs instead of raw OCR detections .+--+-- 'page', 'lendingResult_page' - The page number for a page, with regard to whole submission.+--+-- 'pageClassification', 'lendingResult_pageClassification' - The classifier result for a given page.+newLendingResult ::+ LendingResult+newLendingResult =+ LendingResult'+ { extractions = Prelude.Nothing,+ page = Prelude.Nothing,+ pageClassification = Prelude.Nothing+ }++-- | An array of Extraction to hold structured data. e.g. normalized key+-- value pairs instead of raw OCR detections .+lendingResult_extractions :: Lens.Lens' LendingResult (Prelude.Maybe [Extraction])+lendingResult_extractions = Lens.lens (\LendingResult' {extractions} -> extractions) (\s@LendingResult' {} a -> s {extractions = a} :: LendingResult) Prelude.. Lens.mapping Lens.coerced++-- | The page number for a page, with regard to whole submission.+lendingResult_page :: Lens.Lens' LendingResult (Prelude.Maybe Prelude.Natural)+lendingResult_page = Lens.lens (\LendingResult' {page} -> page) (\s@LendingResult' {} a -> s {page = a} :: LendingResult)++-- | The classifier result for a given page.+lendingResult_pageClassification :: Lens.Lens' LendingResult (Prelude.Maybe PageClassification)+lendingResult_pageClassification = Lens.lens (\LendingResult' {pageClassification} -> pageClassification) (\s@LendingResult' {} a -> s {pageClassification = a} :: LendingResult)++instance Data.FromJSON LendingResult where+ parseJSON =+ Data.withObject+ "LendingResult"+ ( \x ->+ LendingResult'+ Prelude.<$> (x Data..:? "Extractions" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "Page")+ Prelude.<*> (x Data..:? "PageClassification")+ )++instance Prelude.Hashable LendingResult where+ hashWithSalt _salt LendingResult' {..} =+ _salt+ `Prelude.hashWithSalt` extractions+ `Prelude.hashWithSalt` page+ `Prelude.hashWithSalt` pageClassification++instance Prelude.NFData LendingResult where+ rnf LendingResult' {..} =+ Prelude.rnf extractions+ `Prelude.seq` Prelude.rnf page+ `Prelude.seq` Prelude.rnf pageClassification
+ gen/Amazonka/Textract/Types/LendingSummary.hs view
@@ -0,0 +1,89 @@+{-# 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.Textract.Types.LendingSummary+-- Copyright : (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.Textract.Types.LendingSummary 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+import Amazonka.Textract.Types.DocumentGroup++-- | Contains information regarding DocumentGroups and+-- UndetectedDocumentTypes.+--+-- /See:/ 'newLendingSummary' smart constructor.+data LendingSummary = LendingSummary'+ { -- | Contains an array of all DocumentGroup objects.+ documentGroups :: Prelude.Maybe [DocumentGroup],+ -- | UndetectedDocumentTypes.+ undetectedDocumentTypes :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LendingSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentGroups', 'lendingSummary_documentGroups' - Contains an array of all DocumentGroup objects.+--+-- 'undetectedDocumentTypes', 'lendingSummary_undetectedDocumentTypes' - UndetectedDocumentTypes.+newLendingSummary ::+ LendingSummary+newLendingSummary =+ LendingSummary'+ { documentGroups = Prelude.Nothing,+ undetectedDocumentTypes = Prelude.Nothing+ }++-- | Contains an array of all DocumentGroup objects.+lendingSummary_documentGroups :: Lens.Lens' LendingSummary (Prelude.Maybe [DocumentGroup])+lendingSummary_documentGroups = Lens.lens (\LendingSummary' {documentGroups} -> documentGroups) (\s@LendingSummary' {} a -> s {documentGroups = a} :: LendingSummary) Prelude.. Lens.mapping Lens.coerced++-- | UndetectedDocumentTypes.+lendingSummary_undetectedDocumentTypes :: Lens.Lens' LendingSummary (Prelude.Maybe [Prelude.Text])+lendingSummary_undetectedDocumentTypes = Lens.lens (\LendingSummary' {undetectedDocumentTypes} -> undetectedDocumentTypes) (\s@LendingSummary' {} a -> s {undetectedDocumentTypes = a} :: LendingSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON LendingSummary where+ parseJSON =+ Data.withObject+ "LendingSummary"+ ( \x ->+ LendingSummary'+ Prelude.<$> (x Data..:? "DocumentGroups" Data..!= Prelude.mempty)+ Prelude.<*> ( x+ Data..:? "UndetectedDocumentTypes"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable LendingSummary where+ hashWithSalt _salt LendingSummary' {..} =+ _salt+ `Prelude.hashWithSalt` documentGroups+ `Prelude.hashWithSalt` undetectedDocumentTypes++instance Prelude.NFData LendingSummary where+ rnf LendingSummary' {..} =+ Prelude.rnf documentGroups+ `Prelude.seq` Prelude.rnf undetectedDocumentTypes
+ gen/Amazonka/Textract/Types/LineItemFields.hs view
@@ -0,0 +1,77 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.LineItemFields+-- Copyright : (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.Textract.Types.LineItemFields 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+import Amazonka.Textract.Types.ExpenseField++-- | A structure that holds information about the different lines found in a+-- document\'s tables.+--+-- /See:/ 'newLineItemFields' smart constructor.+data LineItemFields = LineItemFields'+ { -- | ExpenseFields used to show information from detected lines on a table.+ lineItemExpenseFields :: Prelude.Maybe [ExpenseField]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LineItemFields' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lineItemExpenseFields', 'lineItemFields_lineItemExpenseFields' - ExpenseFields used to show information from detected lines on a table.+newLineItemFields ::+ LineItemFields+newLineItemFields =+ LineItemFields'+ { lineItemExpenseFields =+ Prelude.Nothing+ }++-- | ExpenseFields used to show information from detected lines on a table.+lineItemFields_lineItemExpenseFields :: Lens.Lens' LineItemFields (Prelude.Maybe [ExpenseField])+lineItemFields_lineItemExpenseFields = Lens.lens (\LineItemFields' {lineItemExpenseFields} -> lineItemExpenseFields) (\s@LineItemFields' {} a -> s {lineItemExpenseFields = a} :: LineItemFields) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON LineItemFields where+ parseJSON =+ Data.withObject+ "LineItemFields"+ ( \x ->+ LineItemFields'+ Prelude.<$> ( x+ Data..:? "LineItemExpenseFields"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable LineItemFields where+ hashWithSalt _salt LineItemFields' {..} =+ _salt `Prelude.hashWithSalt` lineItemExpenseFields++instance Prelude.NFData LineItemFields where+ rnf LineItemFields' {..} =+ Prelude.rnf lineItemExpenseFields
+ gen/Amazonka/Textract/Types/LineItemGroup.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.LineItemGroup+-- Copyright : (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.Textract.Types.LineItemGroup 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+import Amazonka.Textract.Types.LineItemFields++-- | A grouping of tables which contain LineItems, with each table identified+-- by the table\'s @LineItemGroupIndex@.+--+-- /See:/ 'newLineItemGroup' smart constructor.+data LineItemGroup = LineItemGroup'+ { -- | The number used to identify a specific table in a document. The first+ -- table encountered will have a LineItemGroupIndex of 1, the second 2,+ -- etc.+ lineItemGroupIndex :: Prelude.Maybe Prelude.Natural,+ -- | The breakdown of information on a particular line of a table.+ lineItems :: Prelude.Maybe [LineItemFields]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LineItemGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lineItemGroupIndex', 'lineItemGroup_lineItemGroupIndex' - The number used to identify a specific table in a document. The first+-- table encountered will have a LineItemGroupIndex of 1, the second 2,+-- etc.+--+-- 'lineItems', 'lineItemGroup_lineItems' - The breakdown of information on a particular line of a table.+newLineItemGroup ::+ LineItemGroup+newLineItemGroup =+ LineItemGroup'+ { lineItemGroupIndex =+ Prelude.Nothing,+ lineItems = Prelude.Nothing+ }++-- | The number used to identify a specific table in a document. The first+-- table encountered will have a LineItemGroupIndex of 1, the second 2,+-- etc.+lineItemGroup_lineItemGroupIndex :: Lens.Lens' LineItemGroup (Prelude.Maybe Prelude.Natural)+lineItemGroup_lineItemGroupIndex = Lens.lens (\LineItemGroup' {lineItemGroupIndex} -> lineItemGroupIndex) (\s@LineItemGroup' {} a -> s {lineItemGroupIndex = a} :: LineItemGroup)++-- | The breakdown of information on a particular line of a table.+lineItemGroup_lineItems :: Lens.Lens' LineItemGroup (Prelude.Maybe [LineItemFields])+lineItemGroup_lineItems = Lens.lens (\LineItemGroup' {lineItems} -> lineItems) (\s@LineItemGroup' {} a -> s {lineItems = a} :: LineItemGroup) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON LineItemGroup where+ parseJSON =+ Data.withObject+ "LineItemGroup"+ ( \x ->+ LineItemGroup'+ Prelude.<$> (x Data..:? "LineItemGroupIndex")+ Prelude.<*> (x Data..:? "LineItems" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable LineItemGroup where+ hashWithSalt _salt LineItemGroup' {..} =+ _salt+ `Prelude.hashWithSalt` lineItemGroupIndex+ `Prelude.hashWithSalt` lineItems++instance Prelude.NFData LineItemGroup where+ rnf LineItemGroup' {..} =+ Prelude.rnf lineItemGroupIndex+ `Prelude.seq` Prelude.rnf lineItems
+ gen/Amazonka/Textract/Types/NormalizedValue.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.Textract.Types.NormalizedValue+-- Copyright : (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.Textract.Types.NormalizedValue 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+import Amazonka.Textract.Types.ValueType++-- | Contains information relating to dates in a document, including the type+-- of value, and the value.+--+-- /See:/ 'newNormalizedValue' smart constructor.+data NormalizedValue = NormalizedValue'+ { -- | The value of the date, written as Year-Month-DayTHour:Minute:Second.+ value :: Prelude.Maybe Prelude.Text,+ -- | The normalized type of the value detected. In this case, DATE.+ valueType :: Prelude.Maybe ValueType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NormalizedValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'value', 'normalizedValue_value' - The value of the date, written as Year-Month-DayTHour:Minute:Second.+--+-- 'valueType', 'normalizedValue_valueType' - The normalized type of the value detected. In this case, DATE.+newNormalizedValue ::+ NormalizedValue+newNormalizedValue =+ NormalizedValue'+ { value = Prelude.Nothing,+ valueType = Prelude.Nothing+ }++-- | The value of the date, written as Year-Month-DayTHour:Minute:Second.+normalizedValue_value :: Lens.Lens' NormalizedValue (Prelude.Maybe Prelude.Text)+normalizedValue_value = Lens.lens (\NormalizedValue' {value} -> value) (\s@NormalizedValue' {} a -> s {value = a} :: NormalizedValue)++-- | The normalized type of the value detected. In this case, DATE.+normalizedValue_valueType :: Lens.Lens' NormalizedValue (Prelude.Maybe ValueType)+normalizedValue_valueType = Lens.lens (\NormalizedValue' {valueType} -> valueType) (\s@NormalizedValue' {} a -> s {valueType = a} :: NormalizedValue)++instance Data.FromJSON NormalizedValue where+ parseJSON =+ Data.withObject+ "NormalizedValue"+ ( \x ->+ NormalizedValue'+ Prelude.<$> (x Data..:? "Value")+ Prelude.<*> (x Data..:? "ValueType")+ )++instance Prelude.Hashable NormalizedValue where+ hashWithSalt _salt NormalizedValue' {..} =+ _salt+ `Prelude.hashWithSalt` value+ `Prelude.hashWithSalt` valueType++instance Prelude.NFData NormalizedValue where+ rnf NormalizedValue' {..} =+ Prelude.rnf value+ `Prelude.seq` Prelude.rnf valueType
+ gen/Amazonka/Textract/Types/NotificationChannel.hs view
@@ -0,0 +1,95 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.NotificationChannel+-- Copyright : (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.Textract.Types.NotificationChannel where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Amazon Simple Notification Service (Amazon SNS) topic to which+-- Amazon Textract publishes the completion status of an asynchronous+-- document operation.+--+-- /See:/ 'newNotificationChannel' smart constructor.+data NotificationChannel = NotificationChannel'+ { -- | The Amazon SNS topic that Amazon Textract posts the completion status+ -- to.+ sNSTopicArn :: Prelude.Text,+ -- | The Amazon Resource Name (ARN) of an IAM role that gives Amazon Textract+ -- publishing permissions to the Amazon SNS topic.+ roleArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NotificationChannel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sNSTopicArn', 'notificationChannel_sNSTopicArn' - The Amazon SNS topic that Amazon Textract posts the completion status+-- to.+--+-- 'roleArn', 'notificationChannel_roleArn' - The Amazon Resource Name (ARN) of an IAM role that gives Amazon Textract+-- publishing permissions to the Amazon SNS topic.+newNotificationChannel ::+ -- | 'sNSTopicArn'+ Prelude.Text ->+ -- | 'roleArn'+ Prelude.Text ->+ NotificationChannel+newNotificationChannel pSNSTopicArn_ pRoleArn_ =+ NotificationChannel'+ { sNSTopicArn = pSNSTopicArn_,+ roleArn = pRoleArn_+ }++-- | The Amazon SNS topic that Amazon Textract posts the completion status+-- to.+notificationChannel_sNSTopicArn :: Lens.Lens' NotificationChannel Prelude.Text+notificationChannel_sNSTopicArn = Lens.lens (\NotificationChannel' {sNSTopicArn} -> sNSTopicArn) (\s@NotificationChannel' {} a -> s {sNSTopicArn = a} :: NotificationChannel)++-- | The Amazon Resource Name (ARN) of an IAM role that gives Amazon Textract+-- publishing permissions to the Amazon SNS topic.+notificationChannel_roleArn :: Lens.Lens' NotificationChannel Prelude.Text+notificationChannel_roleArn = Lens.lens (\NotificationChannel' {roleArn} -> roleArn) (\s@NotificationChannel' {} a -> s {roleArn = a} :: NotificationChannel)++instance Prelude.Hashable NotificationChannel where+ hashWithSalt _salt NotificationChannel' {..} =+ _salt+ `Prelude.hashWithSalt` sNSTopicArn+ `Prelude.hashWithSalt` roleArn++instance Prelude.NFData NotificationChannel where+ rnf NotificationChannel' {..} =+ Prelude.rnf sNSTopicArn+ `Prelude.seq` Prelude.rnf roleArn++instance Data.ToJSON NotificationChannel where+ toJSON NotificationChannel' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("SNSTopicArn" Data..= sNSTopicArn),+ Prelude.Just ("RoleArn" Data..= roleArn)+ ]+ )
+ gen/Amazonka/Textract/Types/OutputConfig.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.OutputConfig+-- Copyright : (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.Textract.Types.OutputConfig 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++-- | Sets whether or not your output will go to a user created bucket. Used+-- to set the name of the bucket, and the prefix on the output file.+--+-- @OutputConfig@ is an optional parameter which lets you adjust where your+-- output will be placed. By default, Amazon Textract will store the+-- results internally and can only be accessed by the Get API operations.+-- With @OutputConfig@ enabled, you can set the name of the bucket the+-- output will be sent to the file prefix of the results where you can+-- download your results. Additionally, you can set the @KMSKeyID@+-- parameter to a customer master key (CMK) to encrypt your output. Without+-- this parameter set Amazon Textract will encrypt server-side using the+-- AWS managed CMK for Amazon S3.+--+-- Decryption of Customer Content is necessary for processing of the+-- documents by Amazon Textract. If your account is opted out under an AI+-- services opt out policy then all unencrypted Customer Content is+-- immediately and permanently deleted after the Customer Content has been+-- processed by the service. No copy of of the output is retained by Amazon+-- Textract. For information about how to opt out, see+-- <https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html Managing AI services opt-out policy.>+--+-- For more information on data privacy, see the+-- <https://aws.amazon.com/compliance/data-privacy-faq/ Data Privacy FAQ>.+--+-- /See:/ 'newOutputConfig' smart constructor.+data OutputConfig = OutputConfig'+ { -- | The prefix of the object key that the output will be saved to. When not+ -- enabled, the prefix will be “textract_output\".+ s3Prefix :: Prelude.Maybe Prelude.Text,+ -- | The name of the bucket your output will go to.+ s3Bucket :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OutputConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Prefix', 'outputConfig_s3Prefix' - The prefix of the object key that the output will be saved to. When not+-- enabled, the prefix will be “textract_output\".+--+-- 's3Bucket', 'outputConfig_s3Bucket' - The name of the bucket your output will go to.+newOutputConfig ::+ -- | 's3Bucket'+ Prelude.Text ->+ OutputConfig+newOutputConfig pS3Bucket_ =+ OutputConfig'+ { s3Prefix = Prelude.Nothing,+ s3Bucket = pS3Bucket_+ }++-- | The prefix of the object key that the output will be saved to. When not+-- enabled, the prefix will be “textract_output\".+outputConfig_s3Prefix :: Lens.Lens' OutputConfig (Prelude.Maybe Prelude.Text)+outputConfig_s3Prefix = Lens.lens (\OutputConfig' {s3Prefix} -> s3Prefix) (\s@OutputConfig' {} a -> s {s3Prefix = a} :: OutputConfig)++-- | The name of the bucket your output will go to.+outputConfig_s3Bucket :: Lens.Lens' OutputConfig Prelude.Text+outputConfig_s3Bucket = Lens.lens (\OutputConfig' {s3Bucket} -> s3Bucket) (\s@OutputConfig' {} a -> s {s3Bucket = a} :: OutputConfig)++instance Prelude.Hashable OutputConfig where+ hashWithSalt _salt OutputConfig' {..} =+ _salt+ `Prelude.hashWithSalt` s3Prefix+ `Prelude.hashWithSalt` s3Bucket++instance Prelude.NFData OutputConfig where+ rnf OutputConfig' {..} =+ Prelude.rnf s3Prefix+ `Prelude.seq` Prelude.rnf s3Bucket++instance Data.ToJSON OutputConfig where+ toJSON OutputConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("S3Prefix" Data..=) Prelude.<$> s3Prefix,+ Prelude.Just ("S3Bucket" Data..= s3Bucket)+ ]+ )
+ gen/Amazonka/Textract/Types/PageClassification.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.PageClassification+-- Copyright : (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.Textract.Types.PageClassification 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+import Amazonka.Textract.Types.Prediction++-- | The class assigned to a Page object detected in an input document.+-- Contains information regarding the predicted type\/class of a+-- document\'s page and the page number that the Page object was detected+-- on.+--+-- /See:/ 'newPageClassification' smart constructor.+data PageClassification = PageClassification'+ { -- | The class, or document type, assigned to a detected Page object. The+ -- class, or document type, assigned to a detected Page object.+ pageType :: [Prediction],+ -- | The page number the value was detected on, relative to Amazon+ -- Textract\'s starting position.+ pageNumber :: [Prediction]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PageClassification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'pageType', 'pageClassification_pageType' - The class, or document type, assigned to a detected Page object. The+-- class, or document type, assigned to a detected Page object.+--+-- 'pageNumber', 'pageClassification_pageNumber' - The page number the value was detected on, relative to Amazon+-- Textract\'s starting position.+newPageClassification ::+ PageClassification+newPageClassification =+ PageClassification'+ { pageType = Prelude.mempty,+ pageNumber = Prelude.mempty+ }++-- | The class, or document type, assigned to a detected Page object. The+-- class, or document type, assigned to a detected Page object.+pageClassification_pageType :: Lens.Lens' PageClassification [Prediction]+pageClassification_pageType = Lens.lens (\PageClassification' {pageType} -> pageType) (\s@PageClassification' {} a -> s {pageType = a} :: PageClassification) Prelude.. Lens.coerced++-- | The page number the value was detected on, relative to Amazon+-- Textract\'s starting position.+pageClassification_pageNumber :: Lens.Lens' PageClassification [Prediction]+pageClassification_pageNumber = Lens.lens (\PageClassification' {pageNumber} -> pageNumber) (\s@PageClassification' {} a -> s {pageNumber = a} :: PageClassification) Prelude.. Lens.coerced++instance Data.FromJSON PageClassification where+ parseJSON =+ Data.withObject+ "PageClassification"+ ( \x ->+ PageClassification'+ Prelude.<$> (x Data..:? "PageType" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "PageNumber" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable PageClassification where+ hashWithSalt _salt PageClassification' {..} =+ _salt+ `Prelude.hashWithSalt` pageType+ `Prelude.hashWithSalt` pageNumber++instance Prelude.NFData PageClassification where+ rnf PageClassification' {..} =+ Prelude.rnf pageType+ `Prelude.seq` Prelude.rnf pageNumber
+ gen/Amazonka/Textract/Types/Point.hs view
@@ -0,0 +1,89 @@+{-# 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.Textract.Types.Point+-- Copyright : (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.Textract.Types.Point 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 X and Y coordinates of a point on a document page. The X and Y+-- values that are returned are ratios of the overall document page size.+-- For example, if the input document is 700 x 200 and the operation+-- returns X=0.5 and Y=0.25, then the point is at the (350,50) pixel+-- coordinate on the document page.+--+-- An array of @Point@ objects, @Polygon@, is returned by+-- DetectDocumentText. @Polygon@ represents a fine-grained polygon around+-- detected text. For more information, see Geometry in the Amazon Textract+-- Developer Guide.+--+-- /See:/ 'newPoint' smart constructor.+data Point = Point'+ { -- | The value of the X coordinate for a point on a @Polygon@.+ x :: Prelude.Maybe Prelude.Double,+ -- | The value of the Y coordinate for a point on a @Polygon@.+ y :: Prelude.Maybe Prelude.Double+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Point' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'x', 'point_x' - The value of the X coordinate for a point on a @Polygon@.+--+-- 'y', 'point_y' - The value of the Y coordinate for a point on a @Polygon@.+newPoint ::+ Point+newPoint =+ Point' {x = Prelude.Nothing, y = Prelude.Nothing}++-- | The value of the X coordinate for a point on a @Polygon@.+point_x :: Lens.Lens' Point (Prelude.Maybe Prelude.Double)+point_x = Lens.lens (\Point' {x} -> x) (\s@Point' {} a -> s {x = a} :: Point)++-- | The value of the Y coordinate for a point on a @Polygon@.+point_y :: Lens.Lens' Point (Prelude.Maybe Prelude.Double)+point_y = Lens.lens (\Point' {y} -> y) (\s@Point' {} a -> s {y = a} :: Point)++instance Data.FromJSON Point where+ parseJSON =+ Data.withObject+ "Point"+ ( \x ->+ Point'+ Prelude.<$> (x Data..:? "X")+ Prelude.<*> (x Data..:? "Y")+ )++instance Prelude.Hashable Point where+ hashWithSalt _salt Point' {..} =+ _salt+ `Prelude.hashWithSalt` x+ `Prelude.hashWithSalt` y++instance Prelude.NFData Point where+ rnf Point' {..} =+ Prelude.rnf x `Prelude.seq` Prelude.rnf y
+ gen/Amazonka/Textract/Types/Prediction.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.Textract.Types.Prediction+-- Copyright : (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.Textract.Types.Prediction 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 information regarding predicted values returned by Amazon+-- Textract operations, including the predicted value and the confidence in+-- the predicted value.+--+-- /See:/ 'newPrediction' smart constructor.+data Prediction = Prediction'+ { -- | Amazon Textract\'s confidence in its predicted value.+ confidence :: Prelude.Maybe Prelude.Double,+ -- | The predicted value of a detected object.+ value :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Prediction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'confidence', 'prediction_confidence' - Amazon Textract\'s confidence in its predicted value.+--+-- 'value', 'prediction_value' - The predicted value of a detected object.+newPrediction ::+ Prediction+newPrediction =+ Prediction'+ { confidence = Prelude.Nothing,+ value = Prelude.Nothing+ }++-- | Amazon Textract\'s confidence in its predicted value.+prediction_confidence :: Lens.Lens' Prediction (Prelude.Maybe Prelude.Double)+prediction_confidence = Lens.lens (\Prediction' {confidence} -> confidence) (\s@Prediction' {} a -> s {confidence = a} :: Prediction)++-- | The predicted value of a detected object.+prediction_value :: Lens.Lens' Prediction (Prelude.Maybe Prelude.Text)+prediction_value = Lens.lens (\Prediction' {value} -> value) (\s@Prediction' {} a -> s {value = a} :: Prediction)++instance Data.FromJSON Prediction where+ parseJSON =+ Data.withObject+ "Prediction"+ ( \x ->+ Prediction'+ Prelude.<$> (x Data..:? "Confidence")+ Prelude.<*> (x Data..:? "Value")+ )++instance Prelude.Hashable Prediction where+ hashWithSalt _salt Prediction' {..} =+ _salt+ `Prelude.hashWithSalt` confidence+ `Prelude.hashWithSalt` value++instance Prelude.NFData Prediction where+ rnf Prediction' {..} =+ Prelude.rnf confidence+ `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/Textract/Types/QueriesConfig.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.QueriesConfig+-- Copyright : (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.Textract.Types.QueriesConfig 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+import Amazonka.Textract.Types.Query++-- |+--+-- /See:/ 'newQueriesConfig' smart constructor.+data QueriesConfig = QueriesConfig'+ { queries :: Prelude.NonEmpty Query+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'QueriesConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'queries', 'queriesConfig_queries' -+newQueriesConfig ::+ -- | 'queries'+ Prelude.NonEmpty Query ->+ QueriesConfig+newQueriesConfig pQueries_ =+ QueriesConfig'+ { queries =+ Lens.coerced Lens.# pQueries_+ }++queriesConfig_queries :: Lens.Lens' QueriesConfig (Prelude.NonEmpty Query)+queriesConfig_queries = Lens.lens (\QueriesConfig' {queries} -> queries) (\s@QueriesConfig' {} a -> s {queries = a} :: QueriesConfig) Prelude.. Lens.coerced++instance Prelude.Hashable QueriesConfig where+ hashWithSalt _salt QueriesConfig' {..} =+ _salt `Prelude.hashWithSalt` queries++instance Prelude.NFData QueriesConfig where+ rnf QueriesConfig' {..} = Prelude.rnf queries++instance Data.ToJSON QueriesConfig where+ toJSON QueriesConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Queries" Data..= queries)]+ )
+ gen/Amazonka/Textract/Types/Query.hs view
@@ -0,0 +1,160 @@+{-# 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.Textract.Types.Query+-- Copyright : (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.Textract.Types.Query 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++-- | Each query contains the question you want to ask in the Text and the+-- alias you want to associate.+--+-- /See:/ 'newQuery' smart constructor.+data Query = Query'+ { -- | Alias attached to the query, for ease of location.+ alias :: Prelude.Maybe Prelude.Text,+ -- | Pages is a parameter that the user inputs to specify which pages to+ -- apply a query to. The following is a list of rules for using this+ -- parameter.+ --+ -- - If a page is not specified, it is set to @[\"1\"]@ by default.+ --+ -- - The following characters are allowed in the parameter\'s string:+ -- @0 1 2 3 4 5 6 7 8 9 - *@. No whitespace is allowed.+ --+ -- - When using * to indicate all pages, it must be the only element in+ -- the list.+ --+ -- - You can use page intervals, such as @[“1-3”, “1-1”, “4-*”]@. Where+ -- @*@ indicates last page of document.+ --+ -- - Specified pages must be greater than 0 and less than or equal to the+ -- number of pages in the document.+ pages :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | Question that Amazon Textract will apply to the document. An example+ -- would be \"What is the customer\'s SSN?\"+ text :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Query' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alias', 'query_alias' - Alias attached to the query, for ease of location.+--+-- 'pages', 'query_pages' - Pages is a parameter that the user inputs to specify which pages to+-- apply a query to. The following is a list of rules for using this+-- parameter.+--+-- - If a page is not specified, it is set to @[\"1\"]@ by default.+--+-- - The following characters are allowed in the parameter\'s string:+-- @0 1 2 3 4 5 6 7 8 9 - *@. No whitespace is allowed.+--+-- - When using * to indicate all pages, it must be the only element in+-- the list.+--+-- - You can use page intervals, such as @[“1-3”, “1-1”, “4-*”]@. Where+-- @*@ indicates last page of document.+--+-- - Specified pages must be greater than 0 and less than or equal to the+-- number of pages in the document.+--+-- 'text', 'query_text' - Question that Amazon Textract will apply to the document. An example+-- would be \"What is the customer\'s SSN?\"+newQuery ::+ -- | 'text'+ Prelude.Text ->+ Query+newQuery pText_ =+ Query'+ { alias = Prelude.Nothing,+ pages = Prelude.Nothing,+ text = pText_+ }++-- | Alias attached to the query, for ease of location.+query_alias :: Lens.Lens' Query (Prelude.Maybe Prelude.Text)+query_alias = Lens.lens (\Query' {alias} -> alias) (\s@Query' {} a -> s {alias = a} :: Query)++-- | Pages is a parameter that the user inputs to specify which pages to+-- apply a query to. The following is a list of rules for using this+-- parameter.+--+-- - If a page is not specified, it is set to @[\"1\"]@ by default.+--+-- - The following characters are allowed in the parameter\'s string:+-- @0 1 2 3 4 5 6 7 8 9 - *@. No whitespace is allowed.+--+-- - When using * to indicate all pages, it must be the only element in+-- the list.+--+-- - You can use page intervals, such as @[“1-3”, “1-1”, “4-*”]@. Where+-- @*@ indicates last page of document.+--+-- - Specified pages must be greater than 0 and less than or equal to the+-- number of pages in the document.+query_pages :: Lens.Lens' Query (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+query_pages = Lens.lens (\Query' {pages} -> pages) (\s@Query' {} a -> s {pages = a} :: Query) Prelude.. Lens.mapping Lens.coerced++-- | Question that Amazon Textract will apply to the document. An example+-- would be \"What is the customer\'s SSN?\"+query_text :: Lens.Lens' Query Prelude.Text+query_text = Lens.lens (\Query' {text} -> text) (\s@Query' {} a -> s {text = a} :: Query)++instance Data.FromJSON Query where+ parseJSON =+ Data.withObject+ "Query"+ ( \x ->+ Query'+ Prelude.<$> (x Data..:? "Alias")+ Prelude.<*> (x Data..:? "Pages")+ Prelude.<*> (x Data..: "Text")+ )++instance Prelude.Hashable Query where+ hashWithSalt _salt Query' {..} =+ _salt+ `Prelude.hashWithSalt` alias+ `Prelude.hashWithSalt` pages+ `Prelude.hashWithSalt` text++instance Prelude.NFData Query where+ rnf Query' {..} =+ Prelude.rnf alias+ `Prelude.seq` Prelude.rnf pages+ `Prelude.seq` Prelude.rnf text++instance Data.ToJSON Query where+ toJSON Query' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Alias" Data..=) Prelude.<$> alias,+ ("Pages" Data..=) Prelude.<$> pages,+ Prelude.Just ("Text" Data..= text)+ ]+ )
+ gen/Amazonka/Textract/Types/Relationship.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.Relationship+-- Copyright : (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.Textract.Types.Relationship 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+import Amazonka.Textract.Types.RelationshipType++-- | Information about how blocks are related to each other. A @Block@ object+-- contains 0 or more @Relation@ objects in a list, @Relationships@. For+-- more information, see Block.+--+-- The @Type@ element provides the type of the relationship for all blocks+-- in the @IDs@ array.+--+-- /See:/ 'newRelationship' smart constructor.+data Relationship = Relationship'+ { -- | An array of IDs for related blocks. You can get the type of the+ -- relationship from the @Type@ element.+ ids :: Prelude.Maybe [Prelude.Text],+ -- | The type of relationship that the blocks in the IDs array have with the+ -- current block. The relationship can be @VALUE@ or @CHILD@. A+ -- relationship of type VALUE is a list that contains the ID of the VALUE+ -- block that\'s associated with the KEY of a key-value pair. A+ -- relationship of type CHILD is a list of IDs that identify WORD blocks in+ -- the case of lines Cell blocks in the case of Tables, and WORD blocks in+ -- the case of Selection Elements.+ type' :: Prelude.Maybe RelationshipType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Relationship' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ids', 'relationship_ids' - An array of IDs for related blocks. You can get the type of the+-- relationship from the @Type@ element.+--+-- 'type'', 'relationship_type' - The type of relationship that the blocks in the IDs array have with the+-- current block. The relationship can be @VALUE@ or @CHILD@. A+-- relationship of type VALUE is a list that contains the ID of the VALUE+-- block that\'s associated with the KEY of a key-value pair. A+-- relationship of type CHILD is a list of IDs that identify WORD blocks in+-- the case of lines Cell blocks in the case of Tables, and WORD blocks in+-- the case of Selection Elements.+newRelationship ::+ Relationship+newRelationship =+ Relationship'+ { ids = Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | An array of IDs for related blocks. You can get the type of the+-- relationship from the @Type@ element.+relationship_ids :: Lens.Lens' Relationship (Prelude.Maybe [Prelude.Text])+relationship_ids = Lens.lens (\Relationship' {ids} -> ids) (\s@Relationship' {} a -> s {ids = a} :: Relationship) Prelude.. Lens.mapping Lens.coerced++-- | The type of relationship that the blocks in the IDs array have with the+-- current block. The relationship can be @VALUE@ or @CHILD@. A+-- relationship of type VALUE is a list that contains the ID of the VALUE+-- block that\'s associated with the KEY of a key-value pair. A+-- relationship of type CHILD is a list of IDs that identify WORD blocks in+-- the case of lines Cell blocks in the case of Tables, and WORD blocks in+-- the case of Selection Elements.+relationship_type :: Lens.Lens' Relationship (Prelude.Maybe RelationshipType)+relationship_type = Lens.lens (\Relationship' {type'} -> type') (\s@Relationship' {} a -> s {type' = a} :: Relationship)++instance Data.FromJSON Relationship where+ parseJSON =+ Data.withObject+ "Relationship"+ ( \x ->+ Relationship'+ Prelude.<$> (x Data..:? "Ids" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "Type")+ )++instance Prelude.Hashable Relationship where+ hashWithSalt _salt Relationship' {..} =+ _salt+ `Prelude.hashWithSalt` ids+ `Prelude.hashWithSalt` type'++instance Prelude.NFData Relationship where+ rnf Relationship' {..} =+ Prelude.rnf ids `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/Textract/Types/RelationshipType.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.RelationshipType+-- Copyright : (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.Textract.Types.RelationshipType+ ( RelationshipType+ ( ..,+ RelationshipType_ANSWER,+ RelationshipType_CHILD,+ RelationshipType_COMPLEX_FEATURES,+ RelationshipType_MERGED_CELL,+ RelationshipType_TITLE,+ RelationshipType_VALUE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RelationshipType = RelationshipType'+ { fromRelationshipType ::+ 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 RelationshipType_ANSWER :: RelationshipType+pattern RelationshipType_ANSWER = RelationshipType' "ANSWER"++pattern RelationshipType_CHILD :: RelationshipType+pattern RelationshipType_CHILD = RelationshipType' "CHILD"++pattern RelationshipType_COMPLEX_FEATURES :: RelationshipType+pattern RelationshipType_COMPLEX_FEATURES = RelationshipType' "COMPLEX_FEATURES"++pattern RelationshipType_MERGED_CELL :: RelationshipType+pattern RelationshipType_MERGED_CELL = RelationshipType' "MERGED_CELL"++pattern RelationshipType_TITLE :: RelationshipType+pattern RelationshipType_TITLE = RelationshipType' "TITLE"++pattern RelationshipType_VALUE :: RelationshipType+pattern RelationshipType_VALUE = RelationshipType' "VALUE"++{-# COMPLETE+ RelationshipType_ANSWER,+ RelationshipType_CHILD,+ RelationshipType_COMPLEX_FEATURES,+ RelationshipType_MERGED_CELL,+ RelationshipType_TITLE,+ RelationshipType_VALUE,+ RelationshipType'+ #-}
+ gen/Amazonka/Textract/Types/S3Object.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.Textract.Types.S3Object+-- Copyright : (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.Textract.Types.S3Object 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 S3 bucket name and file name that identifies the document.+--+-- The AWS Region for the S3 bucket that contains the document must match+-- the Region that you use for Amazon Textract operations.+--+-- For Amazon Textract to process a file in an S3 bucket, the user must+-- have permission to access the S3 bucket and file.+--+-- /See:/ 'newS3Object' smart constructor.+data S3Object = S3Object'+ { -- | The name of the S3 bucket. Note that the # character is not valid in the+ -- file name.+ bucket :: Prelude.Maybe Prelude.Text,+ -- | The file name of the input document. Synchronous operations can use+ -- image files that are in JPEG or PNG format. Asynchronous operations also+ -- support PDF and TIFF format files.+ name :: Prelude.Maybe Prelude.Text,+ -- | If the bucket has versioning enabled, you can specify the object+ -- version.+ version :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3Object' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucket', 's3Object_bucket' - The name of the S3 bucket. Note that the # character is not valid in the+-- file name.+--+-- 'name', 's3Object_name' - The file name of the input document. Synchronous operations can use+-- image files that are in JPEG or PNG format. Asynchronous operations also+-- support PDF and TIFF format files.+--+-- 'version', 's3Object_version' - If the bucket has versioning enabled, you can specify the object+-- version.+newS3Object ::+ S3Object+newS3Object =+ S3Object'+ { bucket = Prelude.Nothing,+ name = Prelude.Nothing,+ version = Prelude.Nothing+ }++-- | The name of the S3 bucket. Note that the # character is not valid in the+-- file name.+s3Object_bucket :: Lens.Lens' S3Object (Prelude.Maybe Prelude.Text)+s3Object_bucket = Lens.lens (\S3Object' {bucket} -> bucket) (\s@S3Object' {} a -> s {bucket = a} :: S3Object)++-- | The file name of the input document. Synchronous operations can use+-- image files that are in JPEG or PNG format. Asynchronous operations also+-- support PDF and TIFF format files.+s3Object_name :: Lens.Lens' S3Object (Prelude.Maybe Prelude.Text)+s3Object_name = Lens.lens (\S3Object' {name} -> name) (\s@S3Object' {} a -> s {name = a} :: S3Object)++-- | If the bucket has versioning enabled, you can specify the object+-- version.+s3Object_version :: Lens.Lens' S3Object (Prelude.Maybe Prelude.Text)+s3Object_version = Lens.lens (\S3Object' {version} -> version) (\s@S3Object' {} a -> s {version = a} :: S3Object)++instance Prelude.Hashable S3Object where+ hashWithSalt _salt S3Object' {..} =+ _salt+ `Prelude.hashWithSalt` bucket+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` version++instance Prelude.NFData S3Object where+ rnf S3Object' {..} =+ Prelude.rnf bucket+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf version++instance Data.ToJSON S3Object where+ toJSON S3Object' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Bucket" Data..=) Prelude.<$> bucket,+ ("Name" Data..=) Prelude.<$> name,+ ("Version" Data..=) Prelude.<$> version+ ]+ )
+ gen/Amazonka/Textract/Types/SelectionStatus.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.Textract.Types.SelectionStatus+-- Copyright : (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.Textract.Types.SelectionStatus+ ( SelectionStatus+ ( ..,+ SelectionStatus_NOT_SELECTED,+ SelectionStatus_SELECTED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SelectionStatus = SelectionStatus'+ { fromSelectionStatus ::+ 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 SelectionStatus_NOT_SELECTED :: SelectionStatus+pattern SelectionStatus_NOT_SELECTED = SelectionStatus' "NOT_SELECTED"++pattern SelectionStatus_SELECTED :: SelectionStatus+pattern SelectionStatus_SELECTED = SelectionStatus' "SELECTED"++{-# COMPLETE+ SelectionStatus_NOT_SELECTED,+ SelectionStatus_SELECTED,+ SelectionStatus'+ #-}
+ gen/Amazonka/Textract/Types/SignatureDetection.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.SignatureDetection+-- Copyright : (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.Textract.Types.SignatureDetection 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+import Amazonka.Textract.Types.Geometry++-- | Information regarding a detected signature on a page.+--+-- /See:/ 'newSignatureDetection' smart constructor.+data SignatureDetection = SignatureDetection'+ { -- | The confidence, from 0 to 100, in the predicted values for a detected+ -- signature.+ confidence :: Prelude.Maybe Prelude.Double,+ geometry :: Prelude.Maybe Geometry+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SignatureDetection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'confidence', 'signatureDetection_confidence' - The confidence, from 0 to 100, in the predicted values for a detected+-- signature.+--+-- 'geometry', 'signatureDetection_geometry' - Undocumented member.+newSignatureDetection ::+ SignatureDetection+newSignatureDetection =+ SignatureDetection'+ { confidence = Prelude.Nothing,+ geometry = Prelude.Nothing+ }++-- | The confidence, from 0 to 100, in the predicted values for a detected+-- signature.+signatureDetection_confidence :: Lens.Lens' SignatureDetection (Prelude.Maybe Prelude.Double)+signatureDetection_confidence = Lens.lens (\SignatureDetection' {confidence} -> confidence) (\s@SignatureDetection' {} a -> s {confidence = a} :: SignatureDetection)++-- | Undocumented member.+signatureDetection_geometry :: Lens.Lens' SignatureDetection (Prelude.Maybe Geometry)+signatureDetection_geometry = Lens.lens (\SignatureDetection' {geometry} -> geometry) (\s@SignatureDetection' {} a -> s {geometry = a} :: SignatureDetection)++instance Data.FromJSON SignatureDetection where+ parseJSON =+ Data.withObject+ "SignatureDetection"+ ( \x ->+ SignatureDetection'+ Prelude.<$> (x Data..:? "Confidence")+ Prelude.<*> (x Data..:? "Geometry")+ )++instance Prelude.Hashable SignatureDetection where+ hashWithSalt _salt SignatureDetection' {..} =+ _salt+ `Prelude.hashWithSalt` confidence+ `Prelude.hashWithSalt` geometry++instance Prelude.NFData SignatureDetection where+ rnf SignatureDetection' {..} =+ Prelude.rnf confidence+ `Prelude.seq` Prelude.rnf geometry
+ gen/Amazonka/Textract/Types/SplitDocument.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.SplitDocument+-- Copyright : (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.Textract.Types.SplitDocument 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 information about the pages of a document, defined by logical+-- boundary.+--+-- /See:/ 'newSplitDocument' smart constructor.+data SplitDocument = SplitDocument'+ { -- | The index for a given document in a DocumentGroup of a specific Type.+ index :: Prelude.Maybe Prelude.Natural,+ -- | An array of page numbers for a for a given document, ordered by logical+ -- boundary.+ pages :: Prelude.Maybe [Prelude.Natural]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SplitDocument' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'index', 'splitDocument_index' - The index for a given document in a DocumentGroup of a specific Type.+--+-- 'pages', 'splitDocument_pages' - An array of page numbers for a for a given document, ordered by logical+-- boundary.+newSplitDocument ::+ SplitDocument+newSplitDocument =+ SplitDocument'+ { index = Prelude.Nothing,+ pages = Prelude.Nothing+ }++-- | The index for a given document in a DocumentGroup of a specific Type.+splitDocument_index :: Lens.Lens' SplitDocument (Prelude.Maybe Prelude.Natural)+splitDocument_index = Lens.lens (\SplitDocument' {index} -> index) (\s@SplitDocument' {} a -> s {index = a} :: SplitDocument)++-- | An array of page numbers for a for a given document, ordered by logical+-- boundary.+splitDocument_pages :: Lens.Lens' SplitDocument (Prelude.Maybe [Prelude.Natural])+splitDocument_pages = Lens.lens (\SplitDocument' {pages} -> pages) (\s@SplitDocument' {} a -> s {pages = a} :: SplitDocument) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON SplitDocument where+ parseJSON =+ Data.withObject+ "SplitDocument"+ ( \x ->+ SplitDocument'+ Prelude.<$> (x Data..:? "Index")+ Prelude.<*> (x Data..:? "Pages" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable SplitDocument where+ hashWithSalt _salt SplitDocument' {..} =+ _salt+ `Prelude.hashWithSalt` index+ `Prelude.hashWithSalt` pages++instance Prelude.NFData SplitDocument where+ rnf SplitDocument' {..} =+ Prelude.rnf index `Prelude.seq` Prelude.rnf pages
+ gen/Amazonka/Textract/Types/TextType.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.Textract.Types.TextType+-- Copyright : (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.Textract.Types.TextType+ ( TextType+ ( ..,+ TextType_HANDWRITING,+ TextType_PRINTED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TextType = TextType'+ { fromTextType ::+ 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 TextType_HANDWRITING :: TextType+pattern TextType_HANDWRITING = TextType' "HANDWRITING"++pattern TextType_PRINTED :: TextType+pattern TextType_PRINTED = TextType' "PRINTED"++{-# COMPLETE+ TextType_HANDWRITING,+ TextType_PRINTED,+ TextType'+ #-}
+ gen/Amazonka/Textract/Types/UndetectedSignature.hs view
@@ -0,0 +1,68 @@+{-# 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.Textract.Types.UndetectedSignature+-- Copyright : (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.Textract.Types.UndetectedSignature 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 undetected signature on a+-- page where it was expected but not found.+--+-- /See:/ 'newUndetectedSignature' smart constructor.+data UndetectedSignature = UndetectedSignature'+ { -- | The page where a signature was expected but not found.+ page :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UndetectedSignature' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'page', 'undetectedSignature_page' - The page where a signature was expected but not found.+newUndetectedSignature ::+ UndetectedSignature+newUndetectedSignature =+ UndetectedSignature' {page = Prelude.Nothing}++-- | The page where a signature was expected but not found.+undetectedSignature_page :: Lens.Lens' UndetectedSignature (Prelude.Maybe Prelude.Natural)+undetectedSignature_page = Lens.lens (\UndetectedSignature' {page} -> page) (\s@UndetectedSignature' {} a -> s {page = a} :: UndetectedSignature)++instance Data.FromJSON UndetectedSignature where+ parseJSON =+ Data.withObject+ "UndetectedSignature"+ ( \x ->+ UndetectedSignature' Prelude.<$> (x Data..:? "Page")+ )++instance Prelude.Hashable UndetectedSignature where+ hashWithSalt _salt UndetectedSignature' {..} =+ _salt `Prelude.hashWithSalt` page++instance Prelude.NFData UndetectedSignature where+ rnf UndetectedSignature' {..} = Prelude.rnf page
+ gen/Amazonka/Textract/Types/ValueType.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Textract.Types.ValueType+-- Copyright : (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.Textract.Types.ValueType+ ( ValueType+ ( ..,+ ValueType_DATE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ValueType = ValueType'+ { fromValueType ::+ 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 ValueType_DATE :: ValueType+pattern ValueType_DATE = ValueType' "DATE"++{-# COMPLETE+ ValueType_DATE,+ ValueType'+ #-}
+ gen/Amazonka/Textract/Types/Warning.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.Textract.Types.Warning+-- Copyright : (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.Textract.Types.Warning 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 warning about an issue that occurred during asynchronous text analysis+-- (StartDocumentAnalysis) or asynchronous document text detection+-- (StartDocumentTextDetection).+--+-- /See:/ 'newWarning' smart constructor.+data Warning = Warning'+ { -- | The error code for the warning.+ errorCode :: Prelude.Maybe Prelude.Text,+ -- | A list of the pages that the warning applies to.+ pages :: Prelude.Maybe [Prelude.Natural]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Warning' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'warning_errorCode' - The error code for the warning.+--+-- 'pages', 'warning_pages' - A list of the pages that the warning applies to.+newWarning ::+ Warning+newWarning =+ Warning'+ { errorCode = Prelude.Nothing,+ pages = Prelude.Nothing+ }++-- | The error code for the warning.+warning_errorCode :: Lens.Lens' Warning (Prelude.Maybe Prelude.Text)+warning_errorCode = Lens.lens (\Warning' {errorCode} -> errorCode) (\s@Warning' {} a -> s {errorCode = a} :: Warning)++-- | A list of the pages that the warning applies to.+warning_pages :: Lens.Lens' Warning (Prelude.Maybe [Prelude.Natural])+warning_pages = Lens.lens (\Warning' {pages} -> pages) (\s@Warning' {} a -> s {pages = a} :: Warning) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Warning where+ parseJSON =+ Data.withObject+ "Warning"+ ( \x ->+ Warning'+ Prelude.<$> (x Data..:? "ErrorCode")+ Prelude.<*> (x Data..:? "Pages" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable Warning where+ hashWithSalt _salt Warning' {..} =+ _salt+ `Prelude.hashWithSalt` errorCode+ `Prelude.hashWithSalt` pages++instance Prelude.NFData Warning where+ rnf Warning' {..} =+ Prelude.rnf errorCode+ `Prelude.seq` Prelude.rnf pages
+ gen/Amazonka/Textract/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.Textract.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.Textract.Waiters 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+import Amazonka.Textract.Lens+import Amazonka.Textract.Types
+ 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.Textract+import Test.Amazonka.Textract.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "Textract"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/Gen/Textract.hs view
@@ -0,0 +1,298 @@+{-# 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.Textract+-- Copyright : (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.Textract where++import Amazonka.Textract+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Amazonka.Textract.Internal+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"+-- [ requestAnalyzeDocument $+-- newAnalyzeDocument+--+-- , requestAnalyzeExpense $+-- newAnalyzeExpense+--+-- , requestAnalyzeID $+-- newAnalyzeID+--+-- , requestDetectDocumentText $+-- newDetectDocumentText+--+-- , requestGetDocumentAnalysis $+-- newGetDocumentAnalysis+--+-- , requestGetDocumentTextDetection $+-- newGetDocumentTextDetection+--+-- , requestGetExpenseAnalysis $+-- newGetExpenseAnalysis+--+-- , requestGetLendingAnalysis $+-- newGetLendingAnalysis+--+-- , requestGetLendingAnalysisSummary $+-- newGetLendingAnalysisSummary+--+-- , requestStartDocumentAnalysis $+-- newStartDocumentAnalysis+--+-- , requestStartDocumentTextDetection $+-- newStartDocumentTextDetection+--+-- , requestStartExpenseAnalysis $+-- newStartExpenseAnalysis+--+-- , requestStartLendingAnalysis $+-- newStartLendingAnalysis+--+-- ]++-- , testGroup "response"+-- [ responseAnalyzeDocument $+-- newAnalyzeDocumentResponse+--+-- , responseAnalyzeExpense $+-- newAnalyzeExpenseResponse+--+-- , responseAnalyzeID $+-- newAnalyzeIDResponse+--+-- , responseDetectDocumentText $+-- newDetectDocumentTextResponse+--+-- , responseGetDocumentAnalysis $+-- newGetDocumentAnalysisResponse+--+-- , responseGetDocumentTextDetection $+-- newGetDocumentTextDetectionResponse+--+-- , responseGetExpenseAnalysis $+-- newGetExpenseAnalysisResponse+--+-- , responseGetLendingAnalysis $+-- newGetLendingAnalysisResponse+--+-- , responseGetLendingAnalysisSummary $+-- newGetLendingAnalysisSummaryResponse+--+-- , responseStartDocumentAnalysis $+-- newStartDocumentAnalysisResponse+--+-- , responseStartDocumentTextDetection $+-- newStartDocumentTextDetectionResponse+--+-- , responseStartExpenseAnalysis $+-- newStartExpenseAnalysisResponse+--+-- , responseStartLendingAnalysis $+-- newStartLendingAnalysisResponse+--+-- ]+-- ]++-- Requests++requestAnalyzeDocument :: AnalyzeDocument -> TestTree+requestAnalyzeDocument =+ req+ "AnalyzeDocument"+ "fixture/AnalyzeDocument.yaml"++requestAnalyzeExpense :: AnalyzeExpense -> TestTree+requestAnalyzeExpense =+ req+ "AnalyzeExpense"+ "fixture/AnalyzeExpense.yaml"++requestAnalyzeID :: AnalyzeID -> TestTree+requestAnalyzeID =+ req+ "AnalyzeID"+ "fixture/AnalyzeID.yaml"++requestDetectDocumentText :: DetectDocumentText -> TestTree+requestDetectDocumentText =+ req+ "DetectDocumentText"+ "fixture/DetectDocumentText.yaml"++requestGetDocumentAnalysis :: GetDocumentAnalysis -> TestTree+requestGetDocumentAnalysis =+ req+ "GetDocumentAnalysis"+ "fixture/GetDocumentAnalysis.yaml"++requestGetDocumentTextDetection :: GetDocumentTextDetection -> TestTree+requestGetDocumentTextDetection =+ req+ "GetDocumentTextDetection"+ "fixture/GetDocumentTextDetection.yaml"++requestGetExpenseAnalysis :: GetExpenseAnalysis -> TestTree+requestGetExpenseAnalysis =+ req+ "GetExpenseAnalysis"+ "fixture/GetExpenseAnalysis.yaml"++requestGetLendingAnalysis :: GetLendingAnalysis -> TestTree+requestGetLendingAnalysis =+ req+ "GetLendingAnalysis"+ "fixture/GetLendingAnalysis.yaml"++requestGetLendingAnalysisSummary :: GetLendingAnalysisSummary -> TestTree+requestGetLendingAnalysisSummary =+ req+ "GetLendingAnalysisSummary"+ "fixture/GetLendingAnalysisSummary.yaml"++requestStartDocumentAnalysis :: StartDocumentAnalysis -> TestTree+requestStartDocumentAnalysis =+ req+ "StartDocumentAnalysis"+ "fixture/StartDocumentAnalysis.yaml"++requestStartDocumentTextDetection :: StartDocumentTextDetection -> TestTree+requestStartDocumentTextDetection =+ req+ "StartDocumentTextDetection"+ "fixture/StartDocumentTextDetection.yaml"++requestStartExpenseAnalysis :: StartExpenseAnalysis -> TestTree+requestStartExpenseAnalysis =+ req+ "StartExpenseAnalysis"+ "fixture/StartExpenseAnalysis.yaml"++requestStartLendingAnalysis :: StartLendingAnalysis -> TestTree+requestStartLendingAnalysis =+ req+ "StartLendingAnalysis"+ "fixture/StartLendingAnalysis.yaml"++-- Responses++responseAnalyzeDocument :: AnalyzeDocumentResponse -> TestTree+responseAnalyzeDocument =+ res+ "AnalyzeDocumentResponse"+ "fixture/AnalyzeDocumentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy AnalyzeDocument)++responseAnalyzeExpense :: AnalyzeExpenseResponse -> TestTree+responseAnalyzeExpense =+ res+ "AnalyzeExpenseResponse"+ "fixture/AnalyzeExpenseResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy AnalyzeExpense)++responseAnalyzeID :: AnalyzeIDResponse -> TestTree+responseAnalyzeID =+ res+ "AnalyzeIDResponse"+ "fixture/AnalyzeIDResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy AnalyzeID)++responseDetectDocumentText :: DetectDocumentTextResponse -> TestTree+responseDetectDocumentText =+ res+ "DetectDocumentTextResponse"+ "fixture/DetectDocumentTextResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DetectDocumentText)++responseGetDocumentAnalysis :: GetDocumentAnalysisResponse -> TestTree+responseGetDocumentAnalysis =+ res+ "GetDocumentAnalysisResponse"+ "fixture/GetDocumentAnalysisResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetDocumentAnalysis)++responseGetDocumentTextDetection :: GetDocumentTextDetectionResponse -> TestTree+responseGetDocumentTextDetection =+ res+ "GetDocumentTextDetectionResponse"+ "fixture/GetDocumentTextDetectionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetDocumentTextDetection)++responseGetExpenseAnalysis :: GetExpenseAnalysisResponse -> TestTree+responseGetExpenseAnalysis =+ res+ "GetExpenseAnalysisResponse"+ "fixture/GetExpenseAnalysisResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetExpenseAnalysis)++responseGetLendingAnalysis :: GetLendingAnalysisResponse -> TestTree+responseGetLendingAnalysis =+ res+ "GetLendingAnalysisResponse"+ "fixture/GetLendingAnalysisResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetLendingAnalysis)++responseGetLendingAnalysisSummary :: GetLendingAnalysisSummaryResponse -> TestTree+responseGetLendingAnalysisSummary =+ res+ "GetLendingAnalysisSummaryResponse"+ "fixture/GetLendingAnalysisSummaryResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetLendingAnalysisSummary)++responseStartDocumentAnalysis :: StartDocumentAnalysisResponse -> TestTree+responseStartDocumentAnalysis =+ res+ "StartDocumentAnalysisResponse"+ "fixture/StartDocumentAnalysisResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy StartDocumentAnalysis)++responseStartDocumentTextDetection :: StartDocumentTextDetectionResponse -> TestTree+responseStartDocumentTextDetection =+ res+ "StartDocumentTextDetectionResponse"+ "fixture/StartDocumentTextDetectionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy StartDocumentTextDetection)++responseStartExpenseAnalysis :: StartExpenseAnalysisResponse -> TestTree+responseStartExpenseAnalysis =+ res+ "StartExpenseAnalysisResponse"+ "fixture/StartExpenseAnalysisResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy StartExpenseAnalysis)++responseStartLendingAnalysis :: StartLendingAnalysisResponse -> TestTree+responseStartLendingAnalysis =+ res+ "StartLendingAnalysisResponse"+ "fixture/StartLendingAnalysisResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy StartLendingAnalysis)
+ test/Test/Amazonka/Textract.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.Textract+-- Copyright : (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.Textract+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/Textract/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.Textract.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.Textract.Internal where