summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrendanHay <>2018-05-16 15:07:00 (GMT)
committerhdiff <hdiff@hdiff.luite.com>2018-05-16 15:07:00 (GMT)
commit5bf086f1f554be8dcceba2ca2724af5612b4631c (patch)
treedbf3b66dab47df60b2dfe075aefe210a62b2d75a
version 1.6.01.6.0
-rw-r--r--LICENSE367
-rw-r--r--README.md45
-rw-r--r--Setup.hs2
-rw-r--r--amazonka-comprehend.cabal96
-rw-r--r--fixture/BatchDetectDominantLanguage.yaml10
-rw-r--r--fixture/BatchDetectDominantLanguageResponse.proto0
-rw-r--r--fixture/BatchDetectEntities.yaml10
-rw-r--r--fixture/BatchDetectEntitiesResponse.proto0
-rw-r--r--fixture/BatchDetectKeyPhrases.yaml10
-rw-r--r--fixture/BatchDetectKeyPhrasesResponse.proto0
-rw-r--r--fixture/BatchDetectSentiment.yaml10
-rw-r--r--fixture/BatchDetectSentimentResponse.proto0
-rw-r--r--fixture/DescribeTopicsDetectionJob.yaml10
-rw-r--r--fixture/DescribeTopicsDetectionJobResponse.proto0
-rw-r--r--fixture/DetectDominantLanguage.yaml10
-rw-r--r--fixture/DetectDominantLanguageResponse.proto0
-rw-r--r--fixture/DetectEntities.yaml10
-rw-r--r--fixture/DetectEntitiesResponse.proto0
-rw-r--r--fixture/DetectKeyPhrases.yaml10
-rw-r--r--fixture/DetectKeyPhrasesResponse.proto0
-rw-r--r--fixture/DetectSentiment.yaml10
-rw-r--r--fixture/DetectSentimentResponse.proto0
-rw-r--r--fixture/ListTopicsDetectionJobs.yaml10
-rw-r--r--fixture/ListTopicsDetectionJobsResponse.proto0
-rw-r--r--fixture/StartTopicsDetectionJob.yaml10
-rw-r--r--fixture/StartTopicsDetectionJobResponse.proto0
-rw-r--r--gen/Network/AWS/Comprehend.hs243
-rw-r--r--gen/Network/AWS/Comprehend/BatchDetectDominantLanguage.hs147
-rw-r--r--gen/Network/AWS/Comprehend/BatchDetectEntities.hs158
-rw-r--r--gen/Network/AWS/Comprehend/BatchDetectKeyPhrases.hs158
-rw-r--r--gen/Network/AWS/Comprehend/BatchDetectSentiment.hs158
-rw-r--r--gen/Network/AWS/Comprehend/DescribeTopicsDetectionJob.hs137
-rw-r--r--gen/Network/AWS/Comprehend/DetectDominantLanguage.hs133
-rw-r--r--gen/Network/AWS/Comprehend/DetectEntities.hs144
-rw-r--r--gen/Network/AWS/Comprehend/DetectKeyPhrases.hs145
-rw-r--r--gen/Network/AWS/Comprehend/DetectSentiment.hs156
-rw-r--r--gen/Network/AWS/Comprehend/ListTopicsDetectionJobs.hs177
-rw-r--r--gen/Network/AWS/Comprehend/StartTopicsDetectionJob.hs203
-rw-r--r--gen/Network/AWS/Comprehend/Types.hs244
-rw-r--r--gen/Network/AWS/Comprehend/Types/Product.hs780
-rw-r--r--gen/Network/AWS/Comprehend/Types/Sum.hs194
-rw-r--r--gen/Network/AWS/Comprehend/Waiters.hs21
-rw-r--r--test/Main.hs21
-rw-r--r--test/Test/AWS/Comprehend.hs20
-rw-r--r--test/Test/AWS/Comprehend/Internal.hs9
-rw-r--r--test/Test/AWS/Gen/Comprehend.hs237
46 files changed, 4105 insertions, 0 deletions
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..bc8942f
--- /dev/null
+++ b/LICENSE
@@ -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.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..6efa847
--- /dev/null
+++ b/README.md
@@ -0,0 +1,45 @@
+# Amazon Comprehend SDK
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+
+`1.6.0`
+
+
+## Description
+
+Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-comprehend)
+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 [Network.AWS.Comprehend](http://hackage.haskell.org/package/amazonka-comprehend/docs/Network-AWS-Comprehend.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-comprehend` 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.
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
index 0000000..4467109
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/amazonka-comprehend.cabal b/amazonka-comprehend.cabal
new file mode 100644
index 0000000..cc854d6
--- /dev/null
+++ b/amazonka-comprehend.cabal
@@ -0,0 +1,96 @@
+name: amazonka-comprehend
+version: 1.6.0
+synopsis: Amazon Comprehend 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>
+copyright: Copyright (c) 2013-2018 Brendan Hay
+category: Network, AWS, Cloud, Distributed Computing
+build-type: Simple
+cabal-version: >= 1.10
+extra-source-files: README.md fixture/*.yaml fixture/*.proto src/.gitkeep
+description:
+ 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.
+ .
+ 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
+ such as <http://hackage.haskell.org/package/lens lens> or
+ <http://hackage.haskell.org/package/lens-family-core lens-family-core>.
+ .
+ See "Network.AWS.Comprehend" or <https://aws.amazon.com/documentation/ the AWS documentation>
+ to get started.
+
+source-repository head
+ type: git
+ location: git://github.com/brendanhay/amazonka.git
+ subdir: amazonka-comprehend
+
+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:
+ Network.AWS.Comprehend
+ , Network.AWS.Comprehend.BatchDetectDominantLanguage
+ , Network.AWS.Comprehend.BatchDetectEntities
+ , Network.AWS.Comprehend.BatchDetectKeyPhrases
+ , Network.AWS.Comprehend.BatchDetectSentiment
+ , Network.AWS.Comprehend.DescribeTopicsDetectionJob
+ , Network.AWS.Comprehend.DetectDominantLanguage
+ , Network.AWS.Comprehend.DetectEntities
+ , Network.AWS.Comprehend.DetectKeyPhrases
+ , Network.AWS.Comprehend.DetectSentiment
+ , Network.AWS.Comprehend.ListTopicsDetectionJobs
+ , Network.AWS.Comprehend.StartTopicsDetectionJob
+ , Network.AWS.Comprehend.Types
+ , Network.AWS.Comprehend.Waiters
+
+ other-modules:
+ Network.AWS.Comprehend.Types.Product
+ , Network.AWS.Comprehend.Types.Sum
+
+ build-depends:
+ amazonka-core == 1.6.0.*
+ , base >= 4.7 && < 5
+
+test-suite amazonka-comprehend-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.AWS.Comprehend
+ , Test.AWS.Gen.Comprehend
+ , Test.AWS.Comprehend.Internal
+
+ build-depends:
+ amazonka-core == 1.6.0.*
+ , amazonka-test == 1.6.0.*
+ , amazonka-comprehend
+ , base
+ , bytestring
+ , tasty
+ , tasty-hunit
+ , text
+ , time
+ , unordered-containers
diff --git a/fixture/BatchDetectDominantLanguage.yaml b/fixture/BatchDetectDominantLanguage.yaml
new file mode 100644
index 0000000..3636646
--- /dev/null
+++ b/fixture/BatchDetectDominantLanguage.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/comprehend/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: comprehend.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:
+ ''
diff --git a/fixture/BatchDetectDominantLanguageResponse.proto b/fixture/BatchDetectDominantLanguageResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/BatchDetectDominantLanguageResponse.proto
diff --git a/fixture/BatchDetectEntities.yaml b/fixture/BatchDetectEntities.yaml
new file mode 100644
index 0000000..3636646
--- /dev/null
+++ b/fixture/BatchDetectEntities.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/comprehend/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: comprehend.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:
+ ''
diff --git a/fixture/BatchDetectEntitiesResponse.proto b/fixture/BatchDetectEntitiesResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/BatchDetectEntitiesResponse.proto
diff --git a/fixture/BatchDetectKeyPhrases.yaml b/fixture/BatchDetectKeyPhrases.yaml
new file mode 100644
index 0000000..3636646
--- /dev/null
+++ b/fixture/BatchDetectKeyPhrases.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/comprehend/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: comprehend.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:
+ ''
diff --git a/fixture/BatchDetectKeyPhrasesResponse.proto b/fixture/BatchDetectKeyPhrasesResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/BatchDetectKeyPhrasesResponse.proto
diff --git a/fixture/BatchDetectSentiment.yaml b/fixture/BatchDetectSentiment.yaml
new file mode 100644
index 0000000..3636646
--- /dev/null
+++ b/fixture/BatchDetectSentiment.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/comprehend/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: comprehend.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:
+ ''
diff --git a/fixture/BatchDetectSentimentResponse.proto b/fixture/BatchDetectSentimentResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/BatchDetectSentimentResponse.proto
diff --git a/fixture/DescribeTopicsDetectionJob.yaml b/fixture/DescribeTopicsDetectionJob.yaml
new file mode 100644
index 0000000..3636646
--- /dev/null
+++ b/fixture/DescribeTopicsDetectionJob.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/comprehend/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: comprehend.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:
+ ''
diff --git a/fixture/DescribeTopicsDetectionJobResponse.proto b/fixture/DescribeTopicsDetectionJobResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DescribeTopicsDetectionJobResponse.proto
diff --git a/fixture/DetectDominantLanguage.yaml b/fixture/DetectDominantLanguage.yaml
new file mode 100644
index 0000000..3636646
--- /dev/null
+++ b/fixture/DetectDominantLanguage.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/comprehend/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: comprehend.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:
+ ''
diff --git a/fixture/DetectDominantLanguageResponse.proto b/fixture/DetectDominantLanguageResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DetectDominantLanguageResponse.proto
diff --git a/fixture/DetectEntities.yaml b/fixture/DetectEntities.yaml
new file mode 100644
index 0000000..3636646
--- /dev/null
+++ b/fixture/DetectEntities.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/comprehend/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: comprehend.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:
+ ''
diff --git a/fixture/DetectEntitiesResponse.proto b/fixture/DetectEntitiesResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DetectEntitiesResponse.proto
diff --git a/fixture/DetectKeyPhrases.yaml b/fixture/DetectKeyPhrases.yaml
new file mode 100644
index 0000000..3636646
--- /dev/null
+++ b/fixture/DetectKeyPhrases.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/comprehend/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: comprehend.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:
+ ''
diff --git a/fixture/DetectKeyPhrasesResponse.proto b/fixture/DetectKeyPhrasesResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DetectKeyPhrasesResponse.proto
diff --git a/fixture/DetectSentiment.yaml b/fixture/DetectSentiment.yaml
new file mode 100644
index 0000000..3636646
--- /dev/null
+++ b/fixture/DetectSentiment.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/comprehend/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: comprehend.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:
+ ''
diff --git a/fixture/DetectSentimentResponse.proto b/fixture/DetectSentimentResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DetectSentimentResponse.proto
diff --git a/fixture/ListTopicsDetectionJobs.yaml b/fixture/ListTopicsDetectionJobs.yaml
new file mode 100644
index 0000000..3636646
--- /dev/null
+++ b/fixture/ListTopicsDetectionJobs.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/comprehend/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: comprehend.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:
+ ''
diff --git a/fixture/ListTopicsDetectionJobsResponse.proto b/fixture/ListTopicsDetectionJobsResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListTopicsDetectionJobsResponse.proto
diff --git a/fixture/StartTopicsDetectionJob.yaml b/fixture/StartTopicsDetectionJob.yaml
new file mode 100644
index 0000000..3636646
--- /dev/null
+++ b/fixture/StartTopicsDetectionJob.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/comprehend/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: comprehend.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:
+ ''
diff --git a/fixture/StartTopicsDetectionJobResponse.proto b/fixture/StartTopicsDetectionJobResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/StartTopicsDetectionJobResponse.proto
diff --git a/gen/Network/AWS/Comprehend.hs b/gen/Network/AWS/Comprehend.hs
new file mode 100644
index 0000000..bab70c2
--- /dev/null
+++ b/gen/Network/AWS/Comprehend.hs
@@ -0,0 +1,243 @@
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Amazon Comprehend is an AWS service for gaining insight into the content of documents. Use these actions to determine the topics contained in your documents, the topics they discuss, the predominant sentiment expressed in them, the predominant language used, and more.
+--
+--
+module Network.AWS.Comprehend
+ (
+ -- * Service Configuration
+ comprehend
+
+ -- * Errors
+ -- $errors
+
+ -- ** InvalidRequestException
+ , _InvalidRequestException
+
+ -- ** TooManyRequestsException
+ , _TooManyRequestsException
+
+ -- ** InternalServerException
+ , _InternalServerException
+
+ -- ** BatchSizeLimitExceededException
+ , _BatchSizeLimitExceededException
+
+ -- ** UnsupportedLanguageException
+ , _UnsupportedLanguageException
+
+ -- ** JobNotFoundException
+ , _JobNotFoundException
+
+ -- ** InvalidFilterException
+ , _InvalidFilterException
+
+ -- ** TextSizeLimitExceededException
+ , _TextSizeLimitExceededException
+
+ -- * Waiters
+ -- $waiters
+
+ -- * Operations
+ -- $operations
+
+ -- ** BatchDetectSentiment
+ , module Network.AWS.Comprehend.BatchDetectSentiment
+
+ -- ** StartTopicsDetectionJob
+ , module Network.AWS.Comprehend.StartTopicsDetectionJob
+
+ -- ** BatchDetectKeyPhrases
+ , module Network.AWS.Comprehend.BatchDetectKeyPhrases
+
+ -- ** DetectSentiment
+ , module Network.AWS.Comprehend.DetectSentiment
+
+ -- ** BatchDetectEntities
+ , module Network.AWS.Comprehend.BatchDetectEntities
+
+ -- ** DetectDominantLanguage
+ , module Network.AWS.Comprehend.DetectDominantLanguage
+
+ -- ** DescribeTopicsDetectionJob
+ , module Network.AWS.Comprehend.DescribeTopicsDetectionJob
+
+ -- ** DetectEntities
+ , module Network.AWS.Comprehend.DetectEntities
+
+ -- ** ListTopicsDetectionJobs (Paginated)
+ , module Network.AWS.Comprehend.ListTopicsDetectionJobs
+
+ -- ** BatchDetectDominantLanguage
+ , module Network.AWS.Comprehend.BatchDetectDominantLanguage
+
+ -- ** DetectKeyPhrases
+ , module Network.AWS.Comprehend.DetectKeyPhrases
+
+ -- * Types
+
+ -- ** EntityType
+ , EntityType (..)
+
+ -- ** InputFormat
+ , InputFormat (..)
+
+ -- ** JobStatus
+ , JobStatus (..)
+
+ -- ** LanguageCode
+ , LanguageCode (..)
+
+ -- ** SentimentType
+ , SentimentType (..)
+
+ -- ** BatchDetectDominantLanguageItemResult
+ , BatchDetectDominantLanguageItemResult
+ , batchDetectDominantLanguageItemResult
+ , bddlirLanguages
+ , bddlirIndex
+
+ -- ** BatchDetectEntitiesItemResult
+ , BatchDetectEntitiesItemResult
+ , batchDetectEntitiesItemResult
+ , bdeirEntities
+ , bdeirIndex
+
+ -- ** BatchDetectKeyPhrasesItemResult
+ , BatchDetectKeyPhrasesItemResult
+ , batchDetectKeyPhrasesItemResult
+ , bdkpirIndex
+ , bdkpirKeyPhrases
+
+ -- ** BatchDetectSentimentItemResult
+ , BatchDetectSentimentItemResult
+ , batchDetectSentimentItemResult
+ , bdsirSentiment
+ , bdsirSentimentScore
+ , bdsirIndex
+
+ -- ** BatchItemError
+ , BatchItemError
+ , batchItemError
+ , bieErrorCode
+ , bieErrorMessage
+ , bieIndex
+
+ -- ** DominantLanguage
+ , DominantLanguage
+ , dominantLanguage
+ , dlLanguageCode
+ , dlScore
+
+ -- ** Entity
+ , Entity
+ , entity
+ , eBeginOffset
+ , eText
+ , eScore
+ , eEndOffset
+ , eType
+
+ -- ** InputDataConfig
+ , InputDataConfig
+ , inputDataConfig
+ , idcInputFormat
+ , idcS3URI
+
+ -- ** KeyPhrase
+ , KeyPhrase
+ , keyPhrase
+ , kpBeginOffset
+ , kpText
+ , kpScore
+ , kpEndOffset
+
+ -- ** OutputDataConfig
+ , OutputDataConfig
+ , outputDataConfig
+ , odcS3URI
+
+ -- ** SentimentScore
+ , SentimentScore
+ , sentimentScore
+ , ssMixed
+ , ssNegative
+ , ssNeutral
+ , ssPositive
+
+ -- ** TopicsDetectionJobFilter
+ , TopicsDetectionJobFilter
+ , topicsDetectionJobFilter
+ , tdjfSubmitTimeAfter
+ , tdjfSubmitTimeBefore
+ , tdjfJobName
+ , tdjfJobStatus
+
+ -- ** TopicsDetectionJobProperties
+ , TopicsDetectionJobProperties
+ , topicsDetectionJobProperties
+ , tdjpJobId
+ , tdjpJobName
+ , tdjpInputDataConfig
+ , tdjpEndTime
+ , tdjpOutputDataConfig
+ , tdjpNumberOfTopics
+ , tdjpJobStatus
+ , tdjpMessage
+ , tdjpSubmitTime
+ ) where
+
+import Network.AWS.Comprehend.BatchDetectDominantLanguage
+import Network.AWS.Comprehend.BatchDetectEntities
+import Network.AWS.Comprehend.BatchDetectKeyPhrases
+import Network.AWS.Comprehend.BatchDetectSentiment
+import Network.AWS.Comprehend.DescribeTopicsDetectionJob
+import Network.AWS.Comprehend.DetectDominantLanguage
+import Network.AWS.Comprehend.DetectEntities
+import Network.AWS.Comprehend.DetectKeyPhrases
+import Network.AWS.Comprehend.DetectSentiment
+import Network.AWS.Comprehend.ListTopicsDetectionJobs
+import Network.AWS.Comprehend.StartTopicsDetectionJob
+import Network.AWS.Comprehend.Types
+import Network.AWS.Comprehend.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 'Comprehend'.
+-}
+
+{- $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.
+-}
diff --git a/gen/Network/AWS/Comprehend/BatchDetectDominantLanguage.hs b/gen/Network/AWS/Comprehend/BatchDetectDominantLanguage.hs
new file mode 100644
index 0000000..a7b94d5
--- /dev/null
+++ b/gen/Network/AWS/Comprehend/BatchDetectDominantLanguage.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend.BatchDetectDominantLanguage
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Determines the dominant language of the input text for a batch of documents. For a list of languages that Amazon Comprehend can detect, see <http://docs.aws.amazon.com/comprehend/latest/dg/how-languages.html Amazon Comprehend Supported Languages> .
+--
+--
+module Network.AWS.Comprehend.BatchDetectDominantLanguage
+ (
+ -- * Creating a Request
+ batchDetectDominantLanguage
+ , BatchDetectDominantLanguage
+ -- * Request Lenses
+ , bddlTextList
+
+ -- * Destructuring the Response
+ , batchDetectDominantLanguageResponse
+ , BatchDetectDominantLanguageResponse
+ -- * Response Lenses
+ , bddlrsResponseStatus
+ , bddlrsResultList
+ , bddlrsErrorList
+ ) where
+
+import Network.AWS.Comprehend.Types
+import Network.AWS.Comprehend.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'batchDetectDominantLanguage' smart constructor.
+newtype BatchDetectDominantLanguage = BatchDetectDominantLanguage'
+ { _bddlTextList :: [Text]
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetectDominantLanguage' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bddlTextList' - A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document should contain at least 20 characters and must contain fewer than 5,000 bytes of UTF-8 encoded characters.
+batchDetectDominantLanguage
+ :: BatchDetectDominantLanguage
+batchDetectDominantLanguage =
+ BatchDetectDominantLanguage' {_bddlTextList = mempty}
+
+
+-- | A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document should contain at least 20 characters and must contain fewer than 5,000 bytes of UTF-8 encoded characters.
+bddlTextList :: Lens' BatchDetectDominantLanguage [Text]
+bddlTextList = lens _bddlTextList (\ s a -> s{_bddlTextList = a}) . _Coerce
+
+instance AWSRequest BatchDetectDominantLanguage where
+ type Rs BatchDetectDominantLanguage =
+ BatchDetectDominantLanguageResponse
+ request = postJSON comprehend
+ response
+ = receiveJSON
+ (\ s h x ->
+ BatchDetectDominantLanguageResponse' <$>
+ (pure (fromEnum s)) <*>
+ (x .?> "ResultList" .!@ mempty)
+ <*> (x .?> "ErrorList" .!@ mempty))
+
+instance Hashable BatchDetectDominantLanguage where
+
+instance NFData BatchDetectDominantLanguage where
+
+instance ToHeaders BatchDetectDominantLanguage where
+ toHeaders
+ = const
+ (mconcat
+ ["X-Amz-Target" =#
+ ("Comprehend_20171127.BatchDetectDominantLanguage" ::
+ ByteString),
+ "Content-Type" =#
+ ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON BatchDetectDominantLanguage where
+ toJSON BatchDetectDominantLanguage'{..}
+ = object
+ (catMaybes [Just ("TextList" .= _bddlTextList)])
+
+instance ToPath BatchDetectDominantLanguage where
+ toPath = const "/"
+
+instance ToQuery BatchDetectDominantLanguage where
+ toQuery = const mempty
+
+-- | /See:/ 'batchDetectDominantLanguageResponse' smart constructor.
+data BatchDetectDominantLanguageResponse = BatchDetectDominantLanguageResponse'
+ { _bddlrsResponseStatus :: !Int
+ , _bddlrsResultList :: ![BatchDetectDominantLanguageItemResult]
+ , _bddlrsErrorList :: ![BatchItemError]
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetectDominantLanguageResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bddlrsResponseStatus' - -- | The response status code.
+--
+-- * 'bddlrsResultList' - A list of objects containing the results of the operation. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If all of the documents contain an error, the @ResultList@ is empty.
+--
+-- * 'bddlrsErrorList' - A list containing one object for each document that contained an error. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If there are no errors in the batch, the @ErrorList@ is empty.
+batchDetectDominantLanguageResponse
+ :: Int -- ^ 'bddlrsResponseStatus'
+ -> BatchDetectDominantLanguageResponse
+batchDetectDominantLanguageResponse pResponseStatus_ =
+ BatchDetectDominantLanguageResponse'
+ { _bddlrsResponseStatus = pResponseStatus_
+ , _bddlrsResultList = mempty
+ , _bddlrsErrorList = mempty
+ }
+
+
+-- | -- | The response status code.
+bddlrsResponseStatus :: Lens' BatchDetectDominantLanguageResponse Int
+bddlrsResponseStatus = lens _bddlrsResponseStatus (\ s a -> s{_bddlrsResponseStatus = a})
+
+-- | A list of objects containing the results of the operation. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If all of the documents contain an error, the @ResultList@ is empty.
+bddlrsResultList :: Lens' BatchDetectDominantLanguageResponse [BatchDetectDominantLanguageItemResult]
+bddlrsResultList = lens _bddlrsResultList (\ s a -> s{_bddlrsResultList = a}) . _Coerce
+
+-- | A list containing one object for each document that contained an error. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If there are no errors in the batch, the @ErrorList@ is empty.
+bddlrsErrorList :: Lens' BatchDetectDominantLanguageResponse [BatchItemError]
+bddlrsErrorList = lens _bddlrsErrorList (\ s a -> s{_bddlrsErrorList = a}) . _Coerce
+
+instance NFData BatchDetectDominantLanguageResponse
+ where
diff --git a/gen/Network/AWS/Comprehend/BatchDetectEntities.hs b/gen/Network/AWS/Comprehend/BatchDetectEntities.hs
new file mode 100644
index 0000000..d72c1d0
--- /dev/null
+++ b/gen/Network/AWS/Comprehend/BatchDetectEntities.hs
@@ -0,0 +1,158 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend.BatchDetectEntities
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inspects the text of a batch of documents and returns information about them. For more information about entities, see 'how-entities'
+--
+--
+module Network.AWS.Comprehend.BatchDetectEntities
+ (
+ -- * Creating a Request
+ batchDetectEntities
+ , BatchDetectEntities
+ -- * Request Lenses
+ , bdeTextList
+ , bdeLanguageCode
+
+ -- * Destructuring the Response
+ , batchDetectEntitiesResponse
+ , BatchDetectEntitiesResponse
+ -- * Response Lenses
+ , bdersResponseStatus
+ , bdersResultList
+ , bdersErrorList
+ ) where
+
+import Network.AWS.Comprehend.Types
+import Network.AWS.Comprehend.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'batchDetectEntities' smart constructor.
+data BatchDetectEntities = BatchDetectEntities'
+ { _bdeTextList :: ![Text]
+ , _bdeLanguageCode :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetectEntities' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdeTextList' - A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer than 5,000 bytes of UTF-8 encoded characters.
+--
+-- * 'bdeLanguageCode' - The language of the input documents. All documents must be in the same language.
+batchDetectEntities
+ :: Text -- ^ 'bdeLanguageCode'
+ -> BatchDetectEntities
+batchDetectEntities pLanguageCode_ =
+ BatchDetectEntities'
+ {_bdeTextList = mempty, _bdeLanguageCode = pLanguageCode_}
+
+
+-- | A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer than 5,000 bytes of UTF-8 encoded characters.
+bdeTextList :: Lens' BatchDetectEntities [Text]
+bdeTextList = lens _bdeTextList (\ s a -> s{_bdeTextList = a}) . _Coerce
+
+-- | The language of the input documents. All documents must be in the same language.
+bdeLanguageCode :: Lens' BatchDetectEntities Text
+bdeLanguageCode = lens _bdeLanguageCode (\ s a -> s{_bdeLanguageCode = a})
+
+instance AWSRequest BatchDetectEntities where
+ type Rs BatchDetectEntities =
+ BatchDetectEntitiesResponse
+ request = postJSON comprehend
+ response
+ = receiveJSON
+ (\ s h x ->
+ BatchDetectEntitiesResponse' <$>
+ (pure (fromEnum s)) <*>
+ (x .?> "ResultList" .!@ mempty)
+ <*> (x .?> "ErrorList" .!@ mempty))
+
+instance Hashable BatchDetectEntities where
+
+instance NFData BatchDetectEntities where
+
+instance ToHeaders BatchDetectEntities where
+ toHeaders
+ = const
+ (mconcat
+ ["X-Amz-Target" =#
+ ("Comprehend_20171127.BatchDetectEntities" ::
+ ByteString),
+ "Content-Type" =#
+ ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON BatchDetectEntities where
+ toJSON BatchDetectEntities'{..}
+ = object
+ (catMaybes
+ [Just ("TextList" .= _bdeTextList),
+ Just ("LanguageCode" .= _bdeLanguageCode)])
+
+instance ToPath BatchDetectEntities where
+ toPath = const "/"
+
+instance ToQuery BatchDetectEntities where
+ toQuery = const mempty
+
+-- | /See:/ 'batchDetectEntitiesResponse' smart constructor.
+data BatchDetectEntitiesResponse = BatchDetectEntitiesResponse'
+ { _bdersResponseStatus :: !Int
+ , _bdersResultList :: ![BatchDetectEntitiesItemResult]
+ , _bdersErrorList :: ![BatchItemError]
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetectEntitiesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdersResponseStatus' - -- | The response status code.
+--
+-- * 'bdersResultList' - A list of objects containing the results of the operation. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If all of the documents contain an error, the @ResultList@ is empty.
+--
+-- * 'bdersErrorList' - A list containing one object for each document that contained an error. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If there are no errors in the batch, the @ErrorList@ is empty.
+batchDetectEntitiesResponse
+ :: Int -- ^ 'bdersResponseStatus'
+ -> BatchDetectEntitiesResponse
+batchDetectEntitiesResponse pResponseStatus_ =
+ BatchDetectEntitiesResponse'
+ { _bdersResponseStatus = pResponseStatus_
+ , _bdersResultList = mempty
+ , _bdersErrorList = mempty
+ }
+
+
+-- | -- | The response status code.
+bdersResponseStatus :: Lens' BatchDetectEntitiesResponse Int
+bdersResponseStatus = lens _bdersResponseStatus (\ s a -> s{_bdersResponseStatus = a})
+
+-- | A list of objects containing the results of the operation. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If all of the documents contain an error, the @ResultList@ is empty.
+bdersResultList :: Lens' BatchDetectEntitiesResponse [BatchDetectEntitiesItemResult]
+bdersResultList = lens _bdersResultList (\ s a -> s{_bdersResultList = a}) . _Coerce
+
+-- | A list containing one object for each document that contained an error. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If there are no errors in the batch, the @ErrorList@ is empty.
+bdersErrorList :: Lens' BatchDetectEntitiesResponse [BatchItemError]
+bdersErrorList = lens _bdersErrorList (\ s a -> s{_bdersErrorList = a}) . _Coerce
+
+instance NFData BatchDetectEntitiesResponse where
diff --git a/gen/Network/AWS/Comprehend/BatchDetectKeyPhrases.hs b/gen/Network/AWS/Comprehend/BatchDetectKeyPhrases.hs
new file mode 100644
index 0000000..df10666
--- /dev/null
+++ b/gen/Network/AWS/Comprehend/BatchDetectKeyPhrases.hs
@@ -0,0 +1,158 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend.BatchDetectKeyPhrases
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Detects the key noun phrases found in a batch of documents.
+--
+--
+module Network.AWS.Comprehend.BatchDetectKeyPhrases
+ (
+ -- * Creating a Request
+ batchDetectKeyPhrases
+ , BatchDetectKeyPhrases
+ -- * Request Lenses
+ , bdkpTextList
+ , bdkpLanguageCode
+
+ -- * Destructuring the Response
+ , batchDetectKeyPhrasesResponse
+ , BatchDetectKeyPhrasesResponse
+ -- * Response Lenses
+ , bdkprsResponseStatus
+ , bdkprsResultList
+ , bdkprsErrorList
+ ) where
+
+import Network.AWS.Comprehend.Types
+import Network.AWS.Comprehend.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'batchDetectKeyPhrases' smart constructor.
+data BatchDetectKeyPhrases = BatchDetectKeyPhrases'
+ { _bdkpTextList :: ![Text]
+ , _bdkpLanguageCode :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetectKeyPhrases' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdkpTextList' - A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer that 5,000 bytes of UTF-8 encoded characters.
+--
+-- * 'bdkpLanguageCode' - The language of the input documents. All documents must be in the same language.
+batchDetectKeyPhrases
+ :: Text -- ^ 'bdkpLanguageCode'
+ -> BatchDetectKeyPhrases
+batchDetectKeyPhrases pLanguageCode_ =
+ BatchDetectKeyPhrases'
+ {_bdkpTextList = mempty, _bdkpLanguageCode = pLanguageCode_}
+
+
+-- | A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer that 5,000 bytes of UTF-8 encoded characters.
+bdkpTextList :: Lens' BatchDetectKeyPhrases [Text]
+bdkpTextList = lens _bdkpTextList (\ s a -> s{_bdkpTextList = a}) . _Coerce
+
+-- | The language of the input documents. All documents must be in the same language.
+bdkpLanguageCode :: Lens' BatchDetectKeyPhrases Text
+bdkpLanguageCode = lens _bdkpLanguageCode (\ s a -> s{_bdkpLanguageCode = a})
+
+instance AWSRequest BatchDetectKeyPhrases where
+ type Rs BatchDetectKeyPhrases =
+ BatchDetectKeyPhrasesResponse
+ request = postJSON comprehend
+ response
+ = receiveJSON
+ (\ s h x ->
+ BatchDetectKeyPhrasesResponse' <$>
+ (pure (fromEnum s)) <*>
+ (x .?> "ResultList" .!@ mempty)
+ <*> (x .?> "ErrorList" .!@ mempty))
+
+instance Hashable BatchDetectKeyPhrases where
+
+instance NFData BatchDetectKeyPhrases where
+
+instance ToHeaders BatchDetectKeyPhrases where
+ toHeaders
+ = const
+ (mconcat
+ ["X-Amz-Target" =#
+ ("Comprehend_20171127.BatchDetectKeyPhrases" ::
+ ByteString),
+ "Content-Type" =#
+ ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON BatchDetectKeyPhrases where
+ toJSON BatchDetectKeyPhrases'{..}
+ = object
+ (catMaybes
+ [Just ("TextList" .= _bdkpTextList),
+ Just ("LanguageCode" .= _bdkpLanguageCode)])
+
+instance ToPath BatchDetectKeyPhrases where
+ toPath = const "/"
+
+instance ToQuery BatchDetectKeyPhrases where
+ toQuery = const mempty
+
+-- | /See:/ 'batchDetectKeyPhrasesResponse' smart constructor.
+data BatchDetectKeyPhrasesResponse = BatchDetectKeyPhrasesResponse'
+ { _bdkprsResponseStatus :: !Int
+ , _bdkprsResultList :: ![BatchDetectKeyPhrasesItemResult]
+ , _bdkprsErrorList :: ![BatchItemError]
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetectKeyPhrasesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdkprsResponseStatus' - -- | The response status code.
+--
+-- * 'bdkprsResultList' - A list of objects containing the results of the operation. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If all of the documents contain an error, the @ResultList@ is empty.
+--
+-- * 'bdkprsErrorList' - A list containing one object for each document that contained an error. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If there are no errors in the batch, the @ErrorList@ is empty.
+batchDetectKeyPhrasesResponse
+ :: Int -- ^ 'bdkprsResponseStatus'
+ -> BatchDetectKeyPhrasesResponse
+batchDetectKeyPhrasesResponse pResponseStatus_ =
+ BatchDetectKeyPhrasesResponse'
+ { _bdkprsResponseStatus = pResponseStatus_
+ , _bdkprsResultList = mempty
+ , _bdkprsErrorList = mempty
+ }
+
+
+-- | -- | The response status code.
+bdkprsResponseStatus :: Lens' BatchDetectKeyPhrasesResponse Int
+bdkprsResponseStatus = lens _bdkprsResponseStatus (\ s a -> s{_bdkprsResponseStatus = a})
+
+-- | A list of objects containing the results of the operation. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If all of the documents contain an error, the @ResultList@ is empty.
+bdkprsResultList :: Lens' BatchDetectKeyPhrasesResponse [BatchDetectKeyPhrasesItemResult]
+bdkprsResultList = lens _bdkprsResultList (\ s a -> s{_bdkprsResultList = a}) . _Coerce
+
+-- | A list containing one object for each document that contained an error. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If there are no errors in the batch, the @ErrorList@ is empty.
+bdkprsErrorList :: Lens' BatchDetectKeyPhrasesResponse [BatchItemError]
+bdkprsErrorList = lens _bdkprsErrorList (\ s a -> s{_bdkprsErrorList = a}) . _Coerce
+
+instance NFData BatchDetectKeyPhrasesResponse where
diff --git a/gen/Network/AWS/Comprehend/BatchDetectSentiment.hs b/gen/Network/AWS/Comprehend/BatchDetectSentiment.hs
new file mode 100644
index 0000000..d23e919
--- /dev/null
+++ b/gen/Network/AWS/Comprehend/BatchDetectSentiment.hs
@@ -0,0 +1,158 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend.BatchDetectSentiment
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inspects a batch of documents and returns an inference of the prevailing sentiment, @POSITIVE@ , @NEUTRAL@ , @MIXED@ , or @NEGATIVE@ , in each one.
+--
+--
+module Network.AWS.Comprehend.BatchDetectSentiment
+ (
+ -- * Creating a Request
+ batchDetectSentiment
+ , BatchDetectSentiment
+ -- * Request Lenses
+ , bdsTextList
+ , bdsLanguageCode
+
+ -- * Destructuring the Response
+ , batchDetectSentimentResponse
+ , BatchDetectSentimentResponse
+ -- * Response Lenses
+ , bdsrsResponseStatus
+ , bdsrsResultList
+ , bdsrsErrorList
+ ) where
+
+import Network.AWS.Comprehend.Types
+import Network.AWS.Comprehend.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'batchDetectSentiment' smart constructor.
+data BatchDetectSentiment = BatchDetectSentiment'
+ { _bdsTextList :: ![Text]
+ , _bdsLanguageCode :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetectSentiment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdsTextList' - A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer that 5,000 bytes of UTF-8 encoded characters.
+--
+-- * 'bdsLanguageCode' - The language of the input documents. All documents must be in the same language.
+batchDetectSentiment
+ :: Text -- ^ 'bdsLanguageCode'
+ -> BatchDetectSentiment
+batchDetectSentiment pLanguageCode_ =
+ BatchDetectSentiment'
+ {_bdsTextList = mempty, _bdsLanguageCode = pLanguageCode_}
+
+
+-- | A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer that 5,000 bytes of UTF-8 encoded characters.
+bdsTextList :: Lens' BatchDetectSentiment [Text]
+bdsTextList = lens _bdsTextList (\ s a -> s{_bdsTextList = a}) . _Coerce
+
+-- | The language of the input documents. All documents must be in the same language.
+bdsLanguageCode :: Lens' BatchDetectSentiment Text
+bdsLanguageCode = lens _bdsLanguageCode (\ s a -> s{_bdsLanguageCode = a})
+
+instance AWSRequest BatchDetectSentiment where
+ type Rs BatchDetectSentiment =
+ BatchDetectSentimentResponse
+ request = postJSON comprehend
+ response
+ = receiveJSON
+ (\ s h x ->
+ BatchDetectSentimentResponse' <$>
+ (pure (fromEnum s)) <*>
+ (x .?> "ResultList" .!@ mempty)
+ <*> (x .?> "ErrorList" .!@ mempty))
+
+instance Hashable BatchDetectSentiment where
+
+instance NFData BatchDetectSentiment where
+
+instance ToHeaders BatchDetectSentiment where
+ toHeaders
+ = const
+ (mconcat
+ ["X-Amz-Target" =#
+ ("Comprehend_20171127.BatchDetectSentiment" ::
+ ByteString),
+ "Content-Type" =#
+ ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON BatchDetectSentiment where
+ toJSON BatchDetectSentiment'{..}
+ = object
+ (catMaybes
+ [Just ("TextList" .= _bdsTextList),
+ Just ("LanguageCode" .= _bdsLanguageCode)])
+
+instance ToPath BatchDetectSentiment where
+ toPath = const "/"
+
+instance ToQuery BatchDetectSentiment where
+ toQuery = const mempty
+
+-- | /See:/ 'batchDetectSentimentResponse' smart constructor.
+data BatchDetectSentimentResponse = BatchDetectSentimentResponse'
+ { _bdsrsResponseStatus :: !Int
+ , _bdsrsResultList :: ![BatchDetectSentimentItemResult]
+ , _bdsrsErrorList :: ![BatchItemError]
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetectSentimentResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdsrsResponseStatus' - -- | The response status code.
+--
+-- * 'bdsrsResultList' - A list of objects containing the results of the operation. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If all of the documents contain an error, the @ResultList@ is empty.
+--
+-- * 'bdsrsErrorList' - A list containing one object for each document that contained an error. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If there are no errors in the batch, the @ErrorList@ is empty.
+batchDetectSentimentResponse
+ :: Int -- ^ 'bdsrsResponseStatus'
+ -> BatchDetectSentimentResponse
+batchDetectSentimentResponse pResponseStatus_ =
+ BatchDetectSentimentResponse'
+ { _bdsrsResponseStatus = pResponseStatus_
+ , _bdsrsResultList = mempty
+ , _bdsrsErrorList = mempty
+ }
+
+
+-- | -- | The response status code.
+bdsrsResponseStatus :: Lens' BatchDetectSentimentResponse Int
+bdsrsResponseStatus = lens _bdsrsResponseStatus (\ s a -> s{_bdsrsResponseStatus = a})
+
+-- | A list of objects containing the results of the operation. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If all of the documents contain an error, the @ResultList@ is empty.
+bdsrsResultList :: Lens' BatchDetectSentimentResponse [BatchDetectSentimentItemResult]
+bdsrsResultList = lens _bdsrsResultList (\ s a -> s{_bdsrsResultList = a}) . _Coerce
+
+-- | A list containing one object for each document that contained an error. The results are sorted in ascending order by the @Index@ field and match the order of the documents in the input list. If there are no errors in the batch, the @ErrorList@ is empty.
+bdsrsErrorList :: Lens' BatchDetectSentimentResponse [BatchItemError]
+bdsrsErrorList = lens _bdsrsErrorList (\ s a -> s{_bdsrsErrorList = a}) . _Coerce
+
+instance NFData BatchDetectSentimentResponse where
diff --git a/gen/Network/AWS/Comprehend/DescribeTopicsDetectionJob.hs b/gen/Network/AWS/Comprehend/DescribeTopicsDetectionJob.hs
new file mode 100644
index 0000000..9bf11d5
--- /dev/null
+++ b/gen/Network/AWS/Comprehend/DescribeTopicsDetectionJob.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend.DescribeTopicsDetectionJob
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the properties associated with a topic detection job. Use this operation to get the status of a detection job.
+--
+--
+module Network.AWS.Comprehend.DescribeTopicsDetectionJob
+ (
+ -- * Creating a Request
+ describeTopicsDetectionJob
+ , DescribeTopicsDetectionJob
+ -- * Request Lenses
+ , dtdjJobId
+
+ -- * Destructuring the Response
+ , describeTopicsDetectionJobResponse
+ , DescribeTopicsDetectionJobResponse
+ -- * Response Lenses
+ , dtdjrsTopicsDetectionJobProperties
+ , dtdjrsResponseStatus
+ ) where
+
+import Network.AWS.Comprehend.Types
+import Network.AWS.Comprehend.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'describeTopicsDetectionJob' smart constructor.
+newtype DescribeTopicsDetectionJob = DescribeTopicsDetectionJob'
+ { _dtdjJobId :: Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DescribeTopicsDetectionJob' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dtdjJobId' - The identifier assigned by the user to the detection job.
+describeTopicsDetectionJob
+ :: Text -- ^ 'dtdjJobId'
+ -> DescribeTopicsDetectionJob
+describeTopicsDetectionJob pJobId_ =
+ DescribeTopicsDetectionJob' {_dtdjJobId = pJobId_}
+
+
+-- | The identifier assigned by the user to the detection job.
+dtdjJobId :: Lens' DescribeTopicsDetectionJob Text
+dtdjJobId = lens _dtdjJobId (\ s a -> s{_dtdjJobId = a})
+
+instance AWSRequest DescribeTopicsDetectionJob where
+ type Rs DescribeTopicsDetectionJob =
+ DescribeTopicsDetectionJobResponse
+ request = postJSON comprehend
+ response
+ = receiveJSON
+ (\ s h x ->
+ DescribeTopicsDetectionJobResponse' <$>
+ (x .?> "TopicsDetectionJobProperties") <*>
+ (pure (fromEnum s)))
+
+instance Hashable DescribeTopicsDetectionJob where
+
+instance NFData DescribeTopicsDetectionJob where
+
+instance ToHeaders DescribeTopicsDetectionJob where
+ toHeaders
+ = const
+ (mconcat
+ ["X-Amz-Target" =#
+ ("Comprehend_20171127.DescribeTopicsDetectionJob" ::
+ ByteString),
+ "Content-Type" =#
+ ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DescribeTopicsDetectionJob where
+ toJSON DescribeTopicsDetectionJob'{..}
+ = object (catMaybes [Just ("JobId" .= _dtdjJobId)])
+
+instance ToPath DescribeTopicsDetectionJob where
+ toPath = const "/"
+
+instance ToQuery DescribeTopicsDetectionJob where
+ toQuery = const mempty
+
+-- | /See:/ 'describeTopicsDetectionJobResponse' smart constructor.
+data DescribeTopicsDetectionJobResponse = DescribeTopicsDetectionJobResponse'
+ { _dtdjrsTopicsDetectionJobProperties :: !(Maybe TopicsDetectionJobProperties)
+ , _dtdjrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DescribeTopicsDetectionJobResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dtdjrsTopicsDetectionJobProperties' - The list of properties for the requested job.
+--
+-- * 'dtdjrsResponseStatus' - -- | The response status code.
+describeTopicsDetectionJobResponse
+ :: Int -- ^ 'dtdjrsResponseStatus'
+ -> DescribeTopicsDetectionJobResponse
+describeTopicsDetectionJobResponse pResponseStatus_ =
+ DescribeTopicsDetectionJobResponse'
+ { _dtdjrsTopicsDetectionJobProperties = Nothing
+ , _dtdjrsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The list of properties for the requested job.
+dtdjrsTopicsDetectionJobProperties :: Lens' DescribeTopicsDetectionJobResponse (Maybe TopicsDetectionJobProperties)
+dtdjrsTopicsDetectionJobProperties = lens _dtdjrsTopicsDetectionJobProperties (\ s a -> s{_dtdjrsTopicsDetectionJobProperties = a})
+
+-- | -- | The response status code.
+dtdjrsResponseStatus :: Lens' DescribeTopicsDetectionJobResponse Int
+dtdjrsResponseStatus = lens _dtdjrsResponseStatus (\ s a -> s{_dtdjrsResponseStatus = a})
+
+instance NFData DescribeTopicsDetectionJobResponse
+ where
diff --git a/gen/Network/AWS/Comprehend/DetectDominantLanguage.hs b/gen/Network/AWS/Comprehend/DetectDominantLanguage.hs
new file mode 100644
index 0000000..75374d6
--- /dev/null
+++ b/gen/Network/AWS/Comprehend/DetectDominantLanguage.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend.DetectDominantLanguage
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Determines the dominant language of the input text. For a list of languages that Amazon Comprehend can detect, see <http://docs.aws.amazon.com/comprehend/latest/dg/how-languages.html Amazon Comprehend Supported Languages> .
+--
+--
+module Network.AWS.Comprehend.DetectDominantLanguage
+ (
+ -- * Creating a Request
+ detectDominantLanguage
+ , DetectDominantLanguage
+ -- * Request Lenses
+ , ddlText
+
+ -- * Destructuring the Response
+ , detectDominantLanguageResponse
+ , DetectDominantLanguageResponse
+ -- * Response Lenses
+ , ddlrsLanguages
+ , ddlrsResponseStatus
+ ) where
+
+import Network.AWS.Comprehend.Types
+import Network.AWS.Comprehend.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'detectDominantLanguage' smart constructor.
+newtype DetectDominantLanguage = DetectDominantLanguage'
+ { _ddlText :: Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetectDominantLanguage' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ddlText' - A UTF-8 text string. Each string should contain at least 20 characters and must contain fewer that 5,000 bytes of UTF-8 encoded characters.
+detectDominantLanguage
+ :: Text -- ^ 'ddlText'
+ -> DetectDominantLanguage
+detectDominantLanguage pText_ = DetectDominantLanguage' {_ddlText = pText_}
+
+
+-- | A UTF-8 text string. Each string should contain at least 20 characters and must contain fewer that 5,000 bytes of UTF-8 encoded characters.
+ddlText :: Lens' DetectDominantLanguage Text
+ddlText = lens _ddlText (\ s a -> s{_ddlText = a})
+
+instance AWSRequest DetectDominantLanguage where
+ type Rs DetectDominantLanguage =
+ DetectDominantLanguageResponse
+ request = postJSON comprehend
+ response
+ = receiveJSON
+ (\ s h x ->
+ DetectDominantLanguageResponse' <$>
+ (x .?> "Languages" .!@ mempty) <*>
+ (pure (fromEnum s)))
+
+instance Hashable DetectDominantLanguage where
+
+instance NFData DetectDominantLanguage where
+
+instance ToHeaders DetectDominantLanguage where
+ toHeaders
+ = const
+ (mconcat
+ ["X-Amz-Target" =#
+ ("Comprehend_20171127.DetectDominantLanguage" ::
+ ByteString),
+ "Content-Type" =#
+ ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DetectDominantLanguage where
+ toJSON DetectDominantLanguage'{..}
+ = object (catMaybes [Just ("Text" .= _ddlText)])
+
+instance ToPath DetectDominantLanguage where
+ toPath = const "/"
+
+instance ToQuery DetectDominantLanguage where
+ toQuery = const mempty
+
+-- | /See:/ 'detectDominantLanguageResponse' smart constructor.
+data DetectDominantLanguageResponse = DetectDominantLanguageResponse'
+ { _ddlrsLanguages :: !(Maybe [DominantLanguage])
+ , _ddlrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetectDominantLanguageResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ddlrsLanguages' - The languages that Amazon Comprehend detected in the input text. For each language, the response returns the RFC 5646 language code and the level of confidence that Amazon Comprehend has in the accuracy of its inference. For more information about RFC 5646, see <https://tools.ietf.org/html/rfc5646 Tags for Identifying Languages> on the /IETF Tools/ web site.
+--
+-- * 'ddlrsResponseStatus' - -- | The response status code.
+detectDominantLanguageResponse
+ :: Int -- ^ 'ddlrsResponseStatus'
+ -> DetectDominantLanguageResponse
+detectDominantLanguageResponse pResponseStatus_ =
+ DetectDominantLanguageResponse'
+ {_ddlrsLanguages = Nothing, _ddlrsResponseStatus = pResponseStatus_}
+
+
+-- | The languages that Amazon Comprehend detected in the input text. For each language, the response returns the RFC 5646 language code and the level of confidence that Amazon Comprehend has in the accuracy of its inference. For more information about RFC 5646, see <https://tools.ietf.org/html/rfc5646 Tags for Identifying Languages> on the /IETF Tools/ web site.
+ddlrsLanguages :: Lens' DetectDominantLanguageResponse [DominantLanguage]
+ddlrsLanguages = lens _ddlrsLanguages (\ s a -> s{_ddlrsLanguages = a}) . _Default . _Coerce
+
+-- | -- | The response status code.
+ddlrsResponseStatus :: Lens' DetectDominantLanguageResponse Int
+ddlrsResponseStatus = lens _ddlrsResponseStatus (\ s a -> s{_ddlrsResponseStatus = a})
+
+instance NFData DetectDominantLanguageResponse where
diff --git a/gen/Network/AWS/Comprehend/DetectEntities.hs b/gen/Network/AWS/Comprehend/DetectEntities.hs
new file mode 100644
index 0000000..3d6ba50
--- /dev/null
+++ b/gen/Network/AWS/Comprehend/DetectEntities.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend.DetectEntities
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inspects text for entities, and returns information about them. For more information, about entities, see 'how-entities' .
+--
+--
+module Network.AWS.Comprehend.DetectEntities
+ (
+ -- * Creating a Request
+ detectEntities
+ , DetectEntities
+ -- * Request Lenses
+ , deText
+ , deLanguageCode
+
+ -- * Destructuring the Response
+ , detectEntitiesResponse
+ , DetectEntitiesResponse
+ -- * Response Lenses
+ , dersEntities
+ , dersResponseStatus
+ ) where
+
+import Network.AWS.Comprehend.Types
+import Network.AWS.Comprehend.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'detectEntities' smart constructor.
+data DetectEntities = DetectEntities'
+ { _deText :: !Text
+ , _deLanguageCode :: !LanguageCode
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetectEntities' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'deText' - A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.
+--
+-- * 'deLanguageCode' - The RFC 5646 language code of the input text. If the request does not specify the language code, the service detects the dominant language. If you specify a language code that the service does not support, it returns @UnsupportedLanguageException@ exception. For more information about RFC 5646, see <https://tools.ietf.org/html/rfc5646 Tags for Identifying Languages> on the /IETF Tools/ web site.
+detectEntities
+ :: Text -- ^ 'deText'
+ -> LanguageCode -- ^ 'deLanguageCode'
+ -> DetectEntities
+detectEntities pText_ pLanguageCode_ =
+ DetectEntities' {_deText = pText_, _deLanguageCode = pLanguageCode_}
+
+
+-- | A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.
+deText :: Lens' DetectEntities Text
+deText = lens _deText (\ s a -> s{_deText = a})
+
+-- | The RFC 5646 language code of the input text. If the request does not specify the language code, the service detects the dominant language. If you specify a language code that the service does not support, it returns @UnsupportedLanguageException@ exception. For more information about RFC 5646, see <https://tools.ietf.org/html/rfc5646 Tags for Identifying Languages> on the /IETF Tools/ web site.
+deLanguageCode :: Lens' DetectEntities LanguageCode
+deLanguageCode = lens _deLanguageCode (\ s a -> s{_deLanguageCode = a})
+
+instance AWSRequest DetectEntities where
+ type Rs DetectEntities = DetectEntitiesResponse
+ request = postJSON comprehend
+ response
+ = receiveJSON
+ (\ s h x ->
+ DetectEntitiesResponse' <$>
+ (x .?> "Entities" .!@ mempty) <*>
+ (pure (fromEnum s)))
+
+instance Hashable DetectEntities where
+
+instance NFData DetectEntities where
+
+instance ToHeaders DetectEntities where
+ toHeaders
+ = const
+ (mconcat
+ ["X-Amz-Target" =#
+ ("Comprehend_20171127.DetectEntities" :: ByteString),
+ "Content-Type" =#
+ ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DetectEntities where
+ toJSON DetectEntities'{..}
+ = object
+ (catMaybes
+ [Just ("Text" .= _deText),
+ Just ("LanguageCode" .= _deLanguageCode)])
+
+instance ToPath DetectEntities where
+ toPath = const "/"
+
+instance ToQuery DetectEntities where
+ toQuery = const mempty
+
+-- | /See:/ 'detectEntitiesResponse' smart constructor.
+data DetectEntitiesResponse = DetectEntitiesResponse'
+ { _dersEntities :: !(Maybe [Entity])
+ , _dersResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetectEntitiesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dersEntities' - A collection of entities identified in the input text. For each entity, the response provides the entity text, entity type, where the entity text begins and ends, and the level of confidence that Amazon Comprehend has in the detection. For a list of entity types, see 'how-entities' .
+--
+-- * 'dersResponseStatus' - -- | The response status code.
+detectEntitiesResponse
+ :: Int -- ^ 'dersResponseStatus'
+ -> DetectEntitiesResponse
+detectEntitiesResponse pResponseStatus_ =
+ DetectEntitiesResponse'
+ {_dersEntities = Nothing, _dersResponseStatus = pResponseStatus_}
+
+
+-- | A collection of entities identified in the input text. For each entity, the response provides the entity text, entity type, where the entity text begins and ends, and the level of confidence that Amazon Comprehend has in the detection. For a list of entity types, see 'how-entities' .
+dersEntities :: Lens' DetectEntitiesResponse [Entity]
+dersEntities = lens _dersEntities (\ s a -> s{_dersEntities = a}) . _Default . _Coerce
+
+-- | -- | The response status code.
+dersResponseStatus :: Lens' DetectEntitiesResponse Int
+dersResponseStatus = lens _dersResponseStatus (\ s a -> s{_dersResponseStatus = a})
+
+instance NFData DetectEntitiesResponse where
diff --git a/gen/Network/AWS/Comprehend/DetectKeyPhrases.hs b/gen/Network/AWS/Comprehend/DetectKeyPhrases.hs
new file mode 100644
index 0000000..503044a
--- /dev/null
+++ b/gen/Network/AWS/Comprehend/DetectKeyPhrases.hs
@@ -0,0 +1,145 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend.DetectKeyPhrases
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Detects the key noun phrases found in the text.
+--
+--
+module Network.AWS.Comprehend.DetectKeyPhrases
+ (
+ -- * Creating a Request
+ detectKeyPhrases
+ , DetectKeyPhrases
+ -- * Request Lenses
+ , dkpText
+ , dkpLanguageCode
+
+ -- * Destructuring the Response
+ , detectKeyPhrasesResponse
+ , DetectKeyPhrasesResponse
+ -- * Response Lenses
+ , dkprsKeyPhrases
+ , dkprsResponseStatus
+ ) where
+
+import Network.AWS.Comprehend.Types
+import Network.AWS.Comprehend.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'detectKeyPhrases' smart constructor.
+data DetectKeyPhrases = DetectKeyPhrases'
+ { _dkpText :: !Text
+ , _dkpLanguageCode :: !LanguageCode
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetectKeyPhrases' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dkpText' - A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.
+--
+-- * 'dkpLanguageCode' - The RFC 5646 language code for the input text. If you don't specify a language code, Amazon Comprehend detects the dominant language. If you specify the code for a language that Amazon Comprehend does not support, it returns and @UnsupportedLanguageException@ . For more information about RFC 5646, see <https://tools.ietf.org/html/rfc5646 Tags for Identifying Languages> on the /IETF Tools/ web site.
+detectKeyPhrases
+ :: Text -- ^ 'dkpText'
+ -> LanguageCode -- ^ 'dkpLanguageCode'
+ -> DetectKeyPhrases
+detectKeyPhrases pText_ pLanguageCode_ =
+ DetectKeyPhrases' {_dkpText = pText_, _dkpLanguageCode = pLanguageCode_}
+
+
+-- | A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.
+dkpText :: Lens' DetectKeyPhrases Text
+dkpText = lens _dkpText (\ s a -> s{_dkpText = a})
+
+-- | The RFC 5646 language code for the input text. If you don't specify a language code, Amazon Comprehend detects the dominant language. If you specify the code for a language that Amazon Comprehend does not support, it returns and @UnsupportedLanguageException@ . For more information about RFC 5646, see <https://tools.ietf.org/html/rfc5646 Tags for Identifying Languages> on the /IETF Tools/ web site.
+dkpLanguageCode :: Lens' DetectKeyPhrases LanguageCode
+dkpLanguageCode = lens _dkpLanguageCode (\ s a -> s{_dkpLanguageCode = a})
+
+instance AWSRequest DetectKeyPhrases where
+ type Rs DetectKeyPhrases = DetectKeyPhrasesResponse
+ request = postJSON comprehend
+ response
+ = receiveJSON
+ (\ s h x ->
+ DetectKeyPhrasesResponse' <$>
+ (x .?> "KeyPhrases" .!@ mempty) <*>
+ (pure (fromEnum s)))
+
+instance Hashable DetectKeyPhrases where
+
+instance NFData DetectKeyPhrases where
+
+instance ToHeaders DetectKeyPhrases where
+ toHeaders
+ = const
+ (mconcat
+ ["X-Amz-Target" =#
+ ("Comprehend_20171127.DetectKeyPhrases" ::
+ ByteString),
+ "Content-Type" =#
+ ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DetectKeyPhrases where
+ toJSON DetectKeyPhrases'{..}
+ = object
+ (catMaybes
+ [Just ("Text" .= _dkpText),
+ Just ("LanguageCode" .= _dkpLanguageCode)])
+
+instance ToPath DetectKeyPhrases where
+ toPath = const "/"
+
+instance ToQuery DetectKeyPhrases where
+ toQuery = const mempty
+
+-- | /See:/ 'detectKeyPhrasesResponse' smart constructor.
+data DetectKeyPhrasesResponse = DetectKeyPhrasesResponse'
+ { _dkprsKeyPhrases :: !(Maybe [KeyPhrase])
+ , _dkprsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetectKeyPhrasesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dkprsKeyPhrases' - A collection of key phrases that Amazon Comprehend identified in the input text. For each key phrase, the response provides the text of the key phrase, where the key phrase begins and ends, and the level of confidence that Amazon Comprehend has in the accuracy of the detection.
+--
+-- * 'dkprsResponseStatus' - -- | The response status code.
+detectKeyPhrasesResponse
+ :: Int -- ^ 'dkprsResponseStatus'
+ -> DetectKeyPhrasesResponse
+detectKeyPhrasesResponse pResponseStatus_ =
+ DetectKeyPhrasesResponse'
+ {_dkprsKeyPhrases = Nothing, _dkprsResponseStatus = pResponseStatus_}
+
+
+-- | A collection of key phrases that Amazon Comprehend identified in the input text. For each key phrase, the response provides the text of the key phrase, where the key phrase begins and ends, and the level of confidence that Amazon Comprehend has in the accuracy of the detection.
+dkprsKeyPhrases :: Lens' DetectKeyPhrasesResponse [KeyPhrase]
+dkprsKeyPhrases = lens _dkprsKeyPhrases (\ s a -> s{_dkprsKeyPhrases = a}) . _Default . _Coerce
+
+-- | -- | The response status code.
+dkprsResponseStatus :: Lens' DetectKeyPhrasesResponse Int
+dkprsResponseStatus = lens _dkprsResponseStatus (\ s a -> s{_dkprsResponseStatus = a})
+
+instance NFData DetectKeyPhrasesResponse where
diff --git a/gen/Network/AWS/Comprehend/DetectSentiment.hs b/gen/Network/AWS/Comprehend/DetectSentiment.hs
new file mode 100644
index 0000000..341c365
--- /dev/null
+++ b/gen/Network/AWS/Comprehend/DetectSentiment.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend.DetectSentiment
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inspects text and returns an inference of the prevailing sentiment (@POSITIVE@ , @NEUTRAL@ , @MIXED@ , or @NEGATIVE@ ).
+--
+--
+module Network.AWS.Comprehend.DetectSentiment
+ (
+ -- * Creating a Request
+ detectSentiment
+ , DetectSentiment
+ -- * Request Lenses
+ , dsText
+ , dsLanguageCode
+
+ -- * Destructuring the Response
+ , detectSentimentResponse
+ , DetectSentimentResponse
+ -- * Response Lenses
+ , dsrsSentiment
+ , dsrsSentimentScore
+ , dsrsResponseStatus
+ ) where
+
+import Network.AWS.Comprehend.Types
+import Network.AWS.Comprehend.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'detectSentiment' smart constructor.
+data DetectSentiment = DetectSentiment'
+ { _dsText :: !Text
+ , _dsLanguageCode :: !LanguageCode
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetectSentiment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsText' - A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.
+--
+-- * 'dsLanguageCode' - The RFC 5646 language code for the input text. If you don't specify a language code, Amazon Comprehend detects the dominant language. If you specify the code for a language that Amazon Comprehend does not support, it returns and @UnsupportedLanguageException@ . For more information about RFC 5646, see <https://tools.ietf.org/html/rfc5646 Tags for Identifying Languages> on the /IETF Tools/ web site.
+detectSentiment
+ :: Text -- ^ 'dsText'
+ -> LanguageCode -- ^ 'dsLanguageCode'
+ -> DetectSentiment
+detectSentiment pText_ pLanguageCode_ =
+ DetectSentiment' {_dsText = pText_, _dsLanguageCode = pLanguageCode_}
+
+
+-- | A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.
+dsText :: Lens' DetectSentiment Text
+dsText = lens _dsText (\ s a -> s{_dsText = a})
+
+-- | The RFC 5646 language code for the input text. If you don't specify a language code, Amazon Comprehend detects the dominant language. If you specify the code for a language that Amazon Comprehend does not support, it returns and @UnsupportedLanguageException@ . For more information about RFC 5646, see <https://tools.ietf.org/html/rfc5646 Tags for Identifying Languages> on the /IETF Tools/ web site.
+dsLanguageCode :: Lens' DetectSentiment LanguageCode
+dsLanguageCode = lens _dsLanguageCode (\ s a -> s{_dsLanguageCode = a})
+
+instance AWSRequest DetectSentiment where
+ type Rs DetectSentiment = DetectSentimentResponse
+ request = postJSON comprehend
+ response
+ = receiveJSON
+ (\ s h x ->
+ DetectSentimentResponse' <$>
+ (x .?> "Sentiment") <*> (x .?> "SentimentScore") <*>
+ (pure (fromEnum s)))
+
+instance Hashable DetectSentiment where
+
+instance NFData DetectSentiment where
+
+instance ToHeaders DetectSentiment where
+ toHeaders
+ = const
+ (mconcat
+ ["X-Amz-Target" =#
+ ("Comprehend_20171127.DetectSentiment" ::
+ ByteString),
+ "Content-Type" =#
+ ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DetectSentiment where
+ toJSON DetectSentiment'{..}
+ = object
+ (catMaybes
+ [Just ("Text" .= _dsText),
+ Just ("LanguageCode" .= _dsLanguageCode)])
+
+instance ToPath DetectSentiment where
+ toPath = const "/"
+
+instance ToQuery DetectSentiment where
+ toQuery = const mempty
+
+-- | /See:/ 'detectSentimentResponse' smart constructor.
+data DetectSentimentResponse = DetectSentimentResponse'
+ { _dsrsSentiment :: !(Maybe SentimentType)
+ , _dsrsSentimentScore :: !(Maybe SentimentScore)
+ , _dsrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetectSentimentResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsrsSentiment' - The inferred sentiment that Amazon Comprehend has the highest level of confidence in.
+--
+-- * 'dsrsSentimentScore' - An object that lists the sentiments, and their corresponding confidence levels.
+--
+-- * 'dsrsResponseStatus' - -- | The response status code.
+detectSentimentResponse
+ :: Int -- ^ 'dsrsResponseStatus'
+ -> DetectSentimentResponse
+detectSentimentResponse pResponseStatus_ =
+ DetectSentimentResponse'
+ { _dsrsSentiment = Nothing
+ , _dsrsSentimentScore = Nothing
+ , _dsrsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The inferred sentiment that Amazon Comprehend has the highest level of confidence in.
+dsrsSentiment :: Lens' DetectSentimentResponse (Maybe SentimentType)
+dsrsSentiment = lens _dsrsSentiment (\ s a -> s{_dsrsSentiment = a})
+
+-- | An object that lists the sentiments, and their corresponding confidence levels.
+dsrsSentimentScore :: Lens' DetectSentimentResponse (Maybe SentimentScore)
+dsrsSentimentScore = lens _dsrsSentimentScore (\ s a -> s{_dsrsSentimentScore = a})
+
+-- | -- | The response status code.
+dsrsResponseStatus :: Lens' DetectSentimentResponse Int
+dsrsResponseStatus = lens _dsrsResponseStatus (\ s a -> s{_dsrsResponseStatus = a})
+
+instance NFData DetectSentimentResponse where
diff --git a/gen/Network/AWS/Comprehend/ListTopicsDetectionJobs.hs b/gen/Network/AWS/Comprehend/ListTopicsDetectionJobs.hs
new file mode 100644
index 0000000..11dca61
--- /dev/null
+++ b/gen/Network/AWS/Comprehend/ListTopicsDetectionJobs.hs
@@ -0,0 +1,177 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend.ListTopicsDetectionJobs
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a list of the topic detection jobs that you have submitted.
+--
+--
+--
+-- This operation returns paginated results.
+module Network.AWS.Comprehend.ListTopicsDetectionJobs
+ (
+ -- * Creating a Request
+ listTopicsDetectionJobs
+ , ListTopicsDetectionJobs
+ -- * Request Lenses
+ , ltdjNextToken
+ , ltdjFilter
+ , ltdjMaxResults
+
+ -- * Destructuring the Response
+ , listTopicsDetectionJobsResponse
+ , ListTopicsDetectionJobsResponse
+ -- * Response Lenses
+ , ltdjrsNextToken
+ , ltdjrsTopicsDetectionJobPropertiesList
+ , ltdjrsResponseStatus
+ ) where
+
+import Network.AWS.Comprehend.Types
+import Network.AWS.Comprehend.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listTopicsDetectionJobs' smart constructor.
+data ListTopicsDetectionJobs = ListTopicsDetectionJobs'
+ { _ltdjNextToken :: !(Maybe Text)
+ , _ltdjFilter :: !(Maybe TopicsDetectionJobFilter)
+ , _ltdjMaxResults :: !(Maybe Nat)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListTopicsDetectionJobs' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ltdjNextToken' - Identifies the next page of results to return.
+--
+-- * 'ltdjFilter' - Filters the jobs that are returned. Jobs can be filtered on their name, status, or the date and time that they were submitted. You can set only one filter at a time.
+--
+-- * 'ltdjMaxResults' - The maximum number of results to return in each page.
+listTopicsDetectionJobs
+ :: ListTopicsDetectionJobs
+listTopicsDetectionJobs =
+ ListTopicsDetectionJobs'
+ {_ltdjNextToken = Nothing, _ltdjFilter = Nothing, _ltdjMaxResults = Nothing}
+
+
+-- | Identifies the next page of results to return.
+ltdjNextToken :: Lens' ListTopicsDetectionJobs (Maybe Text)
+ltdjNextToken = lens _ltdjNextToken (\ s a -> s{_ltdjNextToken = a})
+
+-- | Filters the jobs that are returned. Jobs can be filtered on their name, status, or the date and time that they were submitted. You can set only one filter at a time.
+ltdjFilter :: Lens' ListTopicsDetectionJobs (Maybe TopicsDetectionJobFilter)
+ltdjFilter = lens _ltdjFilter (\ s a -> s{_ltdjFilter = a})
+
+-- | The maximum number of results to return in each page.
+ltdjMaxResults :: Lens' ListTopicsDetectionJobs (Maybe Natural)
+ltdjMaxResults = lens _ltdjMaxResults (\ s a -> s{_ltdjMaxResults = a}) . mapping _Nat
+
+instance AWSPager ListTopicsDetectionJobs where
+ page rq rs
+ | stop (rs ^. ltdjrsNextToken) = Nothing
+ | stop (rs ^. ltdjrsTopicsDetectionJobPropertiesList)
+ = Nothing
+ | otherwise =
+ Just $ rq & ltdjNextToken .~ rs ^. ltdjrsNextToken
+
+instance AWSRequest ListTopicsDetectionJobs where
+ type Rs ListTopicsDetectionJobs =
+ ListTopicsDetectionJobsResponse
+ request = postJSON comprehend
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListTopicsDetectionJobsResponse' <$>
+ (x .?> "NextToken") <*>
+ (x .?> "TopicsDetectionJobPropertiesList" .!@ mempty)
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListTopicsDetectionJobs where
+
+instance NFData ListTopicsDetectionJobs where
+
+instance ToHeaders ListTopicsDetectionJobs where
+ toHeaders
+ = const
+ (mconcat
+ ["X-Amz-Target" =#
+ ("Comprehend_20171127.ListTopicsDetectionJobs" ::
+ ByteString),
+ "Content-Type" =#
+ ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON ListTopicsDetectionJobs where
+ toJSON ListTopicsDetectionJobs'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _ltdjNextToken,
+ ("Filter" .=) <$> _ltdjFilter,
+ ("MaxResults" .=) <$> _ltdjMaxResults])
+
+instance ToPath ListTopicsDetectionJobs where
+ toPath = const "/"
+
+instance ToQuery ListTopicsDetectionJobs where
+ toQuery = const mempty
+
+-- | /See:/ 'listTopicsDetectionJobsResponse' smart constructor.
+data ListTopicsDetectionJobsResponse = ListTopicsDetectionJobsResponse'
+ { _ltdjrsNextToken :: !(Maybe Text)
+ , _ltdjrsTopicsDetectionJobPropertiesList :: !(Maybe [TopicsDetectionJobProperties])
+ , _ltdjrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListTopicsDetectionJobsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ltdjrsNextToken' - Identifies the next page of results to return.
+--
+-- * 'ltdjrsTopicsDetectionJobPropertiesList' - A list containing the properties of each job that is returned.
+--
+-- * 'ltdjrsResponseStatus' - -- | The response status code.
+listTopicsDetectionJobsResponse
+ :: Int -- ^ 'ltdjrsResponseStatus'
+ -> ListTopicsDetectionJobsResponse
+listTopicsDetectionJobsResponse pResponseStatus_ =
+ ListTopicsDetectionJobsResponse'
+ { _ltdjrsNextToken = Nothing
+ , _ltdjrsTopicsDetectionJobPropertiesList = Nothing
+ , _ltdjrsResponseStatus = pResponseStatus_
+ }
+
+
+-- | Identifies the next page of results to return.
+ltdjrsNextToken :: Lens' ListTopicsDetectionJobsResponse (Maybe Text)
+ltdjrsNextToken = lens _ltdjrsNextToken (\ s a -> s{_ltdjrsNextToken = a})
+
+-- | A list containing the properties of each job that is returned.
+ltdjrsTopicsDetectionJobPropertiesList :: Lens' ListTopicsDetectionJobsResponse [TopicsDetectionJobProperties]
+ltdjrsTopicsDetectionJobPropertiesList = lens _ltdjrsTopicsDetectionJobPropertiesList (\ s a -> s{_ltdjrsTopicsDetectionJobPropertiesList = a}) . _Default . _Coerce
+
+-- | -- | The response status code.
+ltdjrsResponseStatus :: Lens' ListTopicsDetectionJobsResponse Int
+ltdjrsResponseStatus = lens _ltdjrsResponseStatus (\ s a -> s{_ltdjrsResponseStatus = a})
+
+instance NFData ListTopicsDetectionJobsResponse where
diff --git a/gen/Network/AWS/Comprehend/StartTopicsDetectionJob.hs b/gen/Network/AWS/Comprehend/StartTopicsDetectionJob.hs
new file mode 100644
index 0000000..a746cce
--- /dev/null
+++ b/gen/Network/AWS/Comprehend/StartTopicsDetectionJob.hs
@@ -0,0 +1,203 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend.StartTopicsDetectionJob
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Starts an asynchronous topic detection job. Use the @DescribeTopicDetectionJob@ operation to track the status of a job.
+--
+--
+module Network.AWS.Comprehend.StartTopicsDetectionJob
+ (
+ -- * Creating a Request
+ startTopicsDetectionJob
+ , StartTopicsDetectionJob
+ -- * Request Lenses
+ , stdjJobName
+ , stdjNumberOfTopics
+ , stdjClientRequestToken
+ , stdjInputDataConfig
+ , stdjOutputDataConfig
+ , stdjDataAccessRoleARN
+
+ -- * Destructuring the Response
+ , startTopicsDetectionJobResponse
+ , StartTopicsDetectionJobResponse
+ -- * Response Lenses
+ , stdjrsJobId
+ , stdjrsJobStatus
+ , stdjrsResponseStatus
+ ) where
+
+import Network.AWS.Comprehend.Types
+import Network.AWS.Comprehend.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'startTopicsDetectionJob' smart constructor.
+data StartTopicsDetectionJob = StartTopicsDetectionJob'
+ { _stdjJobName :: !(Maybe Text)
+ , _stdjNumberOfTopics :: !(Maybe Nat)
+ , _stdjClientRequestToken :: !(Maybe Text)
+ , _stdjInputDataConfig :: !InputDataConfig
+ , _stdjOutputDataConfig :: !OutputDataConfig
+ , _stdjDataAccessRoleARN :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'StartTopicsDetectionJob' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'stdjJobName' - The identifier of the job.
+--
+-- * 'stdjNumberOfTopics' - The number of topics to detect.
+--
+-- * 'stdjClientRequestToken' - A unique identifier for the request. If you do not set the client request token, Amazon Comprehend generates one.
+--
+-- * 'stdjInputDataConfig' - Specifies the format and location of the input data for the job.
+--
+-- * 'stdjOutputDataConfig' - Specifies where to send the output files.
+--
+-- * 'stdjDataAccessRoleARN' - The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data.
+startTopicsDetectionJob
+ :: InputDataConfig -- ^ 'stdjInputDataConfig'
+ -> OutputDataConfig -- ^ 'stdjOutputDataConfig'
+ -> Text -- ^ 'stdjDataAccessRoleARN'
+ -> StartTopicsDetectionJob
+startTopicsDetectionJob pInputDataConfig_ pOutputDataConfig_ pDataAccessRoleARN_ =
+ StartTopicsDetectionJob'
+ { _stdjJobName = Nothing
+ , _stdjNumberOfTopics = Nothing
+ , _stdjClientRequestToken = Nothing
+ , _stdjInputDataConfig = pInputDataConfig_
+ , _stdjOutputDataConfig = pOutputDataConfig_
+ , _stdjDataAccessRoleARN = pDataAccessRoleARN_
+ }
+
+
+-- | The identifier of the job.
+stdjJobName :: Lens' StartTopicsDetectionJob (Maybe Text)
+stdjJobName = lens _stdjJobName (\ s a -> s{_stdjJobName = a})
+
+-- | The number of topics to detect.
+stdjNumberOfTopics :: Lens' StartTopicsDetectionJob (Maybe Natural)
+stdjNumberOfTopics = lens _stdjNumberOfTopics (\ s a -> s{_stdjNumberOfTopics = a}) . mapping _Nat
+
+-- | A unique identifier for the request. If you do not set the client request token, Amazon Comprehend generates one.
+stdjClientRequestToken :: Lens' StartTopicsDetectionJob (Maybe Text)
+stdjClientRequestToken = lens _stdjClientRequestToken (\ s a -> s{_stdjClientRequestToken = a})
+
+-- | Specifies the format and location of the input data for the job.
+stdjInputDataConfig :: Lens' StartTopicsDetectionJob InputDataConfig
+stdjInputDataConfig = lens _stdjInputDataConfig (\ s a -> s{_stdjInputDataConfig = a})
+
+-- | Specifies where to send the output files.
+stdjOutputDataConfig :: Lens' StartTopicsDetectionJob OutputDataConfig
+stdjOutputDataConfig = lens _stdjOutputDataConfig (\ s a -> s{_stdjOutputDataConfig = a})
+
+-- | The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data.
+stdjDataAccessRoleARN :: Lens' StartTopicsDetectionJob Text
+stdjDataAccessRoleARN = lens _stdjDataAccessRoleARN (\ s a -> s{_stdjDataAccessRoleARN = a})
+
+instance AWSRequest StartTopicsDetectionJob where
+ type Rs StartTopicsDetectionJob =
+ StartTopicsDetectionJobResponse
+ request = postJSON comprehend
+ response
+ = receiveJSON
+ (\ s h x ->
+ StartTopicsDetectionJobResponse' <$>
+ (x .?> "JobId") <*> (x .?> "JobStatus") <*>
+ (pure (fromEnum s)))
+
+instance Hashable StartTopicsDetectionJob where
+
+instance NFData StartTopicsDetectionJob where
+
+instance ToHeaders StartTopicsDetectionJob where
+ toHeaders
+ = const
+ (mconcat
+ ["X-Amz-Target" =#
+ ("Comprehend_20171127.StartTopicsDetectionJob" ::
+ ByteString),
+ "Content-Type" =#
+ ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON StartTopicsDetectionJob where
+ toJSON StartTopicsDetectionJob'{..}
+ = object
+ (catMaybes
+ [("JobName" .=) <$> _stdjJobName,
+ ("NumberOfTopics" .=) <$> _stdjNumberOfTopics,
+ ("ClientRequestToken" .=) <$>
+ _stdjClientRequestToken,
+ Just ("InputDataConfig" .= _stdjInputDataConfig),
+ Just ("OutputDataConfig" .= _stdjOutputDataConfig),
+ Just
+ ("DataAccessRoleArn" .= _stdjDataAccessRoleARN)])
+
+instance ToPath StartTopicsDetectionJob where
+ toPath = const "/"
+
+instance ToQuery StartTopicsDetectionJob where
+ toQuery = const mempty
+
+-- | /See:/ 'startTopicsDetectionJobResponse' smart constructor.
+data StartTopicsDetectionJobResponse = StartTopicsDetectionJobResponse'
+ { _stdjrsJobId :: !(Maybe Text)
+ , _stdjrsJobStatus :: !(Maybe JobStatus)
+ , _stdjrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'StartTopicsDetectionJobResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'stdjrsJobId' - The identifier generated for the job. To get the status of the job, use this identifier with the @DescribeTopicDetectionJob@ operation.
+--
+-- * 'stdjrsJobStatus' - The status of the job: * SUBMITTED - The job has been received and is queued for processing. * IN_PROGRESS - Amazon Comprehend is processing the job. * COMPLETED - The job was successfully completed and the output is available. * FAILED - The job did not complete. To get details, use the @DescribeTopicDetectionJob@ operation.
+--
+-- * 'stdjrsResponseStatus' - -- | The response status code.
+startTopicsDetectionJobResponse
+ :: Int -- ^ 'stdjrsResponseStatus'
+ -> StartTopicsDetectionJobResponse
+startTopicsDetectionJobResponse pResponseStatus_ =
+ StartTopicsDetectionJobResponse'
+ { _stdjrsJobId = Nothing
+ , _stdjrsJobStatus = Nothing
+ , _stdjrsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The identifier generated for the job. To get the status of the job, use this identifier with the @DescribeTopicDetectionJob@ operation.
+stdjrsJobId :: Lens' StartTopicsDetectionJobResponse (Maybe Text)
+stdjrsJobId = lens _stdjrsJobId (\ s a -> s{_stdjrsJobId = a})
+
+-- | The status of the job: * SUBMITTED - The job has been received and is queued for processing. * IN_PROGRESS - Amazon Comprehend is processing the job. * COMPLETED - The job was successfully completed and the output is available. * FAILED - The job did not complete. To get details, use the @DescribeTopicDetectionJob@ operation.
+stdjrsJobStatus :: Lens' StartTopicsDetectionJobResponse (Maybe JobStatus)
+stdjrsJobStatus = lens _stdjrsJobStatus (\ s a -> s{_stdjrsJobStatus = a})
+
+-- | -- | The response status code.
+stdjrsResponseStatus :: Lens' StartTopicsDetectionJobResponse Int
+stdjrsResponseStatus = lens _stdjrsResponseStatus (\ s a -> s{_stdjrsResponseStatus = a})
+
+instance NFData StartTopicsDetectionJobResponse where
diff --git a/gen/Network/AWS/Comprehend/Types.hs b/gen/Network/AWS/Comprehend/Types.hs
new file mode 100644
index 0000000..6990ff9
--- /dev/null
+++ b/gen/Network/AWS/Comprehend/Types.hs
@@ -0,0 +1,244 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend.Types
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.AWS.Comprehend.Types
+ (
+ -- * Service Configuration
+ comprehend
+
+ -- * Errors
+ , _InvalidRequestException
+ , _TooManyRequestsException
+ , _InternalServerException
+ , _BatchSizeLimitExceededException
+ , _UnsupportedLanguageException
+ , _JobNotFoundException
+ , _InvalidFilterException
+ , _TextSizeLimitExceededException
+
+ -- * EntityType
+ , EntityType (..)
+
+ -- * InputFormat
+ , InputFormat (..)
+
+ -- * JobStatus
+ , JobStatus (..)
+
+ -- * LanguageCode
+ , LanguageCode (..)
+
+ -- * SentimentType
+ , SentimentType (..)
+
+ -- * BatchDetectDominantLanguageItemResult
+ , BatchDetectDominantLanguageItemResult
+ , batchDetectDominantLanguageItemResult
+ , bddlirLanguages
+ , bddlirIndex
+
+ -- * BatchDetectEntitiesItemResult
+ , BatchDetectEntitiesItemResult
+ , batchDetectEntitiesItemResult
+ , bdeirEntities
+ , bdeirIndex
+
+ -- * BatchDetectKeyPhrasesItemResult
+ , BatchDetectKeyPhrasesItemResult
+ , batchDetectKeyPhrasesItemResult
+ , bdkpirIndex
+ , bdkpirKeyPhrases
+
+ -- * BatchDetectSentimentItemResult
+ , BatchDetectSentimentItemResult
+ , batchDetectSentimentItemResult
+ , bdsirSentiment
+ , bdsirSentimentScore
+ , bdsirIndex
+
+ -- * BatchItemError
+ , BatchItemError
+ , batchItemError
+ , bieErrorCode
+ , bieErrorMessage
+ , bieIndex
+
+ -- * DominantLanguage
+ , DominantLanguage
+ , dominantLanguage
+ , dlLanguageCode
+ , dlScore
+
+ -- * Entity
+ , Entity
+ , entity
+ , eBeginOffset
+ , eText
+ , eScore
+ , eEndOffset
+ , eType
+
+ -- * InputDataConfig
+ , InputDataConfig
+ , inputDataConfig
+ , idcInputFormat
+ , idcS3URI
+
+ -- * KeyPhrase
+ , KeyPhrase
+ , keyPhrase
+ , kpBeginOffset
+ , kpText
+ , kpScore
+ , kpEndOffset
+
+ -- * OutputDataConfig
+ , OutputDataConfig
+ , outputDataConfig
+ , odcS3URI
+
+ -- * SentimentScore
+ , SentimentScore
+ , sentimentScore
+ , ssMixed
+ , ssNegative
+ , ssNeutral
+ , ssPositive
+
+ -- * TopicsDetectionJobFilter
+ , TopicsDetectionJobFilter
+ , topicsDetectionJobFilter
+ , tdjfSubmitTimeAfter
+ , tdjfSubmitTimeBefore
+ , tdjfJobName
+ , tdjfJobStatus
+
+ -- * TopicsDetectionJobProperties
+ , TopicsDetectionJobProperties
+ , topicsDetectionJobProperties
+ , tdjpJobId
+ , tdjpJobName
+ , tdjpInputDataConfig
+ , tdjpEndTime
+ , tdjpOutputDataConfig
+ , tdjpNumberOfTopics
+ , tdjpJobStatus
+ , tdjpMessage
+ , tdjpSubmitTime
+ ) where
+
+import Network.AWS.Comprehend.Types.Product
+import Network.AWS.Comprehend.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Sign.V4
+
+-- | API version @2017-11-27@ of the Amazon Comprehend SDK configuration.
+comprehend :: Service
+comprehend =
+ Service
+ { _svcAbbrev = "Comprehend"
+ , _svcSigner = v4
+ , _svcPrefix = "comprehend"
+ , _svcVersion = "2017-11-27"
+ , _svcEndpoint = defaultEndpoint comprehend
+ , _svcTimeout = Just 70
+ , _svcCheck = statusSuccess
+ , _svcError = parseJSONError "Comprehend"
+ , _svcRetry = retry
+ }
+ where
+ retry =
+ Exponential
+ { _retryBase = 5.0e-2
+ , _retryGrowth = 2
+ , _retryAttempts = 5
+ , _retryCheck = check
+ }
+ check e
+ | has (hasCode "ThrottledException" . hasStatus 400) e =
+ Just "throttled_exception"
+ | has (hasStatus 429) e = Just "too_many_requests"
+ | has (hasCode "ThrottlingException" . hasStatus 400) e =
+ Just "throttling_exception"
+ | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
+ | has (hasStatus 504) e = Just "gateway_timeout"
+ | has (hasCode "RequestThrottledException" . hasStatus 400) e =
+ Just "request_throttled_exception"
+ | has (hasStatus 502) e = Just "bad_gateway"
+ | has (hasStatus 503) e = Just "service_unavailable"
+ | has (hasStatus 500) e = Just "general_server_error"
+ | has (hasStatus 509) e = Just "limit_exceeded"
+ | otherwise = Nothing
+
+
+-- | The request is invalid.
+--
+--
+_InvalidRequestException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidRequestException =
+ _MatchServiceError comprehend "InvalidRequestException"
+
+
+-- | The number of requests exceeds the limit. Resubmit your request later.
+--
+--
+_TooManyRequestsException :: AsError a => Getting (First ServiceError) a ServiceError
+_TooManyRequestsException =
+ _MatchServiceError comprehend "TooManyRequestsException"
+
+
+-- | An internal server error occurred. Retry your request.
+--
+--
+_InternalServerException :: AsError a => Getting (First ServiceError) a ServiceError
+_InternalServerException =
+ _MatchServiceError comprehend "InternalServerException"
+
+
+-- | The number of documents in the request exceeds the limit of 25. Try your request again with fewer documents.
+--
+--
+_BatchSizeLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+_BatchSizeLimitExceededException =
+ _MatchServiceError comprehend "BatchSizeLimitExceededException"
+
+
+-- | Amazon Comprehend can't process the language of the input text. For all APIs except @DetectDominantLanguage@ , Amazon Comprehend accepts only English or Spanish text. For the @DetectDominantLanguage@ API, Amazon Comprehend detects 100 languages. For a list of languages, see 'how-languages'
+--
+--
+_UnsupportedLanguageException :: AsError a => Getting (First ServiceError) a ServiceError
+_UnsupportedLanguageException =
+ _MatchServiceError comprehend "UnsupportedLanguageException"
+
+
+-- | The specified job was not found. Check the job ID and try again.
+--
+--
+_JobNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
+_JobNotFoundException = _MatchServiceError comprehend "JobNotFoundException"
+
+
+-- | The filter specified for the @ListTopicDetectionJobs@ operation is invalid. Specify a different filter.
+--
+--
+_InvalidFilterException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidFilterException = _MatchServiceError comprehend "InvalidFilterException"
+
+
+-- | The size of the input text exceeds the limit. Use a smaller document.
+--
+--
+_TextSizeLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+_TextSizeLimitExceededException =
+ _MatchServiceError comprehend "TextSizeLimitExceededException"
+
diff --git a/gen/Network/AWS/Comprehend/Types/Product.hs b/gen/Network/AWS/Comprehend/Types/Product.hs
new file mode 100644
index 0000000..bc9a1f8
--- /dev/null
+++ b/gen/Network/AWS/Comprehend/Types/Product.hs
@@ -0,0 +1,780 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend.Types.Product
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.AWS.Comprehend.Types.Product where
+
+import Network.AWS.Comprehend.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+
+-- | The result of calling the operation. The operation returns one object for each document that is successfully processed by the operation.
+--
+--
+--
+-- /See:/ 'batchDetectDominantLanguageItemResult' smart constructor.
+data BatchDetectDominantLanguageItemResult = BatchDetectDominantLanguageItemResult'
+ { _bddlirLanguages :: !(Maybe [DominantLanguage])
+ , _bddlirIndex :: !(Maybe Int)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetectDominantLanguageItemResult' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bddlirLanguages' - One or more 'DominantLanguage' objects describing the dominant languages in the document.
+--
+-- * 'bddlirIndex' - The zero-based index of the document in the input list.
+batchDetectDominantLanguageItemResult
+ :: BatchDetectDominantLanguageItemResult
+batchDetectDominantLanguageItemResult =
+ BatchDetectDominantLanguageItemResult'
+ {_bddlirLanguages = Nothing, _bddlirIndex = Nothing}
+
+
+-- | One or more 'DominantLanguage' objects describing the dominant languages in the document.
+bddlirLanguages :: Lens' BatchDetectDominantLanguageItemResult [DominantLanguage]
+bddlirLanguages = lens _bddlirLanguages (\ s a -> s{_bddlirLanguages = a}) . _Default . _Coerce
+
+-- | The zero-based index of the document in the input list.
+bddlirIndex :: Lens' BatchDetectDominantLanguageItemResult (Maybe Int)
+bddlirIndex = lens _bddlirIndex (\ s a -> s{_bddlirIndex = a})
+
+instance FromJSON
+ BatchDetectDominantLanguageItemResult
+ where
+ parseJSON
+ = withObject "BatchDetectDominantLanguageItemResult"
+ (\ x ->
+ BatchDetectDominantLanguageItemResult' <$>
+ (x .:? "Languages" .!= mempty) <*> (x .:? "Index"))
+
+instance Hashable
+ BatchDetectDominantLanguageItemResult
+ where
+
+instance NFData BatchDetectDominantLanguageItemResult
+ where
+
+-- | The result of calling the operation. The operation returns one object for each document that is successfully processed by the operation.
+--
+--
+--
+-- /See:/ 'batchDetectEntitiesItemResult' smart constructor.
+data BatchDetectEntitiesItemResult = BatchDetectEntitiesItemResult'
+ { _bdeirEntities :: !(Maybe [Entity])
+ , _bdeirIndex :: !(Maybe Int)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetectEntitiesItemResult' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdeirEntities' - One or more 'Entity' objects, one for each entity detected in the document.
+--
+-- * 'bdeirIndex' - The zero-based index of the document in the input list.
+batchDetectEntitiesItemResult
+ :: BatchDetectEntitiesItemResult
+batchDetectEntitiesItemResult =
+ BatchDetectEntitiesItemResult'
+ {_bdeirEntities = Nothing, _bdeirIndex = Nothing}
+
+
+-- | One or more 'Entity' objects, one for each entity detected in the document.
+bdeirEntities :: Lens' BatchDetectEntitiesItemResult [Entity]
+bdeirEntities = lens _bdeirEntities (\ s a -> s{_bdeirEntities = a}) . _Default . _Coerce
+
+-- | The zero-based index of the document in the input list.
+bdeirIndex :: Lens' BatchDetectEntitiesItemResult (Maybe Int)
+bdeirIndex = lens _bdeirIndex (\ s a -> s{_bdeirIndex = a})
+
+instance FromJSON BatchDetectEntitiesItemResult where
+ parseJSON
+ = withObject "BatchDetectEntitiesItemResult"
+ (\ x ->
+ BatchDetectEntitiesItemResult' <$>
+ (x .:? "Entities" .!= mempty) <*> (x .:? "Index"))
+
+instance Hashable BatchDetectEntitiesItemResult where
+
+instance NFData BatchDetectEntitiesItemResult where
+
+-- | The result of calling the operation. The operation returns one object for each document that is successfully processed by the operation.
+--
+--
+--
+-- /See:/ 'batchDetectKeyPhrasesItemResult' smart constructor.
+data BatchDetectKeyPhrasesItemResult = BatchDetectKeyPhrasesItemResult'
+ { _bdkpirIndex :: !(Maybe Int)
+ , _bdkpirKeyPhrases :: !(Maybe [KeyPhrase])
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetectKeyPhrasesItemResult' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdkpirIndex' - The zero-based index of the document in the input list.
+--
+-- * 'bdkpirKeyPhrases' - One or more 'KeyPhrase' objects, one for each key phrase detected in the document.
+batchDetectKeyPhrasesItemResult
+ :: BatchDetectKeyPhrasesItemResult
+batchDetectKeyPhrasesItemResult =
+ BatchDetectKeyPhrasesItemResult'
+ {_bdkpirIndex = Nothing, _bdkpirKeyPhrases = Nothing}
+
+
+-- | The zero-based index of the document in the input list.
+bdkpirIndex :: Lens' BatchDetectKeyPhrasesItemResult (Maybe Int)
+bdkpirIndex = lens _bdkpirIndex (\ s a -> s{_bdkpirIndex = a})
+
+-- | One or more 'KeyPhrase' objects, one for each key phrase detected in the document.
+bdkpirKeyPhrases :: Lens' BatchDetectKeyPhrasesItemResult [KeyPhrase]
+bdkpirKeyPhrases = lens _bdkpirKeyPhrases (\ s a -> s{_bdkpirKeyPhrases = a}) . _Default . _Coerce
+
+instance FromJSON BatchDetectKeyPhrasesItemResult
+ where
+ parseJSON
+ = withObject "BatchDetectKeyPhrasesItemResult"
+ (\ x ->
+ BatchDetectKeyPhrasesItemResult' <$>
+ (x .:? "Index") <*> (x .:? "KeyPhrases" .!= mempty))
+
+instance Hashable BatchDetectKeyPhrasesItemResult
+ where
+
+instance NFData BatchDetectKeyPhrasesItemResult where
+
+-- | The result of calling the operation. The operation returns one object for each document that is successfully processed by the operation.
+--
+--
+--
+-- /See:/ 'batchDetectSentimentItemResult' smart constructor.
+data BatchDetectSentimentItemResult = BatchDetectSentimentItemResult'
+ { _bdsirSentiment :: !(Maybe SentimentType)
+ , _bdsirSentimentScore :: !(Maybe SentimentScore)
+ , _bdsirIndex :: !(Maybe Int)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetectSentimentItemResult' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdsirSentiment' - The sentiment detected in the document.
+--
+-- * 'bdsirSentimentScore' - The level of confidence that Amazon Comprehend has in the accuracy of its sentiment detection.
+--
+-- * 'bdsirIndex' - The zero-based index of the document in the input list.
+batchDetectSentimentItemResult
+ :: BatchDetectSentimentItemResult
+batchDetectSentimentItemResult =
+ BatchDetectSentimentItemResult'
+ { _bdsirSentiment = Nothing
+ , _bdsirSentimentScore = Nothing
+ , _bdsirIndex = Nothing
+ }
+
+
+-- | The sentiment detected in the document.
+bdsirSentiment :: Lens' BatchDetectSentimentItemResult (Maybe SentimentType)
+bdsirSentiment = lens _bdsirSentiment (\ s a -> s{_bdsirSentiment = a})
+
+-- | The level of confidence that Amazon Comprehend has in the accuracy of its sentiment detection.
+bdsirSentimentScore :: Lens' BatchDetectSentimentItemResult (Maybe SentimentScore)
+bdsirSentimentScore = lens _bdsirSentimentScore (\ s a -> s{_bdsirSentimentScore = a})
+
+-- | The zero-based index of the document in the input list.
+bdsirIndex :: Lens' BatchDetectSentimentItemResult (Maybe Int)
+bdsirIndex = lens _bdsirIndex (\ s a -> s{_bdsirIndex = a})
+
+instance FromJSON BatchDetectSentimentItemResult
+ where
+ parseJSON
+ = withObject "BatchDetectSentimentItemResult"
+ (\ x ->
+ BatchDetectSentimentItemResult' <$>
+ (x .:? "Sentiment") <*> (x .:? "SentimentScore") <*>
+ (x .:? "Index"))
+
+instance Hashable BatchDetectSentimentItemResult
+ where
+
+instance NFData BatchDetectSentimentItemResult where
+
+-- | Describes an error that occurred while processing a document in a batch. The operation returns on @BatchItemError@ object for each document that contained an error.
+--
+--
+--
+-- /See:/ 'batchItemError' smart constructor.
+data BatchItemError = BatchItemError'
+ { _bieErrorCode :: !(Maybe Text)
+ , _bieErrorMessage :: !(Maybe Text)
+ , _bieIndex :: !(Maybe Int)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchItemError' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bieErrorCode' - The numeric error code of the error.
+--
+-- * 'bieErrorMessage' - A text description of the error.
+--
+-- * 'bieIndex' - The zero-based index of the document in the input list.
+batchItemError
+ :: BatchItemError
+batchItemError =
+ BatchItemError'
+ {_bieErrorCode = Nothing, _bieErrorMessage = Nothing, _bieIndex = Nothing}
+
+
+-- | The numeric error code of the error.
+bieErrorCode :: Lens' BatchItemError (Maybe Text)
+bieErrorCode = lens _bieErrorCode (\ s a -> s{_bieErrorCode = a})
+
+-- | A text description of the error.
+bieErrorMessage :: Lens' BatchItemError (Maybe Text)
+bieErrorMessage = lens _bieErrorMessage (\ s a -> s{_bieErrorMessage = a})
+
+-- | The zero-based index of the document in the input list.
+bieIndex :: Lens' BatchItemError (Maybe Int)
+bieIndex = lens _bieIndex (\ s a -> s{_bieIndex = a})
+
+instance FromJSON BatchItemError where
+ parseJSON
+ = withObject "BatchItemError"
+ (\ x ->
+ BatchItemError' <$>
+ (x .:? "ErrorCode") <*> (x .:? "ErrorMessage") <*>
+ (x .:? "Index"))
+
+instance Hashable BatchItemError where
+
+instance NFData BatchItemError where
+
+-- | Returns the code for the dominant language in the input text and the level of confidence that Amazon Comprehend has in the accuracy of the detection.
+--
+--
+--
+-- /See:/ 'dominantLanguage' smart constructor.
+data DominantLanguage = DominantLanguage'
+ { _dlLanguageCode :: !(Maybe Text)
+ , _dlScore :: !(Maybe Double)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DominantLanguage' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dlLanguageCode' - The RFC 5646 language code for the dominant language.
+--
+-- * 'dlScore' - The level of confidence that Amazon Comprehend has in the accuracy of the detection.
+dominantLanguage
+ :: DominantLanguage
+dominantLanguage =
+ DominantLanguage' {_dlLanguageCode = Nothing, _dlScore = Nothing}
+
+
+-- | The RFC 5646 language code for the dominant language.
+dlLanguageCode :: Lens' DominantLanguage (Maybe Text)
+dlLanguageCode = lens _dlLanguageCode (\ s a -> s{_dlLanguageCode = a})
+
+-- | The level of confidence that Amazon Comprehend has in the accuracy of the detection.
+dlScore :: Lens' DominantLanguage (Maybe Double)
+dlScore = lens _dlScore (\ s a -> s{_dlScore = a})
+
+instance FromJSON DominantLanguage where
+ parseJSON
+ = withObject "DominantLanguage"
+ (\ x ->
+ DominantLanguage' <$>
+ (x .:? "LanguageCode") <*> (x .:? "Score"))
+
+instance Hashable DominantLanguage where
+
+instance NFData DominantLanguage where
+
+-- | Provides information about an entity.
+--
+--
+--
+--
+--
+-- /See:/ 'entity' smart constructor.
+data Entity = Entity'
+ { _eBeginOffset :: !(Maybe Int)
+ , _eText :: !(Maybe Text)
+ , _eScore :: !(Maybe Double)
+ , _eEndOffset :: !(Maybe Int)
+ , _eType :: !(Maybe EntityType)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Entity' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eBeginOffset' - A character offset in the input text that shows where the entity begins (the first character is at position 0). The offset returns the position of each UTF-8 code point in the string. A /code point/ is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.
+--
+-- * 'eText' - The text of the entity.
+--
+-- * 'eScore' - The level of confidence that Amazon Comprehend has in the accuracy of the detection.
+--
+-- * 'eEndOffset' - A character offset in the input text that shows where the entity ends. The offset returns the position of each UTF-8 code point in the string. A /code point/ is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.
+--
+-- * 'eType' - The entity's type.
+entity
+ :: Entity
+entity =
+ Entity'
+ { _eBeginOffset = Nothing
+ , _eText = Nothing
+ , _eScore = Nothing
+ , _eEndOffset = Nothing
+ , _eType = Nothing
+ }
+
+
+-- | A character offset in the input text that shows where the entity begins (the first character is at position 0). The offset returns the position of each UTF-8 code point in the string. A /code point/ is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.
+eBeginOffset :: Lens' Entity (Maybe Int)
+eBeginOffset = lens _eBeginOffset (\ s a -> s{_eBeginOffset = a})
+
+-- | The text of the entity.
+eText :: Lens' Entity (Maybe Text)
+eText = lens _eText (\ s a -> s{_eText = a})
+
+-- | The level of confidence that Amazon Comprehend has in the accuracy of the detection.
+eScore :: Lens' Entity (Maybe Double)
+eScore = lens _eScore (\ s a -> s{_eScore = a})
+
+-- | A character offset in the input text that shows where the entity ends. The offset returns the position of each UTF-8 code point in the string. A /code point/ is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.
+eEndOffset :: Lens' Entity (Maybe Int)
+eEndOffset = lens _eEndOffset (\ s a -> s{_eEndOffset = a})
+
+-- | The entity's type.
+eType :: Lens' Entity (Maybe EntityType)
+eType = lens _eType (\ s a -> s{_eType = a})
+
+instance FromJSON Entity where
+ parseJSON
+ = withObject "Entity"
+ (\ x ->
+ Entity' <$>
+ (x .:? "BeginOffset") <*> (x .:? "Text") <*>
+ (x .:? "Score")
+ <*> (x .:? "EndOffset")
+ <*> (x .:? "Type"))
+
+instance Hashable Entity where
+
+instance NFData Entity where
+
+-- | The input properties for a topic detection job.
+--
+--
+--
+-- /See:/ 'inputDataConfig' smart constructor.
+data InputDataConfig = InputDataConfig'
+ { _idcInputFormat :: !(Maybe InputFormat)
+ , _idcS3URI :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'InputDataConfig' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'idcInputFormat' - Specifies how the text in an input file should be processed: * @ONE_DOC_PER_FILE@ - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. * @ONE_DOC_PER_LINE@ - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages.
+--
+-- * 'idcS3URI' - The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files. For example, if you use the URI @S3://bucketName/prefix@ , if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.
+inputDataConfig
+ :: Text -- ^ 'idcS3URI'
+ -> InputDataConfig
+inputDataConfig pS3URI_ =
+ InputDataConfig' {_idcInputFormat = Nothing, _idcS3URI = pS3URI_}
+
+
+-- | Specifies how the text in an input file should be processed: * @ONE_DOC_PER_FILE@ - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. * @ONE_DOC_PER_LINE@ - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages.
+idcInputFormat :: Lens' InputDataConfig (Maybe InputFormat)
+idcInputFormat = lens _idcInputFormat (\ s a -> s{_idcInputFormat = a})
+
+-- | The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files. For example, if you use the URI @S3://bucketName/prefix@ , if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.
+idcS3URI :: Lens' InputDataConfig Text
+idcS3URI = lens _idcS3URI (\ s a -> s{_idcS3URI = a})
+
+instance FromJSON InputDataConfig where
+ parseJSON
+ = withObject "InputDataConfig"
+ (\ x ->
+ InputDataConfig' <$>
+ (x .:? "InputFormat") <*> (x .: "S3Uri"))
+
+instance Hashable InputDataConfig where
+
+instance NFData InputDataConfig where
+
+instance ToJSON InputDataConfig where
+ toJSON InputDataConfig'{..}
+ = object
+ (catMaybes
+ [("InputFormat" .=) <$> _idcInputFormat,
+ Just ("S3Uri" .= _idcS3URI)])
+
+-- | Describes a key noun phrase.
+--
+--
+--
+-- /See:/ 'keyPhrase' smart constructor.
+data KeyPhrase = KeyPhrase'
+ { _kpBeginOffset :: !(Maybe Int)
+ , _kpText :: !(Maybe Text)
+ , _kpScore :: !(Maybe Double)
+ , _kpEndOffset :: !(Maybe Int)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'KeyPhrase' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'kpBeginOffset' - A character offset in the input text that shows where the key phrase begins (the first character is at position 0). The offset returns the position of each UTF-8 code point in the string. A /code point/ is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.
+--
+-- * 'kpText' - The text of a key noun phrase.
+--
+-- * 'kpScore' - The level of confidence that Amazon Comprehend has in the accuracy of the detection.
+--
+-- * 'kpEndOffset' - A character offset in the input text where the key phrase ends. The offset returns the position of each UTF-8 code point in the string. A @code point@ is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.
+keyPhrase
+ :: KeyPhrase
+keyPhrase =
+ KeyPhrase'
+ { _kpBeginOffset = Nothing
+ , _kpText = Nothing
+ , _kpScore = Nothing
+ , _kpEndOffset = Nothing
+ }
+
+
+-- | A character offset in the input text that shows where the key phrase begins (the first character is at position 0). The offset returns the position of each UTF-8 code point in the string. A /code point/ is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.
+kpBeginOffset :: Lens' KeyPhrase (Maybe Int)
+kpBeginOffset = lens _kpBeginOffset (\ s a -> s{_kpBeginOffset = a})
+
+-- | The text of a key noun phrase.
+kpText :: Lens' KeyPhrase (Maybe Text)
+kpText = lens _kpText (\ s a -> s{_kpText = a})
+
+-- | The level of confidence that Amazon Comprehend has in the accuracy of the detection.
+kpScore :: Lens' KeyPhrase (Maybe Double)
+kpScore = lens _kpScore (\ s a -> s{_kpScore = a})
+
+-- | A character offset in the input text where the key phrase ends. The offset returns the position of each UTF-8 code point in the string. A @code point@ is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.
+kpEndOffset :: Lens' KeyPhrase (Maybe Int)
+kpEndOffset = lens _kpEndOffset (\ s a -> s{_kpEndOffset = a})
+
+instance FromJSON KeyPhrase where
+ parseJSON
+ = withObject "KeyPhrase"
+ (\ x ->
+ KeyPhrase' <$>
+ (x .:? "BeginOffset") <*> (x .:? "Text") <*>
+ (x .:? "Score")
+ <*> (x .:? "EndOffset"))
+
+instance Hashable KeyPhrase where
+
+instance NFData KeyPhrase where
+
+-- | Provides configuration parameters for the output of topic detection jobs.
+--
+--
+--
+--
+--
+-- /See:/ 'outputDataConfig' smart constructor.
+newtype OutputDataConfig = OutputDataConfig'
+ { _odcS3URI :: Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'OutputDataConfig' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'odcS3URI' - The Amazon S3 URI where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The service creates an output file called @output.tar.gz@ . It is a compressed archive that contains two files, @topic-terms.csv@ that lists the terms associated with each topic, and @doc-topics.csv@ that lists the documents associated with each topic. For more information, see 'topic-modeling' .
+outputDataConfig
+ :: Text -- ^ 'odcS3URI'
+ -> OutputDataConfig
+outputDataConfig pS3URI_ = OutputDataConfig' {_odcS3URI = pS3URI_}
+
+
+-- | The Amazon S3 URI where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The service creates an output file called @output.tar.gz@ . It is a compressed archive that contains two files, @topic-terms.csv@ that lists the terms associated with each topic, and @doc-topics.csv@ that lists the documents associated with each topic. For more information, see 'topic-modeling' .
+odcS3URI :: Lens' OutputDataConfig Text
+odcS3URI = lens _odcS3URI (\ s a -> s{_odcS3URI = a})
+
+instance FromJSON OutputDataConfig where
+ parseJSON
+ = withObject "OutputDataConfig"
+ (\ x -> OutputDataConfig' <$> (x .: "S3Uri"))
+
+instance Hashable OutputDataConfig where
+
+instance NFData OutputDataConfig where
+
+instance ToJSON OutputDataConfig where
+ toJSON OutputDataConfig'{..}
+ = object (catMaybes [Just ("S3Uri" .= _odcS3URI)])
+
+-- | Describes the level of confidence that Amazon Comprehend has in the accuracy of its detection of sentiments.
+--
+--
+--
+-- /See:/ 'sentimentScore' smart constructor.
+data SentimentScore = SentimentScore'
+ { _ssMixed :: !(Maybe Double)
+ , _ssNegative :: !(Maybe Double)
+ , _ssNeutral :: !(Maybe Double)
+ , _ssPositive :: !(Maybe Double)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'SentimentScore' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ssMixed' - The level of confidence that Amazon Comprehend has in the accuracy of its detection of the @MIXED@ sentiment.
+--
+-- * 'ssNegative' - The level of confidence that Amazon Comprehend has in the accuracy of its detection of the @NEGATIVE@ sentiment.
+--
+-- * 'ssNeutral' - The level of confidence that Amazon Comprehend has in the accuracy of its detection of the @NEUTRAL@ sentiment.
+--
+-- * 'ssPositive' - The level of confidence that Amazon Comprehend has in the accuracy of its detection of the @POSITIVE@ sentiment.
+sentimentScore
+ :: SentimentScore
+sentimentScore =
+ SentimentScore'
+ { _ssMixed = Nothing
+ , _ssNegative = Nothing
+ , _ssNeutral = Nothing
+ , _ssPositive = Nothing
+ }
+
+
+-- | The level of confidence that Amazon Comprehend has in the accuracy of its detection of the @MIXED@ sentiment.
+ssMixed :: Lens' SentimentScore (Maybe Double)
+ssMixed = lens _ssMixed (\ s a -> s{_ssMixed = a})
+
+-- | The level of confidence that Amazon Comprehend has in the accuracy of its detection of the @NEGATIVE@ sentiment.
+ssNegative :: Lens' SentimentScore (Maybe Double)
+ssNegative = lens _ssNegative (\ s a -> s{_ssNegative = a})
+
+-- | The level of confidence that Amazon Comprehend has in the accuracy of its detection of the @NEUTRAL@ sentiment.
+ssNeutral :: Lens' SentimentScore (Maybe Double)
+ssNeutral = lens _ssNeutral (\ s a -> s{_ssNeutral = a})
+
+-- | The level of confidence that Amazon Comprehend has in the accuracy of its detection of the @POSITIVE@ sentiment.
+ssPositive :: Lens' SentimentScore (Maybe Double)
+ssPositive = lens _ssPositive (\ s a -> s{_ssPositive = a})
+
+instance FromJSON SentimentScore where
+ parseJSON
+ = withObject "SentimentScore"
+ (\ x ->
+ SentimentScore' <$>
+ (x .:? "Mixed") <*> (x .:? "Negative") <*>
+ (x .:? "Neutral")
+ <*> (x .:? "Positive"))
+
+instance Hashable SentimentScore where
+
+instance NFData SentimentScore where
+
+-- | Provides information for filtering topic detection jobs. For more information, see .
+--
+--
+--
+-- /See:/ 'topicsDetectionJobFilter' smart constructor.
+data TopicsDetectionJobFilter = TopicsDetectionJobFilter'
+ { _tdjfSubmitTimeAfter :: !(Maybe POSIX)
+ , _tdjfSubmitTimeBefore :: !(Maybe POSIX)
+ , _tdjfJobName :: !(Maybe Text)
+ , _tdjfJobStatus :: !(Maybe JobStatus)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'TopicsDetectionJobFilter' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tdjfSubmitTimeAfter' - Filters the list of jobs based on the time that the job was submitted for processing. Only returns jobs submitted after the specified time. Jobs are returned in ascending order, oldest to newest.
+--
+-- * 'tdjfSubmitTimeBefore' - Filters the list of jobs based on the time that the job was submitted for processing. Only returns jobs submitted before the specified time. Jobs are returned in descending order, newest to oldest.
+--
+-- * 'tdjfJobName' -
+--
+-- * 'tdjfJobStatus' - Filters the list of topic detection jobs based on job status. Returns only jobs with the specified status.
+topicsDetectionJobFilter
+ :: TopicsDetectionJobFilter
+topicsDetectionJobFilter =
+ TopicsDetectionJobFilter'
+ { _tdjfSubmitTimeAfter = Nothing
+ , _tdjfSubmitTimeBefore = Nothing
+ , _tdjfJobName = Nothing
+ , _tdjfJobStatus = Nothing
+ }
+
+
+-- | Filters the list of jobs based on the time that the job was submitted for processing. Only returns jobs submitted after the specified time. Jobs are returned in ascending order, oldest to newest.
+tdjfSubmitTimeAfter :: Lens' TopicsDetectionJobFilter (Maybe UTCTime)
+tdjfSubmitTimeAfter = lens _tdjfSubmitTimeAfter (\ s a -> s{_tdjfSubmitTimeAfter = a}) . mapping _Time
+
+-- | Filters the list of jobs based on the time that the job was submitted for processing. Only returns jobs submitted before the specified time. Jobs are returned in descending order, newest to oldest.
+tdjfSubmitTimeBefore :: Lens' TopicsDetectionJobFilter (Maybe UTCTime)
+tdjfSubmitTimeBefore = lens _tdjfSubmitTimeBefore (\ s a -> s{_tdjfSubmitTimeBefore = a}) . mapping _Time
+
+-- |
+tdjfJobName :: Lens' TopicsDetectionJobFilter (Maybe Text)
+tdjfJobName = lens _tdjfJobName (\ s a -> s{_tdjfJobName = a})
+
+-- | Filters the list of topic detection jobs based on job status. Returns only jobs with the specified status.
+tdjfJobStatus :: Lens' TopicsDetectionJobFilter (Maybe JobStatus)
+tdjfJobStatus = lens _tdjfJobStatus (\ s a -> s{_tdjfJobStatus = a})
+
+instance Hashable TopicsDetectionJobFilter where
+
+instance NFData TopicsDetectionJobFilter where
+
+instance ToJSON TopicsDetectionJobFilter where
+ toJSON TopicsDetectionJobFilter'{..}
+ = object
+ (catMaybes
+ [("SubmitTimeAfter" .=) <$> _tdjfSubmitTimeAfter,
+ ("SubmitTimeBefore" .=) <$> _tdjfSubmitTimeBefore,
+ ("JobName" .=) <$> _tdjfJobName,
+ ("JobStatus" .=) <$> _tdjfJobStatus])
+
+-- | Provides information about a topic detection job.
+--
+--
+--
+-- /See:/ 'topicsDetectionJobProperties' smart constructor.
+data TopicsDetectionJobProperties = TopicsDetectionJobProperties'
+ { _tdjpJobId :: !(Maybe Text)
+ , _tdjpJobName :: !(Maybe Text)
+ , _tdjpInputDataConfig :: !(Maybe InputDataConfig)
+ , _tdjpEndTime :: !(Maybe POSIX)
+ , _tdjpOutputDataConfig :: !(Maybe OutputDataConfig)
+ , _tdjpNumberOfTopics :: !(Maybe Int)
+ , _tdjpJobStatus :: !(Maybe JobStatus)
+ , _tdjpMessage :: !(Maybe Text)
+ , _tdjpSubmitTime :: !(Maybe POSIX)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'TopicsDetectionJobProperties' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tdjpJobId' - The identifier assigned to the topic detection job.
+--
+-- * 'tdjpJobName' - The name of the topic detection job.
+--
+-- * 'tdjpInputDataConfig' - The input data configuration supplied when you created the topic detection job.
+--
+-- * 'tdjpEndTime' - The time that the topic detection job was completed.
+--
+-- * 'tdjpOutputDataConfig' - The output data configuration supplied when you created the topic detection job.
+--
+-- * 'tdjpNumberOfTopics' - The number of topics to detect supplied when you created the topic detection job. The default is 10.
+--
+-- * 'tdjpJobStatus' - The current status of the topic detection job. If the status is @Failed@ , the reason for the failure is shown in the @Message@ field.
+--
+-- * 'tdjpMessage' - A description for the status of a job.
+--
+-- * 'tdjpSubmitTime' - The time that the topic detection job was submitted for processing.
+topicsDetectionJobProperties
+ :: TopicsDetectionJobProperties
+topicsDetectionJobProperties =
+ TopicsDetectionJobProperties'
+ { _tdjpJobId = Nothing
+ , _tdjpJobName = Nothing
+ , _tdjpInputDataConfig = Nothing
+ , _tdjpEndTime = Nothing
+ , _tdjpOutputDataConfig = Nothing
+ , _tdjpNumberOfTopics = Nothing
+ , _tdjpJobStatus = Nothing
+ , _tdjpMessage = Nothing
+ , _tdjpSubmitTime = Nothing
+ }
+
+
+-- | The identifier assigned to the topic detection job.
+tdjpJobId :: Lens' TopicsDetectionJobProperties (Maybe Text)
+tdjpJobId = lens _tdjpJobId (\ s a -> s{_tdjpJobId = a})
+
+-- | The name of the topic detection job.
+tdjpJobName :: Lens' TopicsDetectionJobProperties (Maybe Text)
+tdjpJobName = lens _tdjpJobName (\ s a -> s{_tdjpJobName = a})
+
+-- | The input data configuration supplied when you created the topic detection job.
+tdjpInputDataConfig :: Lens' TopicsDetectionJobProperties (Maybe InputDataConfig)
+tdjpInputDataConfig = lens _tdjpInputDataConfig (\ s a -> s{_tdjpInputDataConfig = a})
+
+-- | The time that the topic detection job was completed.
+tdjpEndTime :: Lens' TopicsDetectionJobProperties (Maybe UTCTime)
+tdjpEndTime = lens _tdjpEndTime (\ s a -> s{_tdjpEndTime = a}) . mapping _Time
+
+-- | The output data configuration supplied when you created the topic detection job.
+tdjpOutputDataConfig :: Lens' TopicsDetectionJobProperties (Maybe OutputDataConfig)
+tdjpOutputDataConfig = lens _tdjpOutputDataConfig (\ s a -> s{_tdjpOutputDataConfig = a})
+
+-- | The number of topics to detect supplied when you created the topic detection job. The default is 10.
+tdjpNumberOfTopics :: Lens' TopicsDetectionJobProperties (Maybe Int)
+tdjpNumberOfTopics = lens _tdjpNumberOfTopics (\ s a -> s{_tdjpNumberOfTopics = a})
+
+-- | The current status of the topic detection job. If the status is @Failed@ , the reason for the failure is shown in the @Message@ field.
+tdjpJobStatus :: Lens' TopicsDetectionJobProperties (Maybe JobStatus)
+tdjpJobStatus = lens _tdjpJobStatus (\ s a -> s{_tdjpJobStatus = a})
+
+-- | A description for the status of a job.
+tdjpMessage :: Lens' TopicsDetectionJobProperties (Maybe Text)
+tdjpMessage = lens _tdjpMessage (\ s a -> s{_tdjpMessage = a})
+
+-- | The time that the topic detection job was submitted for processing.
+tdjpSubmitTime :: Lens' TopicsDetectionJobProperties (Maybe UTCTime)
+tdjpSubmitTime = lens _tdjpSubmitTime (\ s a -> s{_tdjpSubmitTime = a}) . mapping _Time
+
+instance FromJSON TopicsDetectionJobProperties where
+ parseJSON
+ = withObject "TopicsDetectionJobProperties"
+ (\ x ->
+ TopicsDetectionJobProperties' <$>
+ (x .:? "JobId") <*> (x .:? "JobName") <*>
+ (x .:? "InputDataConfig")
+ <*> (x .:? "EndTime")
+ <*> (x .:? "OutputDataConfig")
+ <*> (x .:? "NumberOfTopics")
+ <*> (x .:? "JobStatus")
+ <*> (x .:? "Message")
+ <*> (x .:? "SubmitTime"))
+
+instance Hashable TopicsDetectionJobProperties where
+
+instance NFData TopicsDetectionJobProperties where
diff --git a/gen/Network/AWS/Comprehend/Types/Sum.hs b/gen/Network/AWS/Comprehend/Types/Sum.hs
new file mode 100644
index 0000000..832e603
--- /dev/null
+++ b/gen/Network/AWS/Comprehend/Types/Sum.hs
@@ -0,0 +1,194 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend.Types.Sum
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.AWS.Comprehend.Types.Sum where
+
+import Network.AWS.Prelude
+
+data EntityType
+ = CommercialItem
+ | Date
+ | Event
+ | Location
+ | Organization
+ | Other
+ | Person
+ | Quantity
+ | Title
+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
+
+instance FromText EntityType where
+ parser = takeLowerText >>= \case
+ "commercial_item" -> pure CommercialItem
+ "date" -> pure Date
+ "event" -> pure Event
+ "location" -> pure Location
+ "organization" -> pure Organization
+ "other" -> pure Other
+ "person" -> pure Person
+ "quantity" -> pure Quantity
+ "title" -> pure Title
+ e -> fromTextError $ "Failure parsing EntityType from value: '" <> e
+ <> "'. Accepted values: commercial_item, date, event, location, organization, other, person, quantity, title"
+
+instance ToText EntityType where
+ toText = \case
+ CommercialItem -> "COMMERCIAL_ITEM"
+ Date -> "DATE"
+ Event -> "EVENT"
+ Location -> "LOCATION"
+ Organization -> "ORGANIZATION"
+ Other -> "OTHER"
+ Person -> "PERSON"
+ Quantity -> "QUANTITY"
+ Title -> "TITLE"
+
+instance Hashable EntityType
+instance NFData EntityType
+instance ToByteString EntityType
+instance ToQuery EntityType
+instance ToHeader EntityType
+
+instance FromJSON EntityType where
+ parseJSON = parseJSONText "EntityType"
+
+data InputFormat
+ = OneDocPerFile
+ | OneDocPerLine
+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
+
+instance FromText InputFormat where
+ parser = takeLowerText >>= \case
+ "one_doc_per_file" -> pure OneDocPerFile
+ "one_doc_per_line" -> pure OneDocPerLine
+ e -> fromTextError $ "Failure parsing InputFormat from value: '" <> e
+ <> "'. Accepted values: one_doc_per_file, one_doc_per_line"
+
+instance ToText InputFormat where
+ toText = \case
+ OneDocPerFile -> "ONE_DOC_PER_FILE"
+ OneDocPerLine -> "ONE_DOC_PER_LINE"
+
+instance Hashable InputFormat
+instance NFData InputFormat
+instance ToByteString InputFormat
+instance ToQuery InputFormat
+instance ToHeader InputFormat
+
+instance ToJSON InputFormat where
+ toJSON = toJSONText
+
+instance FromJSON InputFormat where
+ parseJSON = parseJSONText "InputFormat"
+
+data JobStatus
+ = Completed
+ | Failed
+ | InProgress
+ | Submitted
+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
+
+instance FromText JobStatus where
+ parser = takeLowerText >>= \case
+ "completed" -> pure Completed
+ "failed" -> pure Failed
+ "in_progress" -> pure InProgress
+ "submitted" -> pure Submitted
+ e -> fromTextError $ "Failure parsing JobStatus from value: '" <> e
+ <> "'. Accepted values: completed, failed, in_progress, submitted"
+
+instance ToText JobStatus where
+ toText = \case
+ Completed -> "COMPLETED"
+ Failed -> "FAILED"
+ InProgress -> "IN_PROGRESS"
+ Submitted -> "SUBMITTED"
+
+instance Hashable JobStatus
+instance NFData JobStatus
+instance ToByteString JobStatus
+instance ToQuery JobStatus
+instance ToHeader JobStatus
+
+instance ToJSON JobStatus where
+ toJSON = toJSONText
+
+instance FromJSON JobStatus where
+ parseJSON = parseJSONText "JobStatus"
+
+data LanguageCode
+ = EN
+ | ES
+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
+
+instance FromText LanguageCode where
+ parser = takeLowerText >>= \case
+ "en" -> pure EN
+ "es" -> pure ES
+ e -> fromTextError $ "Failure parsing LanguageCode from value: '" <> e
+ <> "'. Accepted values: en, es"
+
+instance ToText LanguageCode where
+ toText = \case
+ EN -> "en"
+ ES -> "es"
+
+instance Hashable LanguageCode
+instance NFData LanguageCode
+instance ToByteString LanguageCode
+instance ToQuery LanguageCode
+instance ToHeader LanguageCode
+
+instance ToJSON LanguageCode where
+ toJSON = toJSONText
+
+data SentimentType
+ = Mixed
+ | Negative
+ | Neutral
+ | Positive
+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
+
+instance FromText SentimentType where
+ parser = takeLowerText >>= \case
+ "mixed" -> pure Mixed
+ "negative" -> pure Negative
+ "neutral" -> pure Neutral
+ "positive" -> pure Positive
+ e -> fromTextError $ "Failure parsing SentimentType from value: '" <> e
+ <> "'. Accepted values: mixed, negative, neutral, positive"
+
+instance ToText SentimentType where
+ toText = \case
+ Mixed -> "MIXED"
+ Negative -> "NEGATIVE"
+ Neutral -> "NEUTRAL"
+ Positive -> "POSITIVE"
+
+instance Hashable SentimentType
+instance NFData SentimentType
+instance ToByteString SentimentType
+instance ToQuery SentimentType
+instance ToHeader SentimentType
+
+instance FromJSON SentimentType where
+ parseJSON = parseJSONText "SentimentType"
diff --git a/gen/Network/AWS/Comprehend/Waiters.hs b/gen/Network/AWS/Comprehend/Waiters.hs
new file mode 100644
index 0000000..9b96dbc
--- /dev/null
+++ b/gen/Network/AWS/Comprehend/Waiters.hs
@@ -0,0 +1,21 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.Comprehend.Waiters
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.AWS.Comprehend.Waiters where
+
+import Network.AWS.Comprehend.Types
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Waiter
diff --git a/test/Main.hs b/test/Main.hs
new file mode 100644
index 0000000..fcb73e8
--- /dev/null
+++ b/test/Main.hs
@@ -0,0 +1,21 @@
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module : Main
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Main (main) where
+
+import Test.Tasty
+import Test.AWS.Comprehend
+import Test.AWS.Comprehend.Internal
+
+main :: IO ()
+main = defaultMain $ testGroup "Comprehend"
+ [ testGroup "tests" tests
+ , testGroup "fixtures" fixtures
+ ]
diff --git a/test/Test/AWS/Comprehend.hs b/test/Test/AWS/Comprehend.hs
new file mode 100644
index 0000000..927a8b3
--- /dev/null
+++ b/test/Test/AWS/Comprehend.hs
@@ -0,0 +1,20 @@
+-- |
+-- Module : Test.AWS.Comprehend
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Test.AWS.Comprehend
+ ( tests
+ , fixtures
+ ) where
+
+import Test.Tasty (TestTree)
+
+tests :: [TestTree]
+tests = []
+
+fixtures :: [TestTree]
+fixtures = []
diff --git a/test/Test/AWS/Comprehend/Internal.hs b/test/Test/AWS/Comprehend/Internal.hs
new file mode 100644
index 0000000..c1bece9
--- /dev/null
+++ b/test/Test/AWS/Comprehend/Internal.hs
@@ -0,0 +1,9 @@
+-- |
+-- Module : Test.AWS.Comprehend.Internal
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Test.AWS.Comprehend.Internal where
diff --git a/test/Test/AWS/Gen/Comprehend.hs b/test/Test/AWS/Gen/Comprehend.hs
new file mode 100644
index 0000000..6f862ba
--- /dev/null
+++ b/test/Test/AWS/Gen/Comprehend.hs
@@ -0,0 +1,237 @@
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Test.AWS.Gen.Comprehend
+-- Copyright : (c) 2013-2018 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Test.AWS.Gen.Comprehend where
+
+import Data.Proxy
+import Network.AWS.Comprehend
+import Test.AWS.Comprehend.Internal
+import Test.AWS.Fixture
+import Test.AWS.Prelude
+import Test.Tasty
+
+-- Auto-generated: the actual test selection needs to be manually placed into
+-- the top-level so that real test data can be incrementally added.
+--
+-- This commented snippet is what the entire set should look like:
+
+-- fixtures :: TestTree
+-- fixtures =
+-- [ testGroup "request"
+-- [ requestBatchDetectSentiment $
+-- batchDetectSentiment
+--
+-- , requestStartTopicsDetectionJob $
+-- startTopicsDetectionJob
+--
+-- , requestBatchDetectKeyPhrases $
+-- batchDetectKeyPhrases
+--
+-- , requestDetectSentiment $
+-- detectSentiment
+--
+-- , requestBatchDetectEntities $
+-- batchDetectEntities
+--
+-- , requestDetectDominantLanguage $
+-- detectDominantLanguage
+--
+-- , requestDescribeTopicsDetectionJob $
+-- describeTopicsDetectionJob
+--
+-- , requestDetectEntities $
+-- detectEntities
+--
+-- , requestListTopicsDetectionJobs $
+-- listTopicsDetectionJobs
+--
+-- , requestBatchDetectDominantLanguage $
+-- batchDetectDominantLanguage
+--
+-- , requestDetectKeyPhrases $
+-- detectKeyPhrases
+--
+-- ]
+
+-- , testGroup "response"
+-- [ responseBatchDetectSentiment $
+-- batchDetectSentimentResponse
+--
+-- , responseStartTopicsDetectionJob $
+-- startTopicsDetectionJobResponse
+--
+-- , responseBatchDetectKeyPhrases $
+-- batchDetectKeyPhrasesResponse
+--
+-- , responseDetectSentiment $
+-- detectSentimentResponse
+--
+-- , responseBatchDetectEntities $
+-- batchDetectEntitiesResponse
+--
+-- , responseDetectDominantLanguage $
+-- detectDominantLanguageResponse
+--
+-- , responseDescribeTopicsDetectionJob $
+-- describeTopicsDetectionJobResponse
+--
+-- , responseDetectEntities $
+-- detectEntitiesResponse
+--
+-- , responseListTopicsDetectionJobs $
+-- listTopicsDetectionJobsResponse
+--
+-- , responseBatchDetectDominantLanguage $
+-- batchDetectDominantLanguageResponse
+--
+-- , responseDetectKeyPhrases $
+-- detectKeyPhrasesResponse
+--
+-- ]
+-- ]
+
+-- Requests
+
+requestBatchDetectSentiment :: BatchDetectSentiment -> TestTree
+requestBatchDetectSentiment = req
+ "BatchDetectSentiment"
+ "fixture/BatchDetectSentiment.yaml"
+
+requestStartTopicsDetectionJob :: StartTopicsDetectionJob -> TestTree
+requestStartTopicsDetectionJob = req
+ "StartTopicsDetectionJob"
+ "fixture/StartTopicsDetectionJob.yaml"
+
+requestBatchDetectKeyPhrases :: BatchDetectKeyPhrases -> TestTree
+requestBatchDetectKeyPhrases = req
+ "BatchDetectKeyPhrases"
+ "fixture/BatchDetectKeyPhrases.yaml"
+
+requestDetectSentiment :: DetectSentiment -> TestTree
+requestDetectSentiment = req
+ "DetectSentiment"
+ "fixture/DetectSentiment.yaml"
+
+requestBatchDetectEntities :: BatchDetectEntities -> TestTree
+requestBatchDetectEntities = req
+ "BatchDetectEntities"
+ "fixture/BatchDetectEntities.yaml"
+
+requestDetectDominantLanguage :: DetectDominantLanguage -> TestTree
+requestDetectDominantLanguage = req
+ "DetectDominantLanguage"
+ "fixture/DetectDominantLanguage.yaml"
+
+requestDescribeTopicsDetectionJob :: DescribeTopicsDetectionJob -> TestTree
+requestDescribeTopicsDetectionJob = req
+ "DescribeTopicsDetectionJob"
+ "fixture/DescribeTopicsDetectionJob.yaml"
+
+requestDetectEntities :: DetectEntities -> TestTree
+requestDetectEntities = req
+ "DetectEntities"
+ "fixture/DetectEntities.yaml"
+
+requestListTopicsDetectionJobs :: ListTopicsDetectionJobs -> TestTree
+requestListTopicsDetectionJobs = req
+ "ListTopicsDetectionJobs"
+ "fixture/ListTopicsDetectionJobs.yaml"
+
+requestBatchDetectDominantLanguage :: BatchDetectDominantLanguage -> TestTree
+requestBatchDetectDominantLanguage = req
+ "BatchDetectDominantLanguage"
+ "fixture/BatchDetectDominantLanguage.yaml"
+
+requestDetectKeyPhrases :: DetectKeyPhrases -> TestTree
+requestDetectKeyPhrases = req
+ "DetectKeyPhrases"
+ "fixture/DetectKeyPhrases.yaml"
+
+-- Responses
+
+responseBatchDetectSentiment :: BatchDetectSentimentResponse -> TestTree
+responseBatchDetectSentiment = res
+ "BatchDetectSentimentResponse"
+ "fixture/BatchDetectSentimentResponse.proto"
+ comprehend
+ (Proxy :: Proxy BatchDetectSentiment)
+
+responseStartTopicsDetectionJob :: StartTopicsDetectionJobResponse -> TestTree
+responseStartTopicsDetectionJob = res
+ "StartTopicsDetectionJobResponse"
+ "fixture/StartTopicsDetectionJobResponse.proto"
+ comprehend
+ (Proxy :: Proxy StartTopicsDetectionJob)
+
+responseBatchDetectKeyPhrases :: BatchDetectKeyPhrasesResponse -> TestTree
+responseBatchDetectKeyPhrases = res
+ "BatchDetectKeyPhrasesResponse"
+ "fixture/BatchDetectKeyPhrasesResponse.proto"
+ comprehend
+ (Proxy :: Proxy BatchDetectKeyPhrases)
+
+responseDetectSentiment :: DetectSentimentResponse -> TestTree
+responseDetectSentiment = res
+ "DetectSentimentResponse"
+ "fixture/DetectSentimentResponse.proto"
+ comprehend
+ (Proxy :: Proxy DetectSentiment)
+
+responseBatchDetectEntities :: BatchDetectEntitiesResponse -> TestTree
+responseBatchDetectEntities = res
+ "BatchDetectEntitiesResponse"
+ "fixture/BatchDetectEntitiesResponse.proto"
+ comprehend
+ (Proxy :: Proxy BatchDetectEntities)
+
+responseDetectDominantLanguage :: DetectDominantLanguageResponse -> TestTree
+responseDetectDominantLanguage = res
+ "DetectDominantLanguageResponse"
+ "fixture/DetectDominantLanguageResponse.proto"
+ comprehend
+ (Proxy :: Proxy DetectDominantLanguage)
+
+responseDescribeTopicsDetectionJob :: DescribeTopicsDetectionJobResponse -> TestTree
+responseDescribeTopicsDetectionJob = res
+ "DescribeTopicsDetectionJobResponse"
+ "fixture/DescribeTopicsDetectionJobResponse.proto"
+ comprehend
+ (Proxy :: Proxy DescribeTopicsDetectionJob)
+
+responseDetectEntities :: DetectEntitiesResponse -> TestTree
+responseDetectEntities = res
+ "DetectEntitiesResponse"
+ "fixture/DetectEntitiesResponse.proto"
+ comprehend
+ (Proxy :: Proxy DetectEntities)
+
+responseListTopicsDetectionJobs :: ListTopicsDetectionJobsResponse -> TestTree
+responseListTopicsDetectionJobs = res
+ "ListTopicsDetectionJobsResponse"
+ "fixture/ListTopicsDetectionJobsResponse.proto"
+ comprehend
+ (Proxy :: Proxy ListTopicsDetectionJobs)
+
+responseBatchDetectDominantLanguage :: BatchDetectDominantLanguageResponse -> TestTree
+responseBatchDetectDominantLanguage = res
+ "BatchDetectDominantLanguageResponse"
+ "fixture/BatchDetectDominantLanguageResponse.proto"
+ comprehend
+ (Proxy :: Proxy BatchDetectDominantLanguage)
+
+responseDetectKeyPhrases :: DetectKeyPhrasesResponse -> TestTree
+responseDetectKeyPhrases = res
+ "DetectKeyPhrasesResponse"
+ "fixture/DetectKeyPhrasesResponse.proto"
+ comprehend
+ (Proxy :: Proxy DetectKeyPhrases)